(STRATEGY INNERMOST) (VAR b1 b2 b3 x y) (DATATYPES A = µX.< s(X), 0, true, false >) (SIGNATURES p :: [A] -> A le :: [A x A] -> A average :: [A x A] -> A if :: [A x A x A x A x A x A] -> A if2 :: [A x A x A x A x A] -> A if3 :: [A x A x A x A] -> A if4 :: [A x A x A] -> A) (RULES p(s(x)) -> x p(0()) -> 0() le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) average(x,y) -> if(le(x,0()) ,le(y,0()) ,le(y,s(0())) ,le(y,s(s(0()))) ,x ,y) if(true(),b1,b2,b3,x,y) -> if2(b1,b2,b3,x,y) if(false(),b1,b2,b3,x,y) -> average(p(x),s(y)) if2(true(),b2,b3,x,y) -> 0() if2(false(),b2,b3,x,y) -> if3(b2 ,b3 ,x ,y) if3(true(),b3,x,y) -> 0() if3(false(),b3,x,y) -> if4(b3 ,x ,y) if4(true(),x,y) -> s(0()) if4(false(),x,y) -> average(s(x) ,p(p(y))))