MAYBE 0.08/0.19 MAYBE 0.08/0.19 0.08/0.19 Problem: 0.08/0.19 eq(0(),0()) -> true() 0.08/0.19 eq(0(),s(x)) -> false() 0.08/0.19 eq(s(x),0()) -> false() 0.08/0.19 eq(s(x),s(y)) -> eq(x,y) 0.08/0.19 le(0(),y) -> true() 0.08/0.19 le(s(x),0()) -> false() 0.08/0.19 le(s(x),s(y)) -> le(x,y) 0.08/0.19 app(nil(),y) -> y 0.08/0.19 app(add(n,x),y) -> add(n,app(x,y)) 0.08/0.19 min(nil()) -> 0() 0.08/0.19 min(add(n,x)) -> minIter(add(n,x),add(n,x),0()) 0.08/0.19 minIter(nil(),add(n,y),m) -> minIter(add(n,y),add(n,y),s(m)) 0.08/0.19 minIter(add(n,x),y,m) -> if_min(le(n,m),x,y,m) 0.08/0.19 if_min(true(),x,y,m) -> m 0.08/0.19 if_min(false(),x,y,m) -> minIter(x,y,m) 0.08/0.19 head(add(n,x)) -> n 0.08/0.19 tail(add(n,x)) -> x 0.08/0.19 tail(nil()) -> nil() 0.08/0.19 null(nil()) -> true() 0.08/0.19 null(add(n,x)) -> false() 0.08/0.19 rm(n,nil()) -> nil() 0.08/0.19 rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) 0.08/0.19 if_rm(true(),n,add(m,x)) -> rm(n,x) 0.08/0.19 if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) 0.08/0.19 minsort(nil(),nil()) -> nil() 0.08/0.19 minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) 0.08/0.19 if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) 0.08/0.19 if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) 0.08/0.19 0.08/0.19 Proof: 0.08/0.19 Open 0.08/0.19 EOF