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