YES Problem: strict: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y weak: o(x,y) -> d(x,y) o(x,y) -> d(y,x) Proof: RT Transformation Processor: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) DP Processor: DPs: o#(lambda(x),y) -> o#(y,p()) o#(lambda(x),y) -> d#(1(),o(y,p())) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) o#(x,y) -> d#(x,y) o#(x,y) -> d#(y,x) TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) TDG Processor: DPs: o#(lambda(x),y) -> o#(y,p()) o#(lambda(x),y) -> d#(1(),o(y,p())) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) o#(x,y) -> d#(x,y) o#(x,y) -> d#(y,x) TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) graph: o#(d(x,y),z) -> o#(y,z) -> o#(x,y) -> d#(y,x) o#(d(x,y),z) -> o#(y,z) -> o#(x,y) -> d#(x,y) o#(d(x,y),z) -> o#(y,z) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(d(x,y),z) -> o#(y,z) -> o#(o(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(d(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> o#(x,z) o#(d(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(d(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(d(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(d(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> o#(y,p()) o#(d(x,y),z) -> o#(x,z) -> o#(x,y) -> d#(y,x) o#(d(x,y),z) -> o#(x,z) -> o#(x,y) -> d#(x,y) o#(d(x,y),z) -> o#(x,z) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(d(x,y),z) -> o#(x,z) -> o#(o(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(d(x,y),z) -> o#(x,z) -> o#(d(x,y),z) -> o#(x,z) o#(d(x,y),z) -> o#(x,z) -> o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(d(x,y),z) -> o#(x,z) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(d(x,y),z) -> o#(x,z) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(d(x,y),z) -> o#(x,z) -> o#(lambda(x),y) -> o#(y,p()) o#(o(x,y),z) -> o#(y,z) -> o#(x,y) -> d#(y,x) o#(o(x,y),z) -> o#(y,z) -> o#(x,y) -> d#(x,y) o#(o(x,y),z) -> o#(y,z) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(o(x,y),z) -> o#(y,z) -> o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(o(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> o#(x,z) o#(o(x,y),z) -> o#(y,z) -> o#(d(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(o(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(o(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(o(x,y),z) -> o#(y,z) -> o#(lambda(x),y) -> o#(y,p()) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(x,y) -> d#(y,x) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(x,y) -> d#(x,y) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(d(x,y),z) -> o#(x,z) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(d(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(o(x,y),z) -> o#(x,o(y,z)) -> o#(lambda(x),y) -> o#(y,p()) o#(lambda(x),y) -> o#(y,p()) -> o#(x,y) -> d#(y,x) o#(lambda(x),y) -> o#(y,p()) -> o#(x,y) -> d#(x,y) o#(lambda(x),y) -> o#(y,p()) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(lambda(x),y) -> o#(y,p()) -> o#(o(x,y),z) -> o#(y,z) o#(lambda(x),y) -> o#(y,p()) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(lambda(x),y) -> o#(y,p()) -> o#(d(x,y),z) -> o#(x,z) o#(lambda(x),y) -> o#(y,p()) -> o#(d(x,y),z) -> o#(y,z) o#(lambda(x),y) -> o#(y,p()) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(lambda(x),y) -> o#(y,p()) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(lambda(x),y) -> o#(y,p()) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(lambda(x),y) -> o#(y,p()) -> o#(lambda(x),y) -> o#(y,p()) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(x,y) -> d#(y,x) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(x,y) -> d#(x,y) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(o(x,y),z) -> o#(x,o(y,z)) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(o(x,y),z) -> o#(y,z) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(d(x,y),z) -> d#(o(x,z),o(y,z)) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(d(x,y),z) -> o#(x,z) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(d(x,y),z) -> o#(y,z) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(lambda(x),y) -> lambda#(o(x,d(1(),o(y,p())))) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(lambda(x),y) -> d#(1(),o(y,p())) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) -> o#(lambda(x),y) -> o#(y,p()) SCC Processor: #sccs: 1 #rules: 6 #arcs: 66/121 DPs: o#(d(x,y),z) -> o#(y,z) o#(lambda(x),y) -> o#(y,p()) o#(lambda(x),y) -> o#(x,d(1(),o(y,p()))) o#(d(x,y),z) -> o#(x,z) o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) Maximal Polynomial Processor: usable rules: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) interpretations: o#(x0, x1) = max(0, 0 + x0 + x1) d(x0, x1) = max(0, x0, x1) p = 0 1 = 0 o(x0, x1) = max(0, 0 + x0 + x1) lambda(x0) = max(0, 0 + 1 + x0) problem: DPs: o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) Restore Modifier: DPs: o#(d(x,y),z) -> o#(y,z) o#(d(x,y),z) -> o#(x,z) o#(o(x,y),z) -> o#(y,z) o#(o(x,y),z) -> o#(x,o(y,z)) TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) Size-Change Termination Processor: DPs: TRS: o(lambda(x),y) -> lambda(o(x,d(1(),o(y,p())))) o(d(x,y),z) -> d(o(x,z),o(y,z)) o(o(x,y),z) -> o(x,o(y,z)) lambda(x) -> x o(x,y) -> x o(x,y) -> y d(x,y) -> x d(x,y) -> y o(x,y) -> d(x,y) o(x,y) -> d(y,x) The DP: o#(d(x,y),z) -> o#(y,z) has the edges: 0 > 0 1 >= 1 The DP: o#(d(x,y),z) -> o#(x,z) has the edges: 0 > 0 1 >= 1 The DP: o#(o(x,y),z) -> o#(y,z) has the edges: 0 > 0 1 >= 1 The DP: o#(o(x,y),z) -> o#(x,o(y,z)) has the edges: 0 > 0 Qed