| (((abs(tree, sdi[str]) * abs(sdt0, sdi -- str)) * D))(dirs), str ∈ sdi ⊦ str ∈ sdt0, ∃ tree0, ino, str0, sdi0, sdt1. ¬ str0 ∈ sdt1 ∧ sdt0[str, tree] = sdt1[str0, tree0] ∧ ¬ str0 ∈ sdi0 ∧ sdi = sdi0[str0, ino] ∧ ((abs(tree0, ino) * abs(sdt1, sdi0) * D))(dirs) |
Used simplifier rules: ⊦ str ∈ entries -- str0 ↔ str ≠ str0 ∧ str ∈ entries; (s)% ⊦ (entries -- str)[str, ino] = entries[str, ino]; (s)% ⊦ str ∈ entries → entries[str, entries[str]] = entries; (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: tree, sdi[str], str, sdi -- str, sdt0