| files0 = files, ((inode.ino =>mkfile(n0, md, m, σ) * F))(files), afs-cons(dirs, files) ⊦ [afs_writepage#(inode, n, buf, dirs; err, files; asynced)] ( err = ESUCCESS ∧ ((inode.ino =>mkfile(n0, md, m, (σ to n * VFS_PAGE_SIZE) + ⌜buf⌝ + (σ from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE)) * F))(files) ∨ ⌊err⌋ ∧ files0 = files) |
files0 = files, inode = mkinode(m0, md0, boolvar, m1, m2, m3), ((m0 =>mkfile(n0, md, m, σ) * F))(files), afs-cons(dirs, files) ⊦ [afs_writepage#(inode, n, buf, dirs; err, files; asynced)] ( err = ESUCCESS ∧ ((m0 =>mkfile(n0, md, m, (σ to n * VFS_PAGE_SIZE) + ⌜buf⌝ + (σ from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE)) * F))(files) ∨ ⌊err⌋ ∧ files0 = files)
Used simplifier rules: ⊦ ( ( ( (m = inode.ino ∧ md = inode.meta) ∧ (boolvar ↔ inode.directory)) ∧ m0 = inode.nlink) ∧ m1 = inode.nsubdirs) ∧ m2 = inode.size ↔ inode = mkinode(m, md, boolvar, m0, m1, m2); (elim) Used terms: inode, m0, md0, boolvar, m1, m2