(STRATEGY INNERMOST) (VAR x y) (DATATYPES A = µX.< 0, s(X) >) (SIGNATURES sqr :: [A] -> A double :: [A] -> A + :: [A x A] -> A) (RULES sqr(0()) -> 0() sqr(s(x)) -> +(sqr(x) ,s(double(x))) double(0()) -> 0() double(s(x)) -> s(s(double(x))) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) sqr(s(x)) -> s(+(sqr(x) ,double(x))))