MAYBE Problem: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Proof: DP Processor: DPs: eq#(s(x),s(y)) -> eq#(x,y) le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) min#(add(n,add(m,x))) -> le#(n,m) min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) rm#(n,add(m,x)) -> eq#(n,m) rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) if_rm#(true(),n,add(m,x)) -> rm#(n,x) if_rm#(false(),n,add(m,x)) -> rm#(n,x) minsort#(add(n,x),y) -> min#(add(n,x)) minsort#(add(n,x),y) -> eq#(n,min(add(n,x))) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) if_minsort#(true(),add(n,x),y) -> rm#(n,x) if_minsort#(true(),add(n,x),y) -> app#(rm(n,x),y) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) EDG Processor: DPs: eq#(s(x),s(y)) -> eq#(x,y) le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) min#(add(n,add(m,x))) -> le#(n,m) min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) rm#(n,add(m,x)) -> eq#(n,m) rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) if_rm#(true(),n,add(m,x)) -> rm#(n,x) if_rm#(false(),n,add(m,x)) -> rm#(n,x) minsort#(add(n,x),y) -> min#(add(n,x)) minsort#(add(n,x),y) -> eq#(n,min(add(n,x))) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) if_minsort#(true(),add(n,x),y) -> rm#(n,x) if_minsort#(true(),add(n,x),y) -> app#(rm(n,x),y) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) graph: if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) -> minsort#(add(n,x),y) -> min#(add(n,x)) if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) -> minsort#(add(n,x),y) -> eq#(n,min(add(n,x))) if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) -> minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) -> minsort#(add(n,x),y) -> min#(add(n,x)) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) -> minsort#(add(n,x),y) -> eq#(n,min(add(n,x))) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) -> minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) if_minsort#(true(),add(n,x),y) -> rm#(n,x) -> rm#(n,add(m,x)) -> eq#(n,m) if_minsort#(true(),add(n,x),y) -> rm#(n,x) -> rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) if_minsort#(true(),add(n,x),y) -> app#(rm(n,x),y) -> app#(add(n,x),y) -> app#(x,y) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) -> if_minsort#(true(),add(n,x),y) -> rm#(n,x) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) -> if_minsort#(true(),add(n,x),y) -> app#(rm(n,x),y) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) -> if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) -> if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) minsort#(add(n,x),y) -> min#(add(n,x)) -> min#(add(n,add(m,x))) -> le#(n,m) minsort#(add(n,x),y) -> min#(add(n,x)) -> min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) minsort#(add(n,x),y) -> eq#(n,min(add(n,x))) -> eq#(s(x),s(y)) -> eq#(x,y) if_rm#(false(),n,add(m,x)) -> rm#(n,x) -> rm#(n,add(m,x)) -> eq#(n,m) if_rm#(false(),n,add(m,x)) -> rm#(n,x) -> rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) if_rm#(true(),n,add(m,x)) -> rm#(n,x) -> rm#(n,add(m,x)) -> eq#(n,m) if_rm#(true(),n,add(m,x)) -> rm#(n,x) -> rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) -> if_rm#(true(),n,add(m,x)) -> rm#(n,x) rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) -> if_rm#(false(),n,add(m,x)) -> rm#(n,x) rm#(n,add(m,x)) -> eq#(n,m) -> eq#(s(x),s(y)) -> eq#(x,y) if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) -> min#(add(n,add(m,x))) -> le#(n,m) if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) -> min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) -> min#(add(n,add(m,x))) -> le#(n,m) if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) -> min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) -> if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) -> if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) min#(add(n,add(m,x))) -> le#(n,m) -> le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) -> app#(add(n,x),y) -> app#(x,y) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) eq#(s(x),s(y)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) SCC Processor: #sccs: 6 #rules: 12 #arcs: 33/324 DPs: if_minsort#(false(),add(n,x),y) -> minsort#(x,add(n,y)) minsort#(add(n,x),y) -> if_minsort#(eq(n,min(add(n,x))),add(n,x),y) if_minsort#(true(),add(n,x),y) -> minsort#(app(rm(n,x),y),nil()) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open DPs: rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) if_rm#(false(),n,add(m,x)) -> rm#(n,x) if_rm#(true(),n,add(m,x)) -> rm#(n,x) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open DPs: app#(add(n,x),y) -> app#(x,y) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open DPs: min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open DPs: le#(s(x),s(y)) -> le#(x,y) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open DPs: eq#(s(x),s(y)) -> eq#(x,y) TRS: eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) min(add(n,nil())) -> n min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x))) if_min(true(),add(n,add(m,x))) -> min(add(n,x)) if_min(false(),add(n,add(m,x))) -> min(add(m,x)) rm(n,nil()) -> nil() rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x)) if_rm(true(),n,add(m,x)) -> rm(n,x) if_rm(false(),n,add(m,x)) -> add(m,rm(n,x)) minsort(nil(),nil()) -> nil() minsort(add(n,x),y) -> if_minsort(eq(n,min(add(n,x))),add(n,x),y) if_minsort(true(),add(n,x),y) -> add(n,minsort(app(rm(n,x),y),nil())) if_minsort(false(),add(n,x),y) -> minsort(x,add(n,y)) Open