(VAR x y ) (RULES digits -> d(0) d(x) -> if(le(x, s(s(s(s(s(s(s(s(s(0)))))))))), x) if(true, x) -> cons(x, d(s(x))) if(false, x) -> nil le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) )