| ∀ ps1, str. # ps1 < #(ps0 ++ p) → true → #(str + ps1) = # ps1 ⊦ #((str + ps0) ++ (str ' + p)) = # ps0 + 1, p ∈ ps0 |
⊦ ¬ p ∈ ps → #(ps ++ p) = # ps + 1
⊦ p ∈ str + ps ↔ p ≠ ε ∧ p.head = str ∧ p.tail ∈ ps
∀ ps1, str. # ps1 < #(ps0 ++ p) → true → #(str + ps1) = # ps1 ⊦ #(str + ps0) + 1 = # ps0 + 1, p ∈ ps0, str ' + p ∈ str + ps0
Used simplifier rules: in-consp: ⊦ p ∈ str + ps ↔ p ≠ ε ∧ p.head = str ∧ p.tail ∈ ps;% ⊦ p ∈ ps → ps ++ p = ps; (s)% ⊦ str ' + p ≠ ε; (s)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ (str ' + p).head = str; (s)% ⊦ (str ' + p).tail = p; (s) Used terms: str ' + p, str + ps0