| (((abs(sdt -- str, entries) * abs(sdt[str], ino)) * D))(dirs), str ∈ sdt ⊦ str ∈ entries, ∃ tree, ino0, sdi0, sdt0. ¬ str ∈ sdt0 ∧ sdt = sdt0[str, tree] ∧ ¬ str ∈ sdi0 ∧ entries[str, ino] = sdi0[str, ino0] ∧ ((abs(tree, ino0) * abs(sdt0, sdi0) * D))(dirs) |
Used simplifier rules: ⊦ str ∈ sdt -- str0 ↔ str ≠ str0 ∧ str ∈ sdt; (s)% ⊦ (sdt -- str)[str, tree] = sdt[str, tree]; (s)% ⊦ str ∈ sdt → sdt[str, sdt[str]] = sdt; (s)%sep-ass: ⊦ (D * D0) * D1 = D * D0 * D1; from specification heap-sep[dir-heap]%sep-com: ⊦ D * D0 = D0 * D; from specification heap-sep[dir-heap] Used terms: sdt[str], ino, entries, sdt -- str