(STRATEGY
    INNERMOST)

(VAR
    L X)
(DATATYPES
    A = µX.< nil, cons(X, X), s(X), n__incr(X), n__adx(X), 0, n__zeros >)
(SIGNATURES
    incr :: [A] -> A
    adx :: [A] -> A
    nats :: [] -> A
    zeros :: [] -> A
    head :: [A] -> A
    tail :: [A] -> A
    activate :: [A] -> A)
(RULES
    incr(nil()) -> nil()
    incr(cons(X,L)) -> cons(s(X)
                           ,n__incr(activate(L)))
    adx(nil()) -> nil()
    adx(cons(X,L)) -> incr(cons(X
                               ,n__adx(activate(L))))
    nats() -> adx(zeros())
    zeros() -> cons(0(),n__zeros())
    head(cons(X,L)) -> X
    tail(cons(X,L)) -> activate(L)
    incr(X) -> n__incr(X)
    adx(X) -> n__adx(X)
    zeros() -> n__zeros()
    activate(n__incr(X)) ->
      incr(activate(X))
    activate(n__adx(X)) ->
      adx(activate(X))
    activate(n__zeros()) -> zeros()
    activate(X) -> X)