MAYBE 0.08/0.19 MAYBE 0.17/0.20 0.17/0.20 Problem: 0.17/0.20 eq(0(),0()) -> true() 0.17/0.20 eq(0(),s(m)) -> false() 0.17/0.20 eq(s(n),0()) -> false() 0.17/0.20 eq(s(n),s(m)) -> eq(n,m) 0.17/0.20 le(0(),m) -> true() 0.17/0.20 le(s(n),0()) -> false() 0.17/0.20 le(s(n),s(m)) -> le(n,m) 0.17/0.20 min(cons(x,nil())) -> x 0.17/0.20 min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) 0.17/0.20 if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) 0.17/0.20 if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) 0.17/0.20 replace(n,m,nil()) -> nil() 0.17/0.20 replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) 0.17/0.20 if_replace(true(),n,m,cons(k,x)) -> cons(m,x) 0.17/0.20 if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) 0.17/0.20 empty(nil()) -> true() 0.17/0.20 empty(cons(n,x)) -> false() 0.17/0.20 head(cons(n,x)) -> n 0.17/0.20 tail(nil()) -> nil() 0.17/0.20 tail(cons(n,x)) -> x 0.17/0.20 sort(x) -> sortIter(x,nil()) 0.17/0.20 sortIter(x,y) -> if(empty(x),x,y,append(y,cons(min(x),nil()))) 0.17/0.20 if(true(),x,y,z) -> y 0.17/0.20 if(false(),x,y,z) -> sortIter(replace(min(x),head(x),tail(x)),z) 0.17/0.20 0.17/0.20 Proof: 0.17/0.20 Open 0.17/0.20 EOF