(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)
        
)