| read-inv(n0, n1, inode, buf0, buf1, n, dirs, files) ⊦ [vfs_read_loop#(n0, n1, inode, bv, dirs, files, asynced; buf1, n, err)] read-inv(n0, n1, inode, buf0, buf1, n, dirs, files) |
isdir ↔ bv, buf = buf1, ino = n, ino0 = n1, ino1 = n0, read-inv(n0, n1, inode, buf0, buf1, n, dirs, files) ⊦ [while err = ESUCCESS ∧ ¬ isdir do vfs_read_block#(ino1, ino0, inode, dirs, files, asynced; buf, ino, isdir, err)] read-inv(n0, n1, inode, buf0, buf, ino, dirs, files)
Used simplifier rules: vfs_read_loop# (START, END, INODE, DONE, DIRS, FILES, ASYNCED; BUF, TOTAL, ERR) {while ERR = ESUCCESS ∧ ¬ DONE do vfs_read_block# (START, END, INODE, DIRS, FILES, ASYNCED; BUF, TOTAL, DONE, ERR) };