MAYBE Problem: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) Proof: DP Processor: DPs: sub#(s(x),s(y)) -> sub#(x,y) zero#(nil()) -> zero2#(0(),nil()) zero#(cons(x,xs)) -> sub#(x,x) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(0(),cons(x,xs)) -> zero#(xs) zero2#(0(),cons(x,xs)) -> sub#(x,x) zero2#(s(y),nil()) -> zero#(nil()) zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) TDG Processor: DPs: sub#(s(x),s(y)) -> sub#(x,y) zero#(nil()) -> zero2#(0(),nil()) zero#(cons(x,xs)) -> sub#(x,x) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(0(),cons(x,xs)) -> zero#(xs) zero2#(0(),cons(x,xs)) -> sub#(x,x) zero2#(s(y),nil()) -> zero#(nil()) zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) graph: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) -> zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) -> zero#(cons(x,xs)) -> sub#(x,x) zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) -> zero#(nil()) -> zero2#(0(),nil()) zero2#(s(y),nil()) -> zero#(nil()) -> zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),nil()) -> zero#(nil()) -> zero#(cons(x,xs)) -> sub#(x,x) zero2#(s(y),nil()) -> zero#(nil()) -> zero#(nil()) -> zero2#(0(),nil()) zero2#(0(),cons(x,xs)) -> zero#(xs) -> zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(0(),cons(x,xs)) -> zero#(xs) -> zero#(cons(x,xs)) -> sub#(x,x) zero2#(0(),cons(x,xs)) -> zero#(xs) -> zero#(nil()) -> zero2#(0(),nil()) zero2#(0(),cons(x,xs)) -> sub#(x,x) -> sub#(s(x),s(y)) -> sub#(x,y) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) -> zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) -> zero2#(s(y),nil()) -> zero#(nil()) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) -> zero2#(0(),cons(x,xs)) -> sub#(x,x) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) -> zero2#(0(),cons(x,xs)) -> zero#(xs) zero#(cons(x,xs)) -> sub#(x,x) -> sub#(s(x),s(y)) -> sub#(x,y) zero#(nil()) -> zero2#(0(),nil()) -> zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(nil()) -> zero2#(0(),nil()) -> zero2#(s(y),nil()) -> zero#(nil()) zero#(nil()) -> zero2#(0(),nil()) -> zero2#(0(),cons(x,xs)) -> sub#(x,x) zero#(nil()) -> zero2#(0(),nil()) -> zero2#(0(),cons(x,xs)) -> zero#(xs) sub#(s(x),s(y)) -> sub#(x,y) -> sub#(s(x),s(y)) -> sub#(x,y) SCC Processor: #sccs: 2 #rules: 6 #arcs: 20/64 DPs: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(nil()) -> zero2#(0(),nil()) zero2#(0(),cons(x,xs)) -> zero#(xs) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),nil()) -> zero#(nil()) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) Subterm Criterion Processor: simple projection: pi(zero#) = 0 pi(zero2#) = 1 problem: DPs: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(nil()) -> zero2#(0(),nil()) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),nil()) -> zero#(nil()) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) EDG Processor: DPs: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(nil()) -> zero2#(0(),nil()) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),nil()) -> zero#(nil()) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) graph: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) -> zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) zero2#(s(y),nil()) -> zero#(nil()) -> zero#(nil()) -> zero2#(0(),nil()) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) -> zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) SCC Processor: #sccs: 1 #rules: 2 #arcs: 3/16 DPs: zero2#(s(y),cons(x,xs)) -> zero#(cons(x,xs)) zero#(cons(x,xs)) -> zero2#(sub(x,x),cons(x,xs)) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) Open DPs: sub#(s(x),s(y)) -> sub#(x,y) TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) Subterm Criterion Processor: simple projection: pi(sub#) = 1 problem: DPs: TRS: sub(0(),0()) -> 0() sub(s(x),0()) -> s(x) sub(0(),s(x)) -> 0() sub(s(x),s(y)) -> sub(x,y) zero(nil()) -> zero2(0(),nil()) zero(cons(x,xs)) -> zero2(sub(x,x),cons(x,xs)) zero2(0(),nil()) -> nil() zero2(0(),cons(x,xs)) -> cons(sub(x,x),zero(xs)) zero2(s(y),nil()) -> zero(nil()) zero2(s(y),cons(x,xs)) -> zero(cons(x,xs)) Qed