cond1(true, x, y) → cond2(gr(x, 0), x, y)
cond2(true, x, y) → cond1(gr(add(x, y), 0), p(x), y)
cond2(false, x, y) → cond3(gr(y, 0), x, y)
cond3(true, x, y) → cond1(gr(add(x, y), 0), x, p(y))
cond3(false, x, y) → cond1(gr(add(x, y), 0), x, y)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x