Input TRS: 1: +(|0|(),y) -> y 2: +(s(x),y) -> s(+(x,y)) 3: sum1(nil()) -> |0|() 4: sum1(cons(x,y)) -> +(x,sum1(y)) 5: sum2(nil(),z) -> z 6: sum2(cons(x,y),z) -> sum2(y,+(x,z)) 7: tests(|0|()) -> true() 8: tests(s(x)) -> and(test(rands(rand(|0|()),nil())),x) 9: test(done(y)) -> eq(f(y),g(y)) 10: eq(x,x) -> true() 11: rands(|0|(),y) -> done(y) 12: rands(s(x),y) -> rands(x,|::|(rand(|0|()),y)) 13: rand(x) ->= x 14: rand(x) ->= rand(s(x)) Number of strict rules: 12 Direct Order(PosReal,>,Poly) ... removes: 4 8 1 3 5 10 7 11 9 6 |0|() weight: 0 rands(x1,x2) weight: (/ 1 4) + 2 * x2 + x1 tests(x1) weight: (/ 80071 4) + x1 test(x1) weight: (/ 160139 8) + x1 s(x1) weight: x1 done(x1) weight: (/ 1 8) + 2 * x1 and(x1,x2) weight: x2 + x1 eq(x1,x2) weight: (/ 1 8) + x2 + x1 sum2(x1,x2) weight: (/ 1 8) + x2 + x1 true() weight: 0 rand(x1) weight: x1 f(x1) weight: (/ 6721 8) + x1 nil() weight: 0 |::|(x1,x2) weight: x2 + x1 cons(x1,x2) weight: (/ 1 4) + x2 + x1 +(x1,x2) weight: (/ 1 8) + x2 + x1 g(x1) weight: (/ 153417 8) + x1 sum1(x1) weight: (/ 1 8) + x1 Number of strict rules: 2 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #+(s(x),y) -> #+(x,y) #2: #rands(s(x),y) -> #rands(x,|::|(rand(|0|()),y)) Number of SCCs: 2, DPs: 2, edges: 2 SCC { #1 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. |0|() weight: (/ 1 4) status: [] precedence above: rands(x1,x2) weight: (/ 1 2) + x2 + x1 status: [x2,x1] precedence above: |0| tests(x1) weight: (/ 1 4) status: [] precedence above: test(x1) weight: x1 status: [] precedence above: s(x1) weight: x1 status: [x1] precedence above: + #+ done(x1) weight: x1 status: [] precedence above: and(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x2,x1] precedence above: eq(x1,x2) weight: (/ 1 4) + x1 status: [x1] precedence above: sum2(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: true() weight: 0 status: [] precedence above: rand(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| rands s + #+ f(x1) weight: x1 status: [] precedence above: #rands(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: nil() weight: 0 status: [] precedence above: |::|(x1,x2) weight: x2 status: x2 cons(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: +(x1,x2) weight: x1 status: [x1] precedence above: s #+ g(x1) weight: x1 status: [] precedence above: #+(x1,x2) weight: x1 status: [x1] precedence above: sum1(x1) weight: x1 status: [] precedence above: Removed DPs: #1 Number of SCCs: 1, DPs: 1, edges: 1 SCC { #2 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. |0|() weight: 0 status: [] precedence above: rands(x1,x2) weight: (/ 1 4) status: [] precedence above: |0| tests(x1) weight: (/ 1 4) status: [] precedence above: test(x1) weight: x1 status: [] precedence above: s(x1) weight: x1 status: [x1] precedence above: |0| rand #rands |::| #+ done(x1) weight: x1 status: [] precedence above: and(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x2,x1] precedence above: eq(x1,x2) weight: (/ 1 4) + x1 status: [x1] precedence above: sum2(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: true() weight: 0 status: [] precedence above: rand(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| s #rands |::| #+ f(x1) weight: x1 status: [] precedence above: #rands(x1,x2) weight: x2 + x1 status: [x2,x1] precedence above: |0| #+ nil() weight: 0 status: [] precedence above: |::|(x1,x2) weight: 0 status: [] precedence above: |0| s rand #rands #+ cons(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: +(x1,x2) weight: (/ 1 4) + x1 status: [x1] precedence above: |0| s rand #rands |::| #+ g(x1) weight: x1 status: [] precedence above: #+(x1,x2) weight: x1 status: [x1] precedence above: sum1(x1) weight: x1 status: [] precedence above: Removed DPs: #2 Number of SCCs: 0, DPs: 0, edges: 0 YES