(VAR x y ) (RULES intlist(nil) -> nil int(s(x), 0) -> nil int(x, x) -> cons(x, nil) intlist(cons(x, y)) -> cons(s(x), intlist(y)) int(s(x), s(y)) -> intlist(int(x, y)) int(0, s(y)) -> cons(0, int(s(0), s(y))) intlist(cons(x, nil)) -> cons(s(x), nil) )