| boolvar0 ↔ boolvar, fo.inodes?, ro.inodes?, file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, ro), replay-cons-strong(fs, ri, ro, fi, fo, log), ri-inj(fi), ri-inj(ri), ubifs-cons(fs, ri, ro, fi, fo, log), inodekey(inode.ino) ∈ ri, ∀ ino. inodekey(ino) ∈ ro → links(ino, fs, ri) = ∅, ∀ ino. inodekey(ino) ∈ ro → dentrykeys(inodekey(ino), ri) = ∅ ⊦ inode.ino = ROOT_INO, pre-evict(inode.ino, fs, ri, ro) |
ro.inodes?, fo.inodes?, file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, ro), replay-cons-strong(fs, ri, ro, fi, fo, log), ri-inj(ri), ri-inj(fi), ubifs-cons(fs, ri, ro, fi, fo, log), inodekey(inode.ino) ∈ ri, ∀ ino. inodekey(ino) ∈ ro → dentrykeys(inodekey(ino), ri) = ∅, ∀ ino. inodekey(ino) ∈ ro → links(ino, fs, ri) = ∅ ⊦ inode.ino = ROOT_INO, (inodekey(ino) ∈ ri ∧ inodekey(ino) ∈ ro → dentrykeys(inodekey(ino), ri) = ∅) ∧ (inodekey(ino0) ∈ ri ∧ inodekey(ino0) ∈ ro → links(ino0, fs, ri) = ∅)
Used simplifier rules: ⊦ valid-ino(ino, fs, ri) ↔ inodekey(ino) ∈ ri; (s)%⊦ pre-evict(ino, fs, ri, ro) ↔ valid-ino(ino, fs, ri) ∧ ino ≠ ROOT_INO ∧ (∀ ino. inodekey(ino) ∈ ri ∧ inodekey(ino) ∈ ro → dentrykeys(inodekey(ino), ri) = ∅) ∧ (∀ ino. inodekey(ino) ∈ ri ∧ inodekey(ino) ∈ ro → links(ino, fs, ri) = ∅); (s)