| ⊦ ∀ p0. p0 ∈ str + (ps ++ p) ↔ p0 ∈ (str + ps) ++ (str ' + p) |
⊦ p ∈ str + ps ↔ p ≠ ε ∧ p.head = str ∧ p.tail ∈ ps
p0 = str ' + p ∨ p0 ≠ ε ∧ p0.head = str ∧ p0.tail ∈ ps ⊦ p0 ≠ ε ∧ p0.head = str ∧ (p0.tail = p ∨ p0.tail ∈ ps)
Used simplifier rules: in-consp: ⊦ p ∈ str + ps ↔ p ≠ ε ∧ p.head = str ∧ p.tail ∈ ps;%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ p ≠ ε → p.head ' + p.tail = p; (s)% ⊦ p ∈ ps ++ p0 ↔ p = p0 ∨ p ∈ ps; (s)