| n ≤ # x0 + 1, ∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0 ⊦ (a ' + x0 to n) + (a ' + x0 from n) = a ' + x0 |
∀ x0, a. n0 ≤ # x0 + 1 ∧ (∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0) → (a ' + x0 to n0) + (a ' + x0 from n0) = a ' + x0, n0 +1 ≤ # x0 + 1, ∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0 ⊦ (a ' + x0 to n0 +1) + (a ' + x0 from n0 +1) = a ' + x0
Used simplifier rules: to-zero-l: ⊦ x to 0 = [];%from-zero-l: ⊦ x from 0 = x;%nat freely generated by 0, +1;;%Nil: ⊦ [] + x = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%app-08: ⊦ a ' + x = a ' + y ↔ x = y; from specification list