| tree = fnode(fid), tree[parent(p)].dir?, parent(p) ∈ tree, str ' + q0 ⊑ p, ∀ 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 = ε ⊦ ((abs|(tree[p, tree0], ino0, str ' + q0, ino1) * D))(dirs) ↔ ((abs|(tree, ino0, str ' + q0, ino1) * D))(dirs), p = ε |
p = p.head ', fnode(fid)[parent(p)].dir?, str ' + q0 ⊑ p, ∀ 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 = ε ⊦ ((abs|(fnode(fid)[p, tree0], ino0, str ' + q0, ino1) * D))(dirs) ↔ ((abs|(fnode(fid), ino0, str ' + q0, ino1) * D))(dirs), p = ε
Used simplifier rules: ⊦ p ≠ ε → (parent(p) = ε ↔ p = p.head '); (s)% ⊦ p ∈ fnode(fid) ↔ p = ε; (s)