| n ≤ 1 + # x0, ∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0 ⊦ (a ' + x0 to n) + (a ' + x0 from n) = a ' + x0 |
n0 +1 ≤ 1 + # x0, ∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0, ∀ x0, a. n0 ≤ 1 + # x0 ∧ (∀ n. n ≤ # x0 → (x0 to n) + (x0 from n) = x0) → (a ' + x0 to n0) + (a ' + x0 from n0) = a ' + 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;;% ⊦ [] + x = x; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ x + y = x + z ↔ y = z; (s)