Input TRS: 1: a__fib(N) -> a__sel(mark(N),a__fib1(s(|0|()),s(|0|()))) 2: a__fib1(X,Y) -> cons(mark(X),fib1(Y,add(X,Y))) 3: a__add(|0|(),X) -> mark(X) 4: a__add(s(X),Y) -> s(a__add(mark(X),mark(Y))) 5: a__sel(|0|(),cons(X,XS)) -> mark(X) 6: a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) 7: mark(fib(X)) -> a__fib(mark(X)) 8: mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) 9: mark(fib1(X1,X2)) -> a__fib1(mark(X1),mark(X2)) 10: mark(add(X1,X2)) -> a__add(mark(X1),mark(X2)) 11: mark(s(X)) -> s(mark(X)) 12: mark(|0|()) -> |0|() 13: mark(cons(X1,X2)) -> cons(mark(X1),X2) 14: a__fib(X) -> fib(X) 15: a__sel(X1,X2) -> sel(X1,X2) 16: a__fib1(X1,X2) -> fib1(X1,X2) 17: a__add(X1,X2) -> add(X1,X2) Number of strict rules: 17 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__fib1(X,Y) -> #mark(X) #2: #a__sel(s(N),cons(X,XS)) -> #a__sel(mark(N),mark(XS)) #3: #a__sel(s(N),cons(X,XS)) -> #mark(N) #4: #a__sel(s(N),cons(X,XS)) -> #mark(XS) #5: #mark(cons(X1,X2)) -> #mark(X1) #6: #mark(fib1(X1,X2)) -> #a__fib1(mark(X1),mark(X2)) #7: #mark(fib1(X1,X2)) -> #mark(X1) #8: #mark(fib1(X1,X2)) -> #mark(X2) #9: #mark(s(X)) -> #mark(X) #10: #mark(fib(X)) -> #a__fib(mark(X)) #11: #mark(fib(X)) -> #mark(X) #12: #mark(add(X1,X2)) -> #a__add(mark(X1),mark(X2)) #13: #mark(add(X1,X2)) -> #mark(X1) #14: #mark(add(X1,X2)) -> #mark(X2) #15: #a__sel(|0|(),cons(X,XS)) -> #mark(X) #16: #a__add(|0|(),X) -> #mark(X) #17: #a__fib(N) -> #a__sel(mark(N),a__fib1(s(|0|()),s(|0|()))) #18: #a__fib(N) -> #mark(N) #19: #a__fib(N) -> #a__fib1(s(|0|()),s(|0|())) #20: #mark(sel(X1,X2)) -> #a__sel(mark(X1),mark(X2)) #21: #mark(sel(X1,X2)) -> #mark(X1) #22: #mark(sel(X1,X2)) -> #mark(X2) #23: #a__add(s(X),Y) -> #a__add(mark(X),mark(Y)) #24: #a__add(s(X),Y) -> #mark(X) #25: #a__add(s(X),Y) -> #mark(Y) Number of SCCs: 1, DPs: 25, edges: 246 SCC { #1..25 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. |0|() weight: (/ 1 8) s(x1) weight: x1 #a__add(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} a__add(x1,x2) weight: max{x2, x1} #a__fib1(x1,x2) weight: max{0, (/ 1 8) + x1} fib1(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} fib(x1) weight: (/ 7 8) + x1 #mark(x1) weight: (/ 1 8) + x1 sel(x1,x2) weight: max{(/ 1 2) + x2, (/ 1 4) + x1} #a__sel(x1,x2) weight: max{(/ 1 2) + x2, (/ 1 4) + x1} mark(x1) weight: x1 a__sel(x1,x2) weight: max{(/ 1 2) + x2, (/ 1 4) + x1} #a__fib(x1) weight: (/ 7 8) + x1 cons(x1,x2) weight: max{x2, (/ 1 8) + x1} a__fib(x1) weight: (/ 7 8) + x1 add(x1,x2) weight: max{x2, x1} a__fib1(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} Usable rules: { 1..17 } Removed DPs: #3..8 #10 #11 #15 #17..22 Number of SCCs: 2, DPs: 9, edges: 33 SCC { #2 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. |0|() weight: 0 status: [] precedence above: s(x1) weight: x1 status: [x1] precedence above: #a__sel cons #a__add(x1,x2) weight: 0 status: [] precedence above: a__add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s fib1 fib sel #a__sel mark a__sel cons a__fib add a__fib1 #a__fib1(x1,x2) weight: (/ 1 8) + x2 + x1 status: [x1,x2] precedence above: fib1(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} status: [x1,x2] precedence above: |0| #a__sel cons a__fib1 fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| sel #a__sel mark a__sel a__fib #mark(x1) weight: x1 status: [] precedence above: sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| #a__sel mark a__sel #a__sel(x1,x2) weight: x1 status: [x1] precedence above: mark(x1) weight: x1 status: x1 a__sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| sel #a__sel mark #a__fib(x1) weight: x1 status: [] precedence above: cons(x1,x2) weight: max{x2, (/ 1 8) + x1} status: [] precedence above: a__fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| fib sel #a__sel mark a__sel add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s a__add fib1 fib sel #a__sel mark a__sel cons a__fib a__fib1 a__fib1(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 8) + x1} status: [x1,x2] precedence above: |0| fib1 #a__sel cons Usable rules: { 1..17 } Removed DPs: #2 Number of SCCs: 1, DPs: 8, edges: 32 SCC { #9 #12..14 #16 #23..25 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. |0|() weight: 0 status: [] precedence above: s(x1) weight: x1 status: [x1] precedence above: #a__sel mark cons #a__add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s a__add fib1 #mark #a__sel mark cons add a__fib1 a__add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s #a__add fib1 #mark #a__sel mark cons add a__fib1 #a__fib1(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: fib1(x1,x2) weight: max{x2, x1} status: [x1] precedence above: |0| #a__sel cons a__fib1 fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| s sel #a__sel mark a__sel cons a__fib #mark(x1) weight: x1 status: x1 sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| #a__sel mark a__sel cons #a__sel(x1,x2) weight: x1 status: [x1] precedence above: mark(x1) weight: x1 status: x1 a__sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| sel #a__sel mark cons #a__fib(x1) weight: x1 status: [] precedence above: cons(x1,x2) weight: max{x2, x1} status: [] precedence above: a__fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| s fib sel #a__sel mark a__sel cons add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s #a__add a__add fib1 #mark #a__sel mark cons a__fib1 a__fib1(x1,x2) weight: max{x2, x1} status: [x1] precedence above: |0| fib1 #a__sel cons Usable rules: { 1..17 } Removed DPs: #9 #13 #14 #16 #24 #25 Number of SCCs: 1, DPs: 1, edges: 1 SCC { #23 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. |0|() weight: 0 status: [] precedence above: s(x1) weight: x1 status: [x1] precedence above: #a__sel mark cons #a__add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s a__add fib1 #mark #a__sel mark cons add a__fib1 a__add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s #a__add fib1 #mark #a__sel mark cons add a__fib1 #a__fib1(x1,x2) weight: (/ 1 4) + x2 + x1 status: [x1,x2] precedence above: fib1(x1,x2) weight: max{x2, x1} status: [x1] precedence above: |0| #a__sel cons a__fib1 fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| s sel #a__sel mark a__sel cons a__fib #mark(x1) weight: x1 status: x1 sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| #a__sel mark a__sel cons #a__sel(x1,x2) weight: x1 status: [x1] precedence above: mark(x1) weight: x1 status: x1 a__sel(x1,x2) weight: (/ 1 4) + x2 status: [] precedence above: |0| sel #a__sel mark cons #a__fib(x1) weight: x1 status: [] precedence above: cons(x1,x2) weight: max{x2, x1} status: [] precedence above: a__fib(x1) weight: (/ 1 2) + x1 status: [] precedence above: |0| s fib sel #a__sel mark a__sel cons add(x1,x2) weight: max{x2, x1} status: [x2,x1] precedence above: |0| s #a__add a__add fib1 #mark #a__sel mark cons a__fib1 a__fib1(x1,x2) weight: max{x2, x1} status: [x1] precedence above: |0| fib1 #a__sel cons Usable rules: { 1..17 } Removed DPs: #23 Number of SCCs: 0, DPs: 0, edges: 0 YES