Alphabet

0:b
cons:[b × a] ⟶ a
inc:a → a
map:[b → b] ⟶ a → a
nil:a
plus:[b] ⟶ b → b
s:[b] ⟶ b

Variables

X:b
Y:b
U:b
H:b → b
I:b → b
P:b
X1:a

Rules

plus(0) · XX
plus(s(Y)) · Us(plus(Y) · U)
map(H) · nilnil
map(I) · cons(P, X1)cons(I · P, map(I) · X1)
incmap(plus(s(0)))