| sdt[str0][parent(p0)].dir?, str0 ∈ sdt, parent(p0) ∈ sdt[str0], q0 ⊑ p0, ∀ tree, p, tree0, ino0, ino1, D, dirs. tree[parent(p)].dir? ∧ parent(p) ∈ tree ∧ q0 ⊑ p → (((abs|(tree[p, tree0], ino0, q0, ino1) * D))(dirs) ↔ ((abs|(tree, ino0, q0, ino1) * D))(dirs)) ∨ p = ε ⊦ (∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0][p0, tree0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs)) ↔ (∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs)), p0 = ε |
sdt[str0][parent(p0)].dir?, parent(p0) ∈ sdt[str0], str0 ∈ sdt, q0 ⊑ p0, ∀ tree, p, tree0, ino0, ino1, D, dirs. tree[parent(p)].dir? ∧ parent(p) ∈ tree ∧ q0 ⊑ p → (((abs|(tree[p, tree0], ino0, q0, ino1) * D))(dirs) ↔ ((abs|(tree, ino0, q0, ino1) * D))(dirs)) ∨ p = ε, ∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0][p0, tree0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs) ⊦ p0 = ε, ∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs)
sdt[str0][parent(p0)].dir?, parent(p0) ∈ sdt[str0], str0 ∈ sdt, q0 ⊑ p0, ∀ tree, p, tree0, ino0, ino1, D, dirs. tree[parent(p)].dir? ∧ parent(p) ∈ tree ∧ q0 ⊑ p → (((abs|(tree[p, tree0], ino0, q0, ino1) * D))(dirs) ↔ ((abs|(tree, ino0, q0, ino1) * D))(dirs)) ∨ p = ε, ∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs) ⊦ p0 = ε, ∃ ad. str0 ∈ ad.entries ∧ ad.meta = md ∧ ad.size = # ad.entries ∧ ((((abs|(sdt[str0][p0, tree0], ad.entries[str0], q0, ino1) * abs(sdt -- str0, ad.entries -- str0)) * ino0 => ad) * D))(dirs)