| ⊦ pre-truncate(inode, n, pageno, buf-opt, fs, ri, ro) ↔ valid-file-inode(inode, fs, ri) ∧ (fs[ri[inodekey(inode.ino)]].nlink = 0 ∧ inode.ino ≠ ROOT_INO ↔ inodekey(inode.ino) ∈ ro) ∧ pageno = inode.size / VFS_PAGE_SIZE ∧ (buf-opt.some? → # buf-opt.buf = VFS_PAGE_SIZE) |