MAYBE Problem: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Proof: DP Processor: DPs: double#(s(x)) -> double#(x) del#(x,cons(y,xs)) -> eq#(x,y) del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) if#(false(),x,y,xs) -> del#(x,xs) eq#(s(x),s(y)) -> eq#(x,y) doublelist#(cons(x,xs)) -> first#(cons(x,xs)) doublelist#(cons(x,xs)) -> del#(first(cons(x,xs)),cons(x,xs)) doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) doublelist#(cons(x,xs)) -> double#(x) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) TDG Processor: DPs: double#(s(x)) -> double#(x) del#(x,cons(y,xs)) -> eq#(x,y) del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) if#(false(),x,y,xs) -> del#(x,xs) eq#(s(x),s(y)) -> eq#(x,y) doublelist#(cons(x,xs)) -> first#(cons(x,xs)) doublelist#(cons(x,xs)) -> del#(first(cons(x,xs)),cons(x,xs)) doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) doublelist#(cons(x,xs)) -> double#(x) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) graph: doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) -> doublelist#(cons(x,xs)) -> double#(x) doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) -> doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) -> doublelist#(cons(x,xs)) -> del#(first(cons(x,xs)),cons(x,xs)) doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) -> doublelist#(cons(x,xs)) -> first#(cons(x,xs)) doublelist#(cons(x,xs)) -> del#(first(cons(x,xs)),cons(x,xs)) -> del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) doublelist#(cons(x,xs)) -> del#(first(cons(x,xs)),cons(x,xs)) -> del#(x,cons(y,xs)) -> eq#(x,y) doublelist#(cons(x,xs)) -> double#(x) -> double#(s(x)) -> double#(x) if#(false(),x,y,xs) -> del#(x,xs) -> del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) if#(false(),x,y,xs) -> del#(x,xs) -> del#(x,cons(y,xs)) -> eq#(x,y) eq#(s(x),s(y)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) -> if#(false(),x,y,xs) -> del#(x,xs) del#(x,cons(y,xs)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) double#(s(x)) -> double#(x) -> double#(s(x)) -> double#(x) SCC Processor: #sccs: 4 #rules: 5 #arcs: 13/81 DPs: doublelist#(cons(x,xs)) -> doublelist#(del(first(cons(x,xs)),cons(x,xs))) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Open DPs: double#(s(x)) -> double#(x) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Subterm Criterion Processor: simple projection: pi(double#) = 0 problem: DPs: TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Qed DPs: del#(x,cons(y,xs)) -> if#(eq(x,y),x,y,xs) if#(false(),x,y,xs) -> del#(x,xs) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Subterm Criterion Processor: simple projection: pi(del#) = 1 pi(if#) = 3 problem: DPs: if#(false(),x,y,xs) -> del#(x,xs) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1 DPs: eq#(s(x),s(y)) -> eq#(x,y) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Subterm Criterion Processor: simple projection: pi(eq#) = 1 problem: DPs: TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) del(x,nil()) -> nil() del(x,cons(y,xs)) -> if(eq(x,y),x,y,xs) if(true(),x,y,xs) -> xs if(false(),x,y,xs) -> cons(y,del(x,xs)) eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) first(nil()) -> 0() first(cons(x,xs)) -> x doublelist(nil()) -> nil() doublelist(cons(x,xs)) -> cons(double(x),doublelist(del(first(cons(x,xs)),cons(x,xs)))) Qed