| 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: ⊦ str + p = str ' + p; (s)% ⊦ str ' = str0 ' + p ↔ str = str0 ∧ p = ε; (ws)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ str ' + p ≠ ε; (s)% ⊦ str ' + p ⊑ str0 ' + p0 ↔ str = str0 ∧ p ⊑ p0; (ws)% ⊦ p + ε = p; (s)% ⊦ parent(str ') = ε; (s)% ⊦ tree[ε] = tree; (s)% ⊦ ¬ fnode(fid).dir?; (s)%p ≠ ε ⊦ str = p.head ∧ p0 = p.tail ↔ p = str + p0; (elim) Used terms: p, str0, p0