Input TRS: 1: a__U11(tt(),N) -> mark(N) 2: a__U21(tt(),M,N) -> s(a__plus(mark(N),mark(M))) 3: a__U31(tt()) -> 0() 4: a__U41(tt(),M,N) -> a__plus(a__x(mark(N),mark(M)),mark(N)) 5: a__and(tt(),X) -> mark(X) 6: a__isNat(0()) -> tt() 7: a__isNat(plus(V1,V2)) -> a__and(a__isNat(V1),isNat(V2)) 8: a__isNat(s(V1)) -> a__isNat(V1) 9: a__isNat(x(V1,V2)) -> a__and(a__isNat(V1),isNat(V2)) 10: a__plus(N,0()) -> a__U11(a__isNat(N),N) 11: a__plus(N,s(M)) -> a__U21(a__and(a__isNat(M),isNat(N)),M,N) 12: a__x(N,0()) -> a__U31(a__isNat(N)) 13: a__x(N,s(M)) -> a__U41(a__and(a__isNat(M),isNat(N)),M,N) 14: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) 15: mark(U21(X1,X2,X3)) -> a__U21(mark(X1),X2,X3) 16: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) 17: mark(U31(X)) -> a__U31(mark(X)) 18: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) 19: mark(x(X1,X2)) -> a__x(mark(X1),mark(X2)) 20: mark(and(X1,X2)) -> a__and(mark(X1),X2) 21: mark(isNat(X)) -> a__isNat(X) 22: mark(tt()) -> tt() 23: mark(s(X)) -> s(mark(X)) 24: mark(0()) -> 0() 25: a__U11(X1,X2) -> U11(X1,X2) 26: a__U21(X1,X2,X3) -> U21(X1,X2,X3) 27: a__plus(X1,X2) -> plus(X1,X2) 28: a__U31(X) -> U31(X) 29: a__U41(X1,X2,X3) -> U41(X1,X2,X3) 30: a__x(X1,X2) -> x(X1,X2) 31: a__and(X1,X2) -> and(X1,X2) 32: a__isNat(X) -> isNat(X) Number of strict rules: 32 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__U21(tt(),M,N) -> #a__plus(mark(N),mark(M)) #2: #a__U21(tt(),M,N) -> #mark(N) #3: #a__U21(tt(),M,N) -> #mark(M) #4: #a__x(N,s(M)) -> #a__U41(a__and(a__isNat(M),isNat(N)),M,N) #5: #a__x(N,s(M)) -> #a__and(a__isNat(M),isNat(N)) #6: #a__x(N,s(M)) -> #a__isNat(M) #7: #a__isNat(x(V1,V2)) -> #a__and(a__isNat(V1),isNat(V2)) #8: #a__isNat(x(V1,V2)) -> #a__isNat(V1) #9: #a__plus(N,s(M)) -> #a__U21(a__and(a__isNat(M),isNat(N)),M,N) #10: #a__plus(N,s(M)) -> #a__and(a__isNat(M),isNat(N)) #11: #a__plus(N,s(M)) -> #a__isNat(M) #12: #mark(s(X)) -> #mark(X) #13: #a__x(N,0()) -> #a__U31(a__isNat(N)) #14: #a__x(N,0()) -> #a__isNat(N) #15: #mark(U11(X1,X2)) -> #a__U11(mark(X1),X2) #16: #mark(U11(X1,X2)) -> #mark(X1) #17: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #18: #mark(and(X1,X2)) -> #mark(X1) #19: #a__isNat(plus(V1,V2)) -> #a__and(a__isNat(V1),isNat(V2)) #20: #a__isNat(plus(V1,V2)) -> #a__isNat(V1) #21: #a__plus(N,0()) -> #a__U11(a__isNat(N),N) #22: #a__plus(N,0()) -> #a__isNat(N) #23: #a__and(tt(),X) -> #mark(X) #24: #mark(U31(X)) -> #a__U31(mark(X)) #25: #mark(U31(X)) -> #mark(X) #26: #mark(x(X1,X2)) -> #a__x(mark(X1),mark(X2)) #27: #mark(x(X1,X2)) -> #mark(X1) #28: #mark(x(X1,X2)) -> #mark(X2) #29: #mark(isNat(X)) -> #a__isNat(X) #30: #mark(plus(X1,X2)) -> #a__plus(mark(X1),mark(X2)) #31: #mark(plus(X1,X2)) -> #mark(X1) #32: #mark(plus(X1,X2)) -> #mark(X2) #33: #a__U11(tt(),N) -> #mark(N) #34: #a__isNat(s(V1)) -> #a__isNat(V1) #35: #mark(U21(X1,X2,X3)) -> #a__U21(mark(X1),X2,X3) #36: #mark(U21(X1,X2,X3)) -> #mark(X1) #37: #a__U41(tt(),M,N) -> #a__plus(a__x(mark(N),mark(M)),mark(N)) #38: #a__U41(tt(),M,N) -> #a__x(mark(N),mark(M)) #39: #a__U41(tt(),M,N) -> #mark(N) #40: #a__U41(tt(),M,N) -> #mark(M) #41: #a__U41(tt(),M,N) -> #mark(N) #42: #mark(U41(X1,X2,X3)) -> #a__U41(mark(X1),X2,X3) #43: #mark(U41(X1,X2,X3)) -> #mark(X1) Number of SCCs: 1, DPs: 41, edges: 375 SCC { #1..12 #14..23 #25..43 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. a__plus(x1,x2) weight: max{(/ 29361 2) + x2, x1} U21(x1,x2,x3) weight: max{x3, (/ 29361 2) + x2, x1} U11(x1,x2) weight: max{x2, x1} s(x1) weight: x1 #a__U31(x1) weight: 0 #a__isNat(x1) weight: (/ 1 4) + x1 and(x1,x2) weight: max{x2, x1} #a__x(x1,x2) weight: max{(/ 58723 4) + x2, (/ 58723 4) + x1} #a__U11(x1,x2) weight: max{0, (/ 1 4) + x2} a__U31(x1) weight: (/ 1 4) + x1 a__x(x1,x2) weight: max{(/ 29361 2) + x2, (/ 29361 2) + x1} a__U41(x1,x2,x3) weight: max{(/ 29361 2) + x3, (/ 29361 2) + x2, (/ 1 4) + x1} x(x1,x2) weight: max{(/ 29361 2) + x2, (/ 29361 2) + x1} #a__U21(x1,x2,x3) weight: max{0, (/ 1 4) + x3, (/ 58723 4) + x2} #a__plus(x1,x2) weight: max{(/ 58723 4) + x2, (/ 1 4) + x1} #mark(x1) weight: (/ 1 4) + x1 0() weight: (/ 1 4) #a__and(x1,x2) weight: max{0, (/ 1 4) + x2} a__U21(x1,x2,x3) weight: max{x3, (/ 29361 2) + x2, x1} mark(x1) weight: x1 a__U11(x1,x2) weight: max{x2, x1} isNat(x1) weight: x1 plus(x1,x2) weight: max{(/ 29361 2) + x2, x1} U31(x1) weight: (/ 1 4) + x1 #a__U41(x1,x2,x3) weight: max{0, (/ 58723 4) + x3, (/ 58723 4) + x2} tt() weight: 0 a__isNat(x1) weight: x1 a__and(x1,x2) weight: max{x2, x1} U41(x1,x2,x3) weight: max{(/ 29361 2) + x3, (/ 29361 2) + x2, (/ 1 4) + x1} Usable rules: { 1..32 } Removed DPs: #3 #5..8 #11 #14 #19 #25 #27 #28 #32 #39..41 #43 Number of SCCs: 2, DPs: 23, edges: 115 SCC { #20 #34 } Removing DPs: Order(PosReal,>,Sum)... succeeded. a__plus(x1,x2) weight: (/ 3 16) U21(x1,x2,x3) weight: (/ 5 16) + x1 + x2 + x3 U11(x1,x2) weight: (/ 1 8) + x2 s(x1) weight: (/ 1 8) + x1 #a__U31(x1) weight: 0 #a__isNat(x1) weight: x1 and(x1,x2) weight: (/ 9 16) #a__x(x1,x2) weight: 0 #a__U11(x1,x2) weight: 0 a__U31(x1) weight: (/ 3 16) a__x(x1,x2) weight: (/ 1 16) + x1 a__U41(x1,x2,x3) weight: (/ 1 16) + x1 + x2 x(x1,x2) weight: (/ 1 8) #a__U21(x1,x2,x3) weight: 0 #a__plus(x1,x2) weight: 0 #mark(x1) weight: 0 0() weight: 0 #a__and(x1,x2) weight: 0 a__U21(x1,x2,x3) weight: (/ 1 4) mark(x1) weight: (/ 1 8) a__U11(x1,x2) weight: (/ 1 16) + x1 isNat(x1) weight: (/ 1 4) plus(x1,x2) weight: (/ 1 4) + x1 U31(x1) weight: (/ 1 4) + x1 #a__U41(x1,x2,x3) weight: 0 tt() weight: 0 a__isNat(x1) weight: (/ 3 16) + x1 a__and(x1,x2) weight: (/ 1 2) U41(x1,x2,x3) weight: (/ 1 8) Usable rules: { } Removed DPs: #20 #34 Number of SCCs: 1, DPs: 21, edges: 111 SCC { #1 #2 #4 #9 #10 #12 #15..18 #21 #23 #26 #30 #31 #33 #35..38 #42 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. a__plus(x1,x2) weight: max{(/ 5 16) + x2, x1} U21(x1,x2,x3) weight: max{x3, (/ 5 16) + x2, (/ 3 16) + x1} U11(x1,x2) weight: max{x2, (/ 1 16) + x1} s(x1) weight: x1 #a__U31(x1) weight: 0 #a__isNat(x1) weight: (/ 1 16) and(x1,x2) weight: max{x2, x1} #a__x(x1,x2) weight: max{(/ 9 16) + x2, (/ 1 2) + x1} #a__U11(x1,x2) weight: max{0, (/ 3 16) + x2} a__U31(x1) weight: (/ 1 16) a__x(x1,x2) weight: max{(/ 3 8) + x2, (/ 5 16) + x1} a__U41(x1,x2,x3) weight: max{(/ 5 16) + x3, (/ 3 8) + x2, (/ 3 16) + x1} x(x1,x2) weight: max{(/ 3 8) + x2, (/ 5 16) + x1} #a__U21(x1,x2,x3) weight: max{(/ 3 16) + x3, (/ 5 16) + x2, (/ 3 16) + x1} #a__plus(x1,x2) weight: max{(/ 5 16) + x2, (/ 3 16) + x1} #mark(x1) weight: (/ 3 16) + x1 0() weight: (/ 1 16) #a__and(x1,x2) weight: max{(/ 3 16) + x2, (/ 1 16) + x1} a__U21(x1,x2,x3) weight: max{x3, (/ 5 16) + x2, (/ 3 16) + x1} mark(x1) weight: x1 a__U11(x1,x2) weight: max{x2, (/ 1 16) + x1} isNat(x1) weight: (/ 1 16) plus(x1,x2) weight: max{(/ 5 16) + x2, x1} U31(x1) weight: (/ 1 16) #a__U41(x1,x2,x3) weight: max{0, (/ 1 2) + x3, (/ 9 16) + x2} tt() weight: (/ 1 16) a__isNat(x1) weight: (/ 1 16) a__and(x1,x2) weight: max{x2, x1} U41(x1,x2,x3) weight: max{(/ 5 16) + x3, (/ 3 8) + x2, (/ 3 16) + x1} Usable rules: { 1..32 } Removed DPs: #10 #16 #36 Number of SCCs: 1, DPs: 18, edges: 73 SCC { #1 #2 #4 #9 #12 #15 #17 #18 #21 #23 #26 #30 #31 #33 #35 #37 #38 #42 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. a__plus(x1,x2) weight: max{(/ 5 16) + x2, x1} U21(x1,x2,x3) weight: max{0, x3, (/ 5 16) + x2} U11(x1,x2) weight: max{x2, x1} s(x1) weight: x1 #a__U31(x1) weight: 0 #a__isNat(x1) weight: (/ 1 16) and(x1,x2) weight: max{(/ 1 8) + x2, x1} #a__x(x1,x2) weight: max{(/ 5 16) + x2, (/ 7 16) + x1} #a__U11(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} a__U31(x1) weight: x1 a__x(x1,x2) weight: max{(/ 3 16) + x2, (/ 5 16) + x1} a__U41(x1,x2,x3) weight: max{(/ 5 16) + x3, (/ 3 16) + x2, (/ 1 16) + x1} x(x1,x2) weight: max{(/ 3 16) + x2, (/ 5 16) + x1} #a__U21(x1,x2,x3) weight: max{0, (/ 1 8) + x3, (/ 3 8) + x2} #a__plus(x1,x2) weight: max{(/ 3 8) + x2, (/ 1 8) + x1} #mark(x1) weight: (/ 1 8) + x1 0() weight: (/ 1 4) #a__and(x1,x2) weight: max{(/ 3 16) + x2, (/ 1 16) + x1} a__U21(x1,x2,x3) weight: max{0, x3, (/ 5 16) + x2} mark(x1) weight: x1 a__U11(x1,x2) weight: max{x2, x1} isNat(x1) weight: x1 plus(x1,x2) weight: max{(/ 5 16) + x2, x1} U31(x1) weight: x1 #a__U41(x1,x2,x3) weight: max{0, (/ 7 16) + x3, (/ 5 16) + x2} tt() weight: (/ 1 4) a__isNat(x1) weight: x1 a__and(x1,x2) weight: max{(/ 1 8) + x2, x1} U41(x1,x2,x3) weight: max{(/ 5 16) + x3, (/ 3 16) + x2, (/ 1 16) + x1} Usable rules: { 1..32 } Removed DPs: #17 #23 Number of SCCs: 1, DPs: 16, edges: 58 SCC { #1 #2 #4 #9 #12 #15 #18 #21 #26 #30 #31 #33 #35 #37 #38 #42 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... succeeded. a__plus(x1,x2) status: [x2,x1] precedence above: U21 U11 s and #a__U21 a__U21 mark a__U11 plus a__isNat a__and U21(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U11 s and #a__U21 a__U21 mark a__U11 plus a__isNat a__and U11(x1,x2) status: [x1,x2] precedence above: and #a__U21 mark a__U11 a__isNat a__and s(x1) status: [x1] precedence above: and #a__U21 mark a__isNat a__and #a__U31(x1) status: [] precedence above: #a__isNat(x1) status: [] precedence above: and(x1,x2) status: [x1,x2] precedence above: a__and #a__x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and a__U31 a__x a__U41 x #a__U21 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 #a__U11(x1,x2) status: x2 a__U31(x1) status: [x1] precedence above: 0 U31 tt a__x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__U41 x #a__U21 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 a__U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x x #a__U21 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 #a__U21 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 #a__U21(x1,x2,x3) status: x3 #a__plus(x1,x2) status: x1 #mark(x1) status: x1 0() status: [] precedence above: tt #a__and(x1,x2) status: [x2,x1] precedence above: a__U21(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__U21 mark a__U11 plus a__isNat a__and mark(x1) status: x1 a__U11(x1,x2) status: [x1,x2] precedence above: U11 and #a__U21 mark a__isNat a__and isNat(x1) status: x1 plus(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and #a__U21 a__U21 mark a__U11 a__isNat a__and U31(x1) status: [x1] precedence above: a__U31 0 tt #a__U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 x #a__U21 0 a__U21 mark a__U11 plus U31 tt a__isNat a__and U41 tt() status: [] precedence above: a__isNat(x1) status: x1 a__and(x1,x2) status: [x1,x2] precedence above: and U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 x #a__U21 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and Usable rules: { 1..32 } Removed DPs: #4 #12 #15 #18 #30 #31 #35 #37 #38 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #1 #9 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... succeeded. a__plus(x1,x2) status: [x2,x1] precedence above: U21 U11 s and a__U21 mark a__U11 plus a__isNat a__and U21(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U11 s and a__U21 mark a__U11 plus a__isNat a__and U11(x1,x2) status: [x1,x2] precedence above: and mark a__U11 a__isNat a__and s(x1) status: [x1] precedence above: and mark a__isNat a__and #a__U31(x1) status: [] precedence above: #a__isNat(x1) status: [] precedence above: and(x1,x2) status: [x1,x2] precedence above: a__and #a__x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and a__U31 a__x a__U41 x 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 #a__U11(x1,x2) status: x2 a__U31(x1) status: [x1] precedence above: 0 U31 tt a__x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__U41 x 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 a__U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x x 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 x(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and U41 #a__U21(x1,x2,x3) status: [x2,x3] precedence above: and #a__plus a__and #a__plus(x1,x2) status: [x2,x1] precedence above: and #a__U21 a__and #mark(x1) status: x1 0() status: [] precedence above: tt #a__and(x1,x2) status: [x2,x1] precedence above: a__U21(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and mark a__U11 plus a__isNat a__and mark(x1) status: x1 a__U11(x1,x2) status: [x1,x2] precedence above: U11 and mark a__isNat a__and isNat(x1) status: x1 plus(x1,x2) status: [x2,x1] precedence above: a__plus U21 U11 s and a__U21 mark a__U11 a__isNat a__and U31(x1) status: [x1] precedence above: a__U31 0 tt #a__U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 x 0 a__U21 mark a__U11 plus U31 tt a__isNat a__and U41 tt() status: [] precedence above: a__isNat(x1) status: x1 a__and(x1,x2) status: [x1,x2] precedence above: and U41(x1,x2,x3) status: [x2,x3,x1] precedence above: a__plus U21 U11 s and #a__x a__U31 a__x a__U41 x 0 a__U21 mark a__U11 plus U31 #a__U41 tt a__isNat a__and Usable rules: { 1..32 } Removed DPs: #9 Number of SCCs: 0, DPs: 0, edges: 0 YES