| files[m] = mkfile(m3, md0, m4, content), dirs[m] = mkdir(m5, md1, m6, m7, entries), afs-cons(dirs, files), m ∈ dirs ∧ m0 = m6 ∧ m2 = m5 ∧ m1 = m7 ∧ boolvar ∨ m ∈ files ∧ m0 = m4 ∧ m1 = 0 ∧ ¬ boolvar ⊦ ⟪afs_write_inode#(mkinode(m, md, boolvar, m0, m1, m2); err, dirs, files; asynced)⟫ afs-cons(dirs, files) |
dirs[m] = mkdir(m5, md1, m6, m7, entries), files[m] = mkfile(m3, md0, m4, content), inode = mkinode(m, md, boolvar, m0, m1, m2), afs-cons(dirs, files), m ∈ dirs ∧ m0 = m6 ∧ m2 = m5 ∧ m1 = m7 ∧ boolvar ∨ m ∈ files ∧ m0 = m4 ∧ m1 = 0 ∧ ¬ boolvar ⊦ ⟪if pre-write-inode(inode, dirs, files) then { {if inode.directory then dirs[inode.ino].meta := inode.meta else {files[inode.ino].meta := inode.meta; files[inode.ino].size := inode.size}; err := ESUCCESS} or fail#(; ; err); asynced := ?} else abort⟫ afs-cons(dirs, files)
Used simplifier rules: write_inode: ⊦ ;