| ((abs(tree, ino) * abs(sdt0, sdi0) * D))(dirs), ∀ sdt1, sdi, D, dirs, str. # sdt1 < # sdt0[str0, tree] → ((abs(sdt1, sdi) * D))(dirs) → (str ∈ sdi ↔ str ∈ sdt1) ⊦ str ∈ sdi0 ↔ str ∈ sdt0, str = str0, str0 ∈ sdt0, str0 ∈ sdi0 |
Used simplifier rules: 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]% ⊦ ¬ str ∈ sdt → # sdt[str, tree] = # sdt + 1; (s)% ⊦ m < n + 1 ↔ ¬ n < m; (s)% ⊦ ¬ n < n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic Used terms: sdt0, sdi0, D * abs(tree, ino), dirs, str