| # links(m, dirs) = files[m].nlink, files[m] = mkfile(m0, md0, files[m].nlink, content), inode = mkinode(m, md, false, files[m].nlink, 0, m2), old_ino = 0, old_ino0 = 0, afs-cons(dirs, files), m ∈ files, buf-opt.some? → # buf-opt.buf = VFS_PAGE_SIZE, buf-opt = none ∨ # buf-opt.buf = VFS_PAGE_SIZE ⊦ ⟪afs_truncate_internal#(n, m2 / VFS_PAGE_SIZE; inode, buf-opt, old_ino0, old_ino, asynced0, err, dirs, files; asynced)⟫ true |
# links(m, dirs) = m3, files[m] = mkfile(m0, md0, m3, content), files[m] = mkfile(m1, md1, m3, content0), inode = mkinode(m, md, false, m3, 0, m2), old_ino = 0, old_ino0 = 0, afs-cons(dirs, files), m ∈ files, buf-opt.some? → # buf-opt.buf = VFS_PAGE_SIZE, buf-opt = none ∨ # buf-opt.buf = VFS_PAGE_SIZE ⊦ ⟪afs_truncate_internal#(n, m2 / VFS_PAGE_SIZE; inode, buf-opt, old_ino0, old_ino, asynced0, err, dirs, files; asynced)⟫ true
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files[m], m1, md1, m3, content0