(STRATEGY
    INNERMOST)

(VAR
    x y)
(DATATYPES
    A = µX.< 0, true, s(X), false, cons(X, X), nil >)
(SIGNATURES
    le :: [A x A] -> A
    int :: [A x A] -> A
    if :: [A x A x A] -> A)
(RULES
    le(0(),y) -> true()
    le(s(x),0()) -> false()
    le(s(x),s(y)) -> le(x,y)
    int(x,y) -> if(le(x,y),x,y)
    if(true(),x,y) -> cons(x
                          ,int(s(x),y))
    if(false(),x,y) -> nil())