| err = ESUCCESS, ¬ isdir ⊦ [vfs_write_block#(ino1, inode, buf, ino0, dirs; ino, isdir, err, files, asynced)] (err = ESUCCESS ∨ ⌊err⌋ ) |
⊦
err = ESUCCESS, ino0 = ino, ino1 = ino4, ino2 = ino3, ¬ isdir ⊦ [let pageno = (ino2 + ino0) / VFS_PAGE_SIZE, ino = (ino2 + ino0) % VFS_PAGE_SIZE in let n = min(ino1 - ino2 + ino0, VFS_PAGE_SIZE - ino) in if n ≠ 0 then {vfs_writepage#(inode, pageno, buf, ino0, ino, n, dirs; err, files, asynced); if err = ESUCCESS then ino0 := ino0 + n} else isdir := true] (err = ESUCCESS ∨ ⌊err⌋ )
Used simplifier rules: write-block: ⊦ ;