YES Problem: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X Proof: DP Processor: DPs: terms#(N) -> sqr#(N) sqr#(s(X)) -> dbl#(X) sqr#(s(X)) -> sqr#(X) sqr#(s(X)) -> add#(sqr(X),dbl(X)) dbl#(s(X)) -> dbl#(X) add#(s(X),Y) -> add#(X,Y) half#(s(s(X))) -> half#(X) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X TDG Processor: DPs: terms#(N) -> sqr#(N) sqr#(s(X)) -> dbl#(X) sqr#(s(X)) -> sqr#(X) sqr#(s(X)) -> add#(sqr(X),dbl(X)) dbl#(s(X)) -> dbl#(X) add#(s(X),Y) -> add#(X,Y) half#(s(s(X))) -> half#(X) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X graph: half#(s(s(X))) -> half#(X) -> half#(s(s(X))) -> half#(X) add#(s(X),Y) -> add#(X,Y) -> add#(s(X),Y) -> add#(X,Y) dbl#(s(X)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X) sqr#(s(X)) -> add#(sqr(X),dbl(X)) -> add#(s(X),Y) -> add#(X,Y) sqr#(s(X)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X) sqr#(s(X)) -> sqr#(X) -> sqr#(s(X)) -> add#(sqr(X),dbl(X)) sqr#(s(X)) -> sqr#(X) -> sqr#(s(X)) -> sqr#(X) sqr#(s(X)) -> sqr#(X) -> sqr#(s(X)) -> dbl#(X) terms#(N) -> sqr#(N) -> sqr#(s(X)) -> add#(sqr(X),dbl(X)) terms#(N) -> sqr#(N) -> sqr#(s(X)) -> sqr#(X) terms#(N) -> sqr#(N) -> sqr#(s(X)) -> dbl#(X) SCC Processor: #sccs: 4 #rules: 4 #arcs: 11/49 DPs: sqr#(s(X)) -> sqr#(X) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X LPO Processor: argument filtering: pi(terms) = [0] pi(sqr) = [0] pi(recip) = 0 pi(cons) = 0 pi(0) = [] pi(s) = [0] pi(dbl) = [0] pi(add) = [0,1] pi(first) = [0,1] pi(nil) = [] pi(half) = 0 pi(sqr#) = 0 precedence: 0 > terms > sqr > dbl > add > sqr# ~ half ~ nil ~ first ~ s ~ cons ~ recip problem: DPs: TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X Qed DPs: dbl#(s(X)) -> dbl#(X) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X LPO Processor: argument filtering: pi(terms) = [0] pi(sqr) = [0] pi(recip) = 0 pi(cons) = 0 pi(0) = [] pi(s) = [0] pi(dbl) = [0] pi(add) = [0,1] pi(first) = [0,1] pi(nil) = [] pi(half) = 0 pi(dbl#) = 0 precedence: 0 > terms > sqr > dbl > add > dbl# ~ half ~ nil ~ first ~ s ~ cons ~ recip problem: DPs: TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X Qed DPs: add#(s(X),Y) -> add#(X,Y) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X LPO Processor: argument filtering: pi(terms) = [0] pi(sqr) = [0] pi(recip) = 0 pi(cons) = 0 pi(0) = [] pi(s) = [0] pi(dbl) = [0] pi(add) = [0,1] pi(first) = [1] pi(nil) = [] pi(half) = 0 pi(add#) = 0 precedence: terms > sqr > first ~ add ~ dbl > add# ~ half ~ nil ~ s ~ 0 ~ cons ~ recip problem: DPs: TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X Qed DPs: half#(s(s(X))) -> half#(X) TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X LPO Processor: argument filtering: pi(terms) = [0] pi(sqr) = [0] pi(recip) = 0 pi(cons) = 0 pi(0) = [] pi(s) = [0] pi(dbl) = [0] pi(add) = [0,1] pi(first) = [1] pi(nil) = [] pi(half) = [0] pi(half#) = [0] precedence: terms > sqr > half ~ first ~ add ~ dbl > half# ~ nil ~ s ~ 0 ~ cons ~ recip problem: DPs: TRS: terms(N) -> cons(recip(sqr(N))) sqr(0()) -> 0() sqr(s(X)) -> s(add(sqr(X),dbl(X))) dbl(0()) -> 0() dbl(s(X)) -> s(s(dbl(X))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) first(0(),X) -> nil() first(s(X),cons(Y)) -> cons(Y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(X))) -> s(half(X)) half(dbl(X)) -> X Qed