MAYBE Problem: isLeaf(leaf()) -> true() isLeaf(cons(u,v)) -> false() left(cons(u,v)) -> u right(cons(u,v)) -> v concat(leaf(),y) -> y concat(cons(u,v),y) -> cons(u,concat(v,y)) less_leaves(u,v) -> if1(isLeaf(u),isLeaf(v),u,v) if1(b,true(),u,v) -> false() if1(b,false(),u,v) -> if2(b,u,v) if2(true(),u,v) -> true() if2(false(),u,v) -> less_leaves(concat(left(u),right(u)),concat(left(v),right(v))) Proof: Open