| ⟨if pre-iget(ino, dirs, files) then {{inode := getinode(ino, dirs, files); err := ESUCCESS} or fail#(; ; err)} else abort⟩ (inode = p_inode ∧ err = err0), asynced ↔ asynced0, dirs = dirs1, files = files1, ino = ino0 ⊦ ino0 ∈ dirs1, ino0 ∈ files1 |
⟨abort⟩ (inode = p_inode ∧ err = err0), asynced ↔ asynced0, dirs = dirs1, files = files1, ino = ino0 ⊦ ino0 ∈ files1, ino0 ∈ dirs1
Used simplifier rules: ⊦ pre-iget(ino, dirs, files) ↔ valid-ino(ino, dirs, files); (s)% ⊦ valid-ino(ino, dirs, files) ↔ ino ∈ dirs ∨ ino ∈ files; (s)