| afs-cons(dirs, files) ⊦ ∀ alink. alink ∈ links(ino, dirs \ orphans(dirs, files)) ↔ alink ∈ links(ino, dirs) |
afs-cons(dirs, files), alink.name ∈ dirs[alink.pino].entries, alink.pino ∈ dirs, alink.pino ∈ orphans(dirs, files) ⊦ # orphans(dirs, files) = 0, orphans(dirs, files) = ∅
Used simplifier rules: links: ⊦ alink ∈ links(ino, dirs) ↔ alink.pino ∈ dirs ∧ alink.name ∈ dirs[alink.pino].entries ∧ ino = dirs[alink.pino].entries[alink.name];%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[dir-heap-refset]%ne-01: ⊦ ino ∈ ns → ns ≠ ∅; (forward) from specification set-basic[dir-heap-refset]% ⊦ ino ∈ dirs ∧ ¬ ino ∈ ns → (dirs \ ns)[ino] = dirs[ino]; (s)% ⊦ ino ∈ dirs \ ns ↔ ino ∈ dirs ∧ ¬ ino ∈ ns; (s)