| ⊦ ino ∈ orphans(dirs, files), ∀ str. str ∈ subdirs(ino, dirs \ orphans(dirs, files)) ↔ str ∈ subdirs(ino, dirs) |
dirs[ino].entries[str] ∈ dirs, str ∈ dirs[ino].entries, ino ∈ dirs, dirs[ino].entries[str] ∈ orphans(dirs, files) ⊦ # orphans(dirs, files) = 0, orphans(dirs, files) = ∅, ino ∈ orphans(dirs, files)
Used simplifier rules: subdirs: ⊦ str ∈ subdirs(ino, dirs) ↔ ino ∈ dirs ∧ str ∈ dirs[ino].entries ∧ dirs[ino].entries[str] ∈ dirs;%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)