| dirs = abs-dirs(fs, ri), files = abs-files(fs, ri), orphans(fs, ri).inodes?, fo.inodes?, afs-cons(abs-dirs(fs, ri), abs-files(fs, ri)), file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, orphans(fs, ri)), replay-cons-strong(fs, ri, orphans(fs, ri), fi, fo, log), ri-cons(ri, fs), ri-inj(ri), ri-inj(fi), ubifs-cons(fs, ri, orphans(fs, ri), fi, fo, log), ⌊err1⌋ , fs[(∅)[inodekey(m)]].nlink = 0 ∧ m ≠ ROOT_INO → inodekey(m) ∈ ri, asynced → boolvar1, inodekey(m) ∈ ri ∧ ¬ fs[ri[inodekey(m)]].directory ∧ ¬ boolvar0 ∧ m0 = fs[ri[inodekey(m)]].nlink ∧ m1 = fs[ri[inodekey(m)]].nsubdirs ∨ inodekey(m) ∈ ri ∧ fs[ri[inodekey(m)]].directory ∧ boolvar0 ∧ m0 = fs[ri[inodekey(m)]].nlink ∧ m1 = fs[ri[inodekey(m)]].nsubdirs ∧ m2 = fs[ri[inodekey(m)]].size, inodekey(m) ∈ ri ∧ fs[ri[inodekey(m)]].directory ∧ m0 = fs[ri[inodekey(m)]].nlink ∧ m2 = fs[ri[inodekey(m)]].size ∧ m1 = fs[ri[inodekey(m)]].nsubdirs ∧ boolvar0 ∨ inodekey(m) ∈ ri ∧ ¬ fs[ri[inodekey(m)]].directory ∧ m0 = fs[ri[inodekey(m)]].nlink ∧ m1 = 0 ∧ ¬ boolvar0 ⊦ ⟨asynced := ?⟩ ((asynced → boolvar) ∧ err1 = err1), ∃ err0. ⌊err0⌋ ∧ ⟨err := err0; asynced := ?⟩ ((asynced → boolvar) ∧ err1 = err), ⟨if boolvar0 then dirs[m].meta := md else {files[m].meta := md; files[m].size := m2}; err := ESUCCESS; asynced := ?⟩ (dirs = abs-dirs(fs, ri) ∧ files = abs-files(fs, ri) ∧ (asynced → boolvar) ∧ err1 = err), m = 0 |