(STRATEGY INNERMOST) (VAR x) (DATATYPES A = µX.< s(X), *(X, X), 0 >) (SIGNATURES fac :: [A] -> A p :: [A] -> A) (RULES fac(s(x)) -> *(fac(p(s(x))) ,s(x)) p(s(0())) -> 0() p(s(s(x))) -> s(p(s(x))))