(STRATEGY
    INNERMOST)

(VAR
    x y)
(DATATYPES
    A = µX.< 0, s(X) >)
(SIGNATURES
    minus :: [A x A] -> A
    f :: [A] -> A
    g :: [A] -> A)
(RULES
    minus(x,0()) -> x
    minus(s(x),s(y)) -> minus(x,y)
    f(0()) -> s(0())
    f(s(x)) -> minus(s(x),g(f(x)))
    g(0()) -> 0()
    g(s(x)) -> minus(s(x),f(g(x))))