Alphabet

0:b
cons:[c × d] ⟶ d
false:a
filter:[c → a × d] ⟶ d
filter2:[a × c → a × c × d] ⟶ d
gcd:[b × b] ⟶ b
if!6220gcd:[a × b × b] ⟶ b
le:[b × b] ⟶ a
map:[c → c × d] ⟶ d
minus:[b × b] ⟶ b
nil:d
pred:[b] ⟶ b
s:[b] ⟶ b
true:a

Variables

X:b
Y:b
U:b
V:b
W:b
P:b
X1:b
Y1:b
U1:b
V1:b
W1:b
P1:b
X2:b
Y2:b
U2:b
V2:b
I2:c → c
J2:c → c
X3:c
Y3:d
G3:c → a
H3:c → a
W3:c
P3:d
F4:c → a
Y4:c
U4:d
H4:c → a
W4:c
P4:d

Rules

le(0, X)true
le(s(Y), 0)false
le(s(U), s(V))le(U, V)
pred(s(W))W
minus(P, 0)P
minus(X1, s(Y1))pred(minus(X1, Y1))
gcd(0, U1)U1
gcd(s(V1), 0)s(V1)
gcd(s(W1), s(P1))if!6220gcd(le(P1, W1), s(W1), s(P1))
if!6220gcd(true, s(X2), s(Y2))gcd(minus(X2, Y2), s(Y2))
if!6220gcd(false, s(U2), s(V2))gcd(minus(V2, U2), s(U2))
map(I2, nil)nil
map(J2, cons(X3, Y3))cons(J2 · X3, map(J2, Y3))
filter(G3, nil)nil
filter(H3, cons(W3, P3))filter2(H3 · W3, H3, W3, P3)
filter2(true, F4, Y4, U4)cons(Y4, filter(F4, U4))
filter2(false, H4, W4, P4)filter(H4, P4)