YES Problem: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Proof: DP Processor: DPs: app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) app#(app(times(),app(s(),x)),y) -> app#(times(),x) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) inc#() -> app#(s(),0()) inc#() -> app#(plus(),app(s(),0())) inc#() -> app#(map(),app(plus(),app(s(),0()))) double#() -> app#(s(),0()) double#() -> app#(s(),app(s(),0())) double#() -> app#(times(),app(s(),app(s(),0()))) double#() -> app#(map(),app(times(),app(s(),app(s(),0())))) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) EDG Processor: DPs: app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) app#(app(times(),app(s(),x)),y) -> app#(times(),x) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) inc#() -> app#(s(),0()) inc#() -> app#(plus(),app(s(),0())) inc#() -> app#(map(),app(plus(),app(s(),0()))) double#() -> app#(s(),0()) double#() -> app#(s(),app(s(),0())) double#() -> app#(times(),app(s(),app(s(),0()))) double#() -> app#(map(),app(times(),app(s(),app(s(),0())))) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) graph: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(times(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) -> app#(app(times(),app(s(),x)),y) -> app#(times(),x) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) -> app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) -> app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) -> app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) -> app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) -> app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) -> app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) -> app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) -> app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) -> app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) SCC Processor: #sccs: 3 #rules: 4 #arcs: 25/324 DPs: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Subterm Criterion Processor: simple projection: pi(app#) = 0 problem: DPs: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Qed DPs: app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Usable Rule Processor: DPs: app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) TRS: Bounds Processor: bound: 1 enrichment: match automaton: final states: {7} transitions: s0() -> 6* app{#,1}(11,6) -> 7* app{#,1}(11,5) -> 7* app1(10,5) -> 11* app1(10,6) -> 11* times1() -> 10* app{#,0}(5,5) -> 7* app{#,0}(6,6) -> 7* app{#,0}(5,6) -> 7* app{#,0}(6,5) -> 7* app0(5,5) -> 5* app0(6,6) -> 5* app0(5,6) -> 5* app0(6,5) -> 5* times0() -> 5* problem: DPs: TRS: Qed DPs: app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) TRS: app(app(plus(),0()),y) -> y app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) -> 0() app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y) 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)) inc() -> app(map(),app(plus(),app(s(),0()))) double() -> app(map(),app(times(),app(s(),app(s(),0())))) Usable Rule Processor: DPs: app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) TRS: Bounds Processor: bound: 1 enrichment: match automaton: final states: {7} transitions: s0() -> 6* app{#,1}(11,6) -> 7* app{#,1}(11,5) -> 7* app1(10,5) -> 11* app1(10,6) -> 11* plus0() -> 5* plus1() -> 10* app{#,0}(5,5) -> 7* app{#,0}(6,6) -> 7* app{#,0}(5,6) -> 7* app{#,0}(6,5) -> 7* app0(5,5) -> 5* app0(6,6) -> 5* app0(5,6) -> 5* app0(6,5) -> 5* problem: DPs: TRS: Qed