MAYBE Problem: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) Proof: DP Processor: DPs: fib#(N) -> fib1#(s(0()),s(0())) fib#(N) -> sel#(N,fib1(s(0()),s(0()))) fib1#(X,Y) -> add#(X,Y) fib1#(X,Y) -> fib1#(Y,add(X,Y)) add#(s(X),Y) -> add#(X,Y) sel#(s(N),cons(X,XS)) -> sel#(N,XS) TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) Usable Rule Processor: DPs: fib#(N) -> fib1#(s(0()),s(0())) fib#(N) -> sel#(N,fib1(s(0()),s(0()))) fib1#(X,Y) -> add#(X,Y) fib1#(X,Y) -> fib1#(Y,add(X,Y)) add#(s(X),Y) -> add#(X,Y) sel#(s(N),cons(X,XS)) -> sel#(N,XS) TRS: f11(x,y) -> x f11(x,y) -> y fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) TDG Processor: DPs: fib#(N) -> fib1#(s(0()),s(0())) fib#(N) -> sel#(N,fib1(s(0()),s(0()))) fib1#(X,Y) -> add#(X,Y) fib1#(X,Y) -> fib1#(Y,add(X,Y)) add#(s(X),Y) -> add#(X,Y) sel#(s(N),cons(X,XS)) -> sel#(N,XS) TRS: f11(x,y) -> x f11(x,y) -> y fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) graph: add#(s(X),Y) -> add#(X,Y) -> add#(s(X),Y) -> add#(X,Y) sel#(s(N),cons(X,XS)) -> sel#(N,XS) -> sel#(s(N),cons(X,XS)) -> sel#(N,XS) fib1#(X,Y) -> add#(X,Y) -> add#(s(X),Y) -> add#(X,Y) fib1#(X,Y) -> fib1#(Y,add(X,Y)) -> fib1#(X,Y) -> fib1#(Y,add(X,Y)) fib1#(X,Y) -> fib1#(Y,add(X,Y)) -> fib1#(X,Y) -> add#(X,Y) fib#(N) -> sel#(N,fib1(s(0()),s(0()))) -> sel#(s(N),cons(X,XS)) -> sel#(N,XS) fib#(N) -> fib1#(s(0()),s(0())) -> fib1#(X,Y) -> fib1#(Y,add(X,Y)) fib#(N) -> fib1#(s(0()),s(0())) -> fib1#(X,Y) -> add#(X,Y) Restore Modifier: DPs: fib#(N) -> fib1#(s(0()),s(0())) fib#(N) -> sel#(N,fib1(s(0()),s(0()))) fib1#(X,Y) -> add#(X,Y) fib1#(X,Y) -> fib1#(Y,add(X,Y)) add#(s(X),Y) -> add#(X,Y) sel#(s(N),cons(X,XS)) -> sel#(N,XS) TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) SCC Processor: #sccs: 3 #rules: 3 #arcs: 8/36 DPs: fib1#(X,Y) -> fib1#(Y,add(X,Y)) TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) Open DPs: sel#(s(N),cons(X,XS)) -> sel#(N,XS) TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) Open DPs: add#(s(X),Y) -> add#(X,Y) TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,fib1(Y,add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) Open