(STRATEGY INNERMOST) (VAR x y z) (DATATYPES A = µX.< 0, true, s(X), false, nil, cons(X, X) >) (SIGNATURES le :: [A x A] -> A eq :: [A x A] -> A if :: [A x A x A] -> A minsort :: [A] -> A min :: [A x A] -> A del :: [A x A] -> A) (RULES le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if(true(),x,y) -> x if(false(),x,y) -> y minsort(nil()) -> nil() minsort(cons(x,y)) -> cons(min(x ,y) ,minsort(del(min(x,y) ,cons(x,y)))) min(x,nil()) -> x min(x,cons(y,z)) -> if(le(x,y) ,min(x,z) ,min(y,z)) del(x,nil()) -> nil() del(x,cons(y,z)) -> if(eq(x,y) ,z ,cons(y,del(x,z))))