MAYBE Problem: and(true(),X) -> X and(false(),Y) -> false() if(true(),X,Y) -> X if(false(),X,Y) -> Y add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z)) from(X) -> cons(X,from(s(X))) Proof: DP Processor: DPs: add#(s(X),Y) -> add#(X,Y) first#(s(X),cons(Y,Z)) -> first#(X,Z) from#(X) -> from#(s(X)) TRS: and(true(),X) -> X and(false(),Y) -> false() if(true(),X,Y) -> X if(false(),X,Y) -> Y add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z)) from(X) -> cons(X,from(s(X))) Usable Rule Processor: DPs: add#(s(X),Y) -> add#(X,Y) first#(s(X),cons(Y,Z)) -> first#(X,Z) from#(X) -> from#(s(X)) TRS: CDG Processor: DPs: add#(s(X),Y) -> add#(X,Y) first#(s(X),cons(Y,Z)) -> first#(X,Z) from#(X) -> from#(s(X)) TRS: graph: from#(X) -> from#(s(X)) -> from#(X) -> from#(s(X)) Restore Modifier: DPs: add#(s(X),Y) -> add#(X,Y) first#(s(X),cons(Y,Z)) -> first#(X,Z) from#(X) -> from#(s(X)) TRS: and(true(),X) -> X and(false(),Y) -> false() if(true(),X,Y) -> X if(false(),X,Y) -> Y add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z)) from(X) -> cons(X,from(s(X))) SCC Processor: #sccs: 1 #rules: 1 #arcs: 1/9 DPs: from#(X) -> from#(s(X)) TRS: and(true(),X) -> X and(false(),Y) -> false() if(true(),X,Y) -> X if(false(),X,Y) -> Y add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z)) from(X) -> cons(X,from(s(X))) Open