| ⊦ # y0 = 0, (a0 ' + y0 + z)[# y0, a] = (a0 ' + firstn((# y0)-1, y0 + z)) + a ' + z |
⊦ (a0 ' + y0 + z)[# y0, a] = a0 ' + firstn(# y0 - 1, y0 + z) + a ' + z, y0 = []
Used simplifier rules: ⊦ # x = 0 ↔ x = []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ n -1 = n - 1; (s)