YES Problem: f(a(),f(a(),x)) -> f(x,f(a(),f(f(a(),a()),a()))) Proof: Extended Uncurrying Processor: application symbol: f symbol table: a ==> a0/0 a1/1 a2/2 uncurry-rules: f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) eta-rules: f(f(a(),f(a(),x)),x1) -> f(f(x,f(a(),f(f(a(),a()),a()))),x1) problem: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) DP Processor: DPs: a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) f#(a1(x2),x3) -> a{2,#}(x2,x3) f#(a0(),x2) -> a{1,#}(x2) TRS: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) TDG Processor: DPs: a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) f#(a1(x2),x3) -> a{2,#}(x2,x3) f#(a0(),x2) -> a{1,#}(x2) TRS: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) graph: f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) -> f#(a0(),x2) -> a{1,#}(x2) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) -> f#(a0(),x2) -> a{1,#}(x2) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) -> f#(a0(),x2) -> a{1,#}(x2) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) -> a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) -> a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) EDG Processor: DPs: a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) f#(a1(x2),x3) -> a{2,#}(x2,x3) f#(a0(),x2) -> a{1,#}(x2) TRS: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) graph: f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> a{2,#}(a0(),a0()) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> a{1,#}(a2(a0(),a0())) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) f#(a1(x2),x3) -> a{2,#}(x2,x3) -> a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> a{2,#}(a0(),a0()) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> a{1,#}(a2(a0(),a0())) f#(a0(),x2) -> a{1,#}(x2) -> a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) -> f#(a0(),x2) -> a{1,#}(x2) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) -> f#(a1(x2),x3) -> a{2,#}(x2,x3) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) -> f#(a0(),x2) -> a{1,#}(x2) SCC Processor: #sccs: 1 #rules: 5 #arcs: 12/81 DPs: f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(f(x,a1(a2(a0(),a0()))),x1) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) f#(a0(),x2) -> a{1,#}(x2) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) TRS: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) Bounds Processor: bound: 1 enrichment: match-dp automaton: final states: {3} transitions: a{0,1}() -> 31* f1(6,33) -> 34* a{2,0}(4,7) -> 8* a{2,0}(5,5) -> 6* a{2,0}(7,7) -> 8* a{1,0}(6) -> 7* a{1,0}(7) -> 8* f0(8,7) -> 8* f0(6,7) -> 8* f0(4,7) -> 8* f80() -> 4* f{#,0}(6,7) -> 3* f{#,0}(8,4) -> 3* a{2,#,0}(7,4) -> 3* f{#,1}(34,4) -> 3* a{1,1}(32) -> 33* a{2,1}(31,31) -> 32* a{0,0}() -> 5* problem: DPs: f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) f#(a0(),x2) -> a{1,#}(x2) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) TRS: a1(a1(x)) -> f(x,a1(a2(a0(),a0()))) a2(a1(x),x1) -> f(f(x,a1(a2(a0(),a0()))),x1) f(a1(x2),x3) -> a2(x2,x3) f(a0(),x2) -> a1(x2) Usable Rule Processor: DPs: f#(a1(x2),x3) -> a{2,#}(x2,x3) a{2,#}(a1(x),x1) -> f#(x,a1(a2(a0(),a0()))) f#(a0(),x2) -> a{1,#}(x2) a{1,#}(a1(x)) -> f#(x,a1(a2(a0(),a0()))) TRS: Semantic Labeling Processor: dimension: 1 usable rules: interpretation: [a2](x0, x1) = 0, [a1](x0) = x0 + 1, [a0] = 1 labeled: f# a{2,#} a{1,#} usable (for model): f# a1 a{2,#} a2 a0 a{1,#} argument filtering: pi(a0) = [] pi(a1) = 0 pi(a2) = [] pi(a{1,#}) = [] pi(a{2,#}) = [] pi(f#) = [] precedence: a{1,#} > f# > a{2,#} ~ a2 ~ a1 ~ a0 problem: DPs: TRS: Qed