| ∃ ps0. ps = ps0 ++ p ∧ ¬ p ∈ ps0, ∀ ps0, str. # ps0 < # ps → true → #(str + ps0) = # ps0 ⊦ #(str + ps) = # ps, # ps = 0 |
⊦ str + (ps ++ p) = (str + ps) ++ (str ' + p)
∀ ps1, str. # ps1 < #(ps0 ++ p) → true → #(str + ps1) = # ps1 ⊦ #((str + ps0) ++ (str ' + p)) = # ps0 + 1, p ∈ ps0
Used simplifier rules: insert-consp: ⊦ str + (ps ++ p) = (str + ps) ++ (str ' + p);%c: ⊦ m + n = n + m; from specification nat-basic[directory-tree-inst]%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic[directory-tree-inst]% ⊦ m + 1 ≠ 0; (s)% ⊦ ¬ p ∈ ps → #(ps ++ p) = # ps + 1; (s)