/export/starexec/sandbox2/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) Proof: Extended Uncurrying Processor: application symbol: ap symbol table: nil ==> nil0/0 cons ==> cons0/0 cons1/1 cons2/2 ff ==> ff0/0 ff1/1 ff2/2 uncurry-rules: ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) eta-rules: problem: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) DP Processor: DPs: ff{2,#}(x,x) -> ap#(x,ff1(x)) ff{2,#}(x,x) -> ap#(ap(x,ff1(x)),cons2(x,nil0())) ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) TRS: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) TDG Processor: DPs: ff{2,#}(x,x) -> ap#(x,ff1(x)) ff{2,#}(x,x) -> ap#(ap(x,ff1(x)),cons2(x,nil0())) ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) TRS: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) graph: ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) -> ff{2,#}(x,x) -> ap#(ap(x,ff1(x)),cons2(x,nil0())) ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) -> ff{2,#}(x,x) -> ap#(x,ff1(x)) ff{2,#}(x,x) -> ap#(ap(x,ff1(x)),cons2(x,nil0())) -> ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) ff{2,#}(x,x) -> ap#(x,ff1(x)) -> ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) Arctic Interpretation Processor: dimension: 1 usable rules: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) interpretation: [ap#](x0, x1) = x0 + x1 + 1, [ff{2,#}](x0, x1) = x1 + 4, [nil0] = 8, [cons2](x0, x1) = -8x1 + 0, [cons1](x0) = -5x0 + 0, [cons0] = 4, [ff2](x0, x1) = -6x1 + 1, [ff1](x0) = 4, [ff0] = 8, [ap](x0, x1) = -3x0 + -5x1 + 0 orientation: ff{2,#}(x,x) = x + 4 >= x + 4 = ap#(x,ff1(x)) ff{2,#}(x,x) = x + 4 >= -3x + 1 = ap#(ap(x,ff1(x)),cons2(x,nil0())) ap#(ff1(x1),x2) = x2 + 4 >= x2 + 4 = ff{2,#}(x1,x2) ff2(x,x) = -6x + 1 >= -6x + 0 = ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) = -5x2 + 1 >= -6x2 + 1 = ff2(x1,x2) ap(ff0(),x1) = -5x1 + 5 >= 4 = ff1(x1) ap(cons1(x4),x5) = -8x4 + -5x5 + 0 >= -8x5 + 0 = cons2(x4,x5) ap(cons0(),x4) = -5x4 + 1 >= -5x4 + 0 = cons1(x4) problem: DPs: ff{2,#}(x,x) -> ap#(x,ff1(x)) ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) TRS: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) Restore Modifier: DPs: ff{2,#}(x,x) -> ap#(x,ff1(x)) ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) TRS: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) Size-Change Termination Processor: DPs: TRS: ff2(x,x) -> ap(ap(x,ff1(x)),cons2(x,nil0())) ap(ff1(x1),x2) -> ff2(x1,x2) ap(ff0(),x1) -> ff1(x1) ap(cons1(x4),x5) -> cons2(x4,x5) ap(cons0(),x4) -> cons1(x4) The DP: ff{2,#}(x,x) -> ap#(x,ff1(x)) has the edges: 0 >= 0 1 >= 0 The DP: ap#(ff1(x1),x2) -> ff{2,#}(x1,x2) has the edges: 0 > 0 1 >= 1 Qed