MAYBE 0.08/0.18 MAYBE 0.08/0.19 0.08/0.19 Problem: 0.08/0.19 isEmpty(nil()) -> true() 0.08/0.19 isEmpty(cons(x,xs)) -> false() 0.08/0.19 last(cons(x,nil())) -> x 0.08/0.19 last(cons(x,cons(y,ys))) -> last(cons(y,ys)) 0.08/0.19 dropLast(nil()) -> nil() 0.08/0.19 dropLast(cons(x,nil())) -> nil() 0.08/0.19 dropLast(cons(x,cons(y,ys))) -> cons(x,dropLast(cons(y,ys))) 0.08/0.19 append(nil(),ys) -> ys 0.08/0.19 append(cons(x,xs),ys) -> cons(x,append(xs,ys)) 0.08/0.19 reverse(xs) -> rev(xs,nil()) 0.08/0.19 rev(xs,ys) -> if(isEmpty(xs),dropLast(xs),append(ys,last(xs)),ys) 0.08/0.19 if(true(),xs,ys,zs) -> zs 0.08/0.19 if(false(),xs,ys,zs) -> rev(xs,ys) 0.08/0.19 0.08/0.19 Proof: 0.08/0.19 Open 0.08/0.19 EOF