| m ≤ # x0, ∀ m, a, b. m < # x0 → (a ∈ x0[m, b] ↔ a = b ∨ a ∈ x0 -1l x0[m]) ⊦ a ∈ (a0 ' + x0)[m, b] ↔ a = b ∨ a ∈ a0 ' + (x0 -1l (a0 ' + x0)[m]), (a0 ' + x0)[m] = a0 |
⊦ n ≠ 0 ∧ x ≠ [] → x[n, a] = x.head ' + x.tail[n -1, a]
m ≤ # x0, ∀ m, a, b. m < # x0 → (a ∈ x0[m, b] ↔ a = b ∨ a ∈ x0 -1l x0[m]) ⊦ a0 ' + x0 = [], a ∈ (a0 ' + x0).head ' + (a0 ' + x0).tail[m -1, b] ↔ a = b ∨ a ∈ a0 ' + (x0 -1l (a0 ' + x0)[m]), (a0 ' + x0)[m] = a0, m = 0
Used simplifier rules: get-zero-01: ⊦ (a ' + x)[0] = a;%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ x + y = [] ↔ x = [] ∧ y = []; (as)% ⊦ a ' ≠ []; (s) Used terms: b, m, a0 ' + x0