(STRATEGY
    INNERMOST)

(VAR
    X Y)
(DATATYPES
    A = µX.< 0, s(X), Z >)
(SIGNATURES
    plus :: [A x A] -> A
    min :: [A x A] -> A
    quot :: [A x A] -> A)
(RULES
    plus(0(),Y) -> Y
    plus(s(X),Y) -> s(plus(X,Y))
    min(X,0()) -> X
    min(s(X),s(Y)) -> min(X,Y)
    min(min(X,Y),Z()) -> min(X
                            ,plus(Y,Z()))
    quot(0(),s(Y)) -> 0()
    quot(s(X),s(Y)) -> s(quot(min(X
                                 ,Y)
                             ,s(Y))))