(STRATEGY INNERMOST) (VAR x y z) (DATATYPES A = µX.< #, 1(X), j(X) >) (SIGNATURES 0 :: [A] -> A + :: [A x A] -> A opp :: [A] -> A - :: [A x A] -> A * :: [A x A] -> A) (RULES 0(#()) -> #() +(#(),x) -> x +(x,#()) -> x +(0(x),0(y)) -> 0(+(x,y)) +(0(x),1(y)) -> 1(+(x,y)) +(1(x),0(y)) -> 1(+(x,y)) +(0(x),j(y)) -> j(+(x,y)) +(j(x),0(y)) -> j(+(x,y)) +(1(x),1(y)) -> j(+(+(x,y) ,1(#()))) +(j(x),j(y)) -> 1(+(+(x,y) ,j(#()))) +(1(x),j(y)) -> 0(+(x,y)) +(j(x),1(y)) -> 0(+(x,y)) +(+(x,y),z) -> +(x,+(y,z)) opp(#()) -> #() opp(0(x)) -> 0(opp(x)) opp(1(x)) -> j(opp(x)) opp(j(x)) -> 1(opp(x)) -(x,y) -> +(x,opp(y)) *(#(),x) -> #() *(0(x),y) -> 0(*(x,y)) *(1(x),y) -> +(0(*(x,y)),y) *(j(x),y) -> -(0(*(x,y)),y) *(*(x,y),z) -> *(x,*(y,z)) *(+(x,y),z) -> +(*(x,z),*(y,z)) *(x,+(y,z)) -> +(*(x,y),*(x,z)))