YES Problem: app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(pred(),app(s(),x)) -> x app(app(minus(),x),0()) -> x app(app(minus(),x),app(s(),y)) -> app(pred(),app(app(minus(),x),y)) app(app(gcd(),0()),y) -> y app(app(gcd(),app(s(),x)),0()) -> app(s(),x) app(app(gcd(),app(s(),x)),app(s(),y)) -> app(app(app(if_gcd(),app(app(le(),y),x)),app(s(),x)),app(s(),y)) app(app(app(if_gcd(),true()),app(s(),x)),app(s(),y)) -> app(app(gcd(),app(app(minus(),x),y)),app(s(),y)) app(app(app(if_gcd(),false()),app(s(),x)),app(s(),y)) -> app(app(gcd(),app(app(minus(),y),x)),app(s(),x)) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(filter(),f),nil()) -> nil() app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs) app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs)) app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs) Proof: Uncurry Processor: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) DP Processor: DPs: le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) map{2,#}(f,cons2(x,xs)) -> app#(f,x) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) app#(le1(x6),x7) -> le{2,#}(x6,x7) app#(pred(),x7) -> pred{1,#}(x7) app#(minus1(x6),x7) -> minus{2,#}(x6,x7) app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) app#(map1(x6),x7) -> map{2,#}(x6,x7) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) TDG Processor: DPs: le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) map{2,#}(f,cons2(x,xs)) -> app#(f,x) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) app#(le1(x6),x7) -> le{2,#}(x6,x7) app#(pred(),x7) -> pred{1,#}(x7) app#(minus1(x6),x7) -> minus{2,#}(x6,x7) app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) app#(map1(x6),x7) -> map{2,#}(x6,x7) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) graph: filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) -> filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) -> filter{2,#}(f,cons2(x,xs)) -> app#(f,x) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) -> filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) -> filter{2,#}(f,cons2(x,xs)) -> app#(f,x) filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) -> filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) -> filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(filter1(x6),x7) -> filter{2,#}(x6,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(map1(x6),x7) -> map{2,#}(x6,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(minus1(x6),x7) -> minus{2,#}(x6,x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(pred(),x7) -> pred{1,#}(x7) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(le1(x6),x7) -> le{2,#}(x6,x7) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) -> filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) -> filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) -> filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) -> filter{2,#}(f,cons2(x,xs)) -> app#(f,x) app#(map1(x6),x7) -> map{2,#}(x6,x7) -> map{2,#}(f,cons2(x,xs)) -> app#(f,x) app#(map1(x6),x7) -> map{2,#}(x6,x7) -> map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) -> if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) -> if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) -> if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) -> if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) -> gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) -> gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) app#(minus1(x6),x7) -> minus{2,#}(x6,x7) -> minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) app#(minus1(x6),x7) -> minus{2,#}(x6,x7) -> minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) app#(le1(x6),x7) -> le{2,#}(x6,x7) -> le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(filter1(x6),x7) -> filter{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(map1(x6),x7) -> map{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(if_gcd2(x6,x5),x7) -> if_gcd{3,#}(x6,x5,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(gcd1(x6),x7) -> gcd{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(minus1(x6),x7) -> minus{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(pred(),x7) -> pred{1,#}(x7) map{2,#}(f,cons2(x,xs)) -> app#(f,x) -> app#(le1(x6),x7) -> le{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) -> map{2,#}(f,cons2(x,xs)) -> app#(f,x) map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) -> map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) -> gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) -> gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) -> minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) -> minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) -> gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) -> gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) -> minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) -> minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) -> if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) -> if_gcd{3,#}(false(),s1(x),s1(y)) -> minus{2,#}(y,x) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) -> if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) -> if_gcd{3,#}(true(),s1(x),s1(y)) -> minus{2,#}(x,y) gcd{2,#}(s1(x),s1(y)) -> le{2,#}(y,x) -> le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) -> minus{2,#}(x,s1(y)) -> pred{1,#}(minus2(x,y)) minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) -> minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) -> le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) SCC Processor: #sccs: 4 #rules: 14 #arcs: 55/529 DPs: filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) filter{2,#}(f,cons2(x,xs)) -> app#(f,x) app#(map1(x6),x7) -> map{2,#}(x6,x7) map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) map{2,#}(f,cons2(x,xs)) -> app#(f,x) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) filter{2,#}(f,cons2(x,xs)) -> filter2{4,#}(app(f,x),f,x,xs) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Subterm Criterion Processor: simple projection: pi(map{2,#}) = 1 pi(app#) = 1 pi(filter{2,#}) = 1 pi(filter2{4,#}) = 3 problem: DPs: filter2{4,#}(false(),f,x,xs) -> filter{2,#}(f,xs) app#(map1(x6),x7) -> map{2,#}(x6,x7) app#(filter1(x6),x7) -> filter{2,#}(x6,x7) filter2{4,#}(true(),f,x,xs) -> filter{2,#}(f,xs) app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) SCC Processor: #sccs: 0 #rules: 0 #arcs: 20/25 DPs: gcd{2,#}(s1(x),s1(y)) -> if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) if_gcd{3,#}(false(),s1(x),s1(y)) -> gcd{2,#}(minus2(y,x),s1(x)) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Matrix Interpretation Processor: dim=1 interpretation: [if_gcd{3,#}](x0, x1, x2) = 1/2x0 + x1 + 1/2x2 + 2, [gcd{2,#}](x0, x1) = x0 + 1/2x1 + 7/2, [filter21](x0) = 0, [filter22](x0, x1) = 1, [filter24](x0, x1, x2, x3) = 0, [filter23](x0, x1, x2) = 1, [filter2](x0, x1) = 0, [filter1](x0) = 2x0 + 1, [cons2](x0, x1) = 0, [cons1](x0) = 0, [map2](x0, x1) = 2x1 + 1, [map1](x0) = 2x0 + 1, [if_gcd1](x0) = 2x0, [if_gcd3](x0, x1, x2) = x1 + x2 + 1/2, [if_gcd2](x0, x1) = 2x1 + 1, [gcd2](x0, x1) = x0 + x1 + 2, [gcd1](x0) = 2x0 + 2, [minus2](x0, x1) = x0 + 1/2, [minus1](x0) = 2x0, [pred1](x0) = x0, [s1](x0) = 2x0 + 2, [le2](x0, x1) = 1, [le1](x0) = 0, [filter2] = 0, [filter] = 3, [cons] = 0, [nil] = 0, [map] = 2, [if_gcd] = 2, [gcd] = 2, [minus] = 0, [pred] = 0, [false] = 1, [s] = 3, [true] = 0, [app](x0, x1) = 1/2x0 + 2x1 + 1, [0] = 0, [le] = 0 orientation: gcd{2,#}(s1(x),s1(y)) = 2x + y + 13/2 >= 2x + y + 11/2 = if_gcd{3,#}(le2(y,x),s1(x),s1(y)) if_gcd{3,#}(true(),s1(x),s1(y)) = 2x + y + 5 >= x + y + 5 = gcd{2,#}(minus2(x,y),s1(y)) if_gcd{3,#}(false(),s1(x),s1(y)) = 2x + y + 11/2 >= x + y + 5 = gcd{2,#}(minus2(y,x),s1(x)) le2(0(),y) = 1 >= 0 = true() le2(s1(x),0()) = 1 >= 1 = false() le2(s1(x),s1(y)) = 1 >= 1 = le2(x,y) pred1(s1(x)) = 2x + 2 >= x = x minus2(x,0()) = x + 1/2 >= x = x minus2(x,s1(y)) = x + 1/2 >= x + 1/2 = pred1(minus2(x,y)) gcd2(0(),y) = y + 2 >= y = y gcd2(s1(x),0()) = 2x + 4 >= 2x + 2 = s1(x) gcd2(s1(x),s1(y)) = 2x + 2y + 6 >= 2x + 2y + 9/2 = if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) = 2x + 2y + 9/2 >= x + 2y + 9/2 = gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) = 2x + 2y + 9/2 >= 2x + y + 9/2 = gcd2(minus2(y,x),s1(x)) map2(f,nil()) = 1 >= 0 = nil() map2(f,cons2(x,xs)) = 1 >= 0 = cons2(app(f,x),map2(f,xs)) filter2(f,nil()) = 0 >= 0 = nil() filter2(f,cons2(x,xs)) = 0 >= 0 = filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) = 0 >= 0 = cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) = 0 >= 0 = filter2(f,xs) app(le1(x6),x7) = 2x7 + 1 >= 1 = le2(x6,x7) app(le(),x7) = 2x7 + 1 >= 0 = le1(x7) app(s(),x7) = 2x7 + 5/2 >= 2x7 + 2 = s1(x7) app(pred(),x7) = 2x7 + 1 >= x7 = pred1(x7) app(minus1(x6),x7) = x6 + 2x7 + 1 >= x6 + 1/2 = minus2(x6,x7) app(minus(),x7) = 2x7 + 1 >= 2x7 = minus1(x7) app(gcd1(x6),x7) = x6 + 2x7 + 2 >= x6 + x7 + 2 = gcd2(x6,x7) app(gcd(),x7) = 2x7 + 2 >= 2x7 + 2 = gcd1(x7) app(if_gcd2(x6,x5),x7) = x5 + 2x7 + 3/2 >= x5 + x7 + 1/2 = if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) = x6 + 2x7 + 1 >= 2x7 + 1 = if_gcd2(x6,x7) app(if_gcd(),x7) = 2x7 + 2 >= 2x7 = if_gcd1(x7) app(map1(x6),x7) = x6 + 2x7 + 3/2 >= 2x7 + 1 = map2(x6,x7) app(map(),x7) = 2x7 + 2 >= 2x7 + 1 = map1(x7) app(cons1(x6),x7) = 2x7 + 1 >= 0 = cons2(x6,x7) app(cons(),x7) = 2x7 + 1 >= 0 = cons1(x7) app(filter1(x6),x7) = x6 + 2x7 + 3/2 >= 0 = filter2(x6,x7) app(filter(),x7) = 2x7 + 5/2 >= 2x7 + 1 = filter1(x7) app(filter23(x6,x5,x4),x7) = 2x7 + 3/2 >= 0 = filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) = 2x7 + 3/2 >= 1 = filter23(x6,x5,x7) app(filter21(x6),x7) = 2x7 + 1 >= 1 = filter22(x6,x7) app(filter2(),x7) = 2x7 + 1 >= 0 = filter21(x7) problem: DPs: if_gcd{3,#}(true(),s1(x),s1(y)) -> gcd{2,#}(minus2(x,y),s1(y)) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) SCC Processor: #sccs: 0 #rules: 0 #arcs: 4/1 DPs: minus{2,#}(x,s1(y)) -> minus{2,#}(x,y) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Subterm Criterion Processor: simple projection: pi(minus{2,#}) = 1 problem: DPs: TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Qed DPs: le{2,#}(s1(x),s1(y)) -> le{2,#}(x,y) TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Subterm Criterion Processor: simple projection: pi(le{2,#}) = 1 problem: DPs: TRS: le2(0(),y) -> true() le2(s1(x),0()) -> false() le2(s1(x),s1(y)) -> le2(x,y) pred1(s1(x)) -> x minus2(x,0()) -> x minus2(x,s1(y)) -> pred1(minus2(x,y)) gcd2(0(),y) -> y gcd2(s1(x),0()) -> s1(x) gcd2(s1(x),s1(y)) -> if_gcd3(le2(y,x),s1(x),s1(y)) if_gcd3(true(),s1(x),s1(y)) -> gcd2(minus2(x,y),s1(y)) if_gcd3(false(),s1(x),s1(y)) -> gcd2(minus2(y,x),s1(x)) map2(f,nil()) -> nil() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) filter2(f,nil()) -> nil() filter2(f,cons2(x,xs)) -> filter24(app(f,x),f,x,xs) filter24(true(),f,x,xs) -> cons2(x,filter2(f,xs)) filter24(false(),f,x,xs) -> filter2(f,xs) app(le1(x6),x7) -> le2(x6,x7) app(le(),x7) -> le1(x7) app(s(),x7) -> s1(x7) app(pred(),x7) -> pred1(x7) app(minus1(x6),x7) -> minus2(x6,x7) app(minus(),x7) -> minus1(x7) app(gcd1(x6),x7) -> gcd2(x6,x7) app(gcd(),x7) -> gcd1(x7) app(if_gcd2(x6,x5),x7) -> if_gcd3(x6,x5,x7) app(if_gcd1(x6),x7) -> if_gcd2(x6,x7) app(if_gcd(),x7) -> if_gcd1(x7) app(map1(x6),x7) -> map2(x6,x7) app(map(),x7) -> map1(x7) app(cons1(x6),x7) -> cons2(x6,x7) app(cons(),x7) -> cons1(x7) app(filter1(x6),x7) -> filter2(x6,x7) app(filter(),x7) -> filter1(x7) app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7) app(filter22(x6,x5),x7) -> filter23(x6,x5,x7) app(filter21(x6),x7) -> filter22(x6,x7) app(filter2(),x7) -> filter21(x7) Qed