MAYBE Problem: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Proof: DP Processor: DPs: p#(p(s(x))) -> p#(x) le#(p(s(x)),x) -> le#(x,x) le#(s(x),s(y)) -> le#(x,y) minus#(x,y) -> le#(x,y) minus#(x,y) -> if#(le(x,y),x,y) if#(false(),x,y) -> p#(x) if#(false(),x,y) -> minus#(p(x),y) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) TDG Processor: DPs: p#(p(s(x))) -> p#(x) le#(p(s(x)),x) -> le#(x,x) le#(s(x),s(y)) -> le#(x,y) minus#(x,y) -> le#(x,y) minus#(x,y) -> if#(le(x,y),x,y) if#(false(),x,y) -> p#(x) if#(false(),x,y) -> minus#(p(x),y) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) graph: if#(false(),x,y) -> minus#(p(x),y) -> minus#(x,y) -> if#(le(x,y),x,y) if#(false(),x,y) -> minus#(p(x),y) -> minus#(x,y) -> le#(x,y) if#(false(),x,y) -> p#(x) -> p#(p(s(x))) -> p#(x) minus#(x,y) -> if#(le(x,y),x,y) -> if#(false(),x,y) -> minus#(p(x),y) minus#(x,y) -> if#(le(x,y),x,y) -> if#(false(),x,y) -> p#(x) minus#(x,y) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) minus#(x,y) -> le#(x,y) -> le#(p(s(x)),x) -> le#(x,x) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) le#(s(x),s(y)) -> le#(x,y) -> le#(p(s(x)),x) -> le#(x,x) le#(p(s(x)),x) -> le#(x,x) -> le#(s(x),s(y)) -> le#(x,y) le#(p(s(x)),x) -> le#(x,x) -> le#(p(s(x)),x) -> le#(x,x) p#(p(s(x))) -> p#(x) -> p#(p(s(x))) -> p#(x) SCC Processor: #sccs: 3 #rules: 5 #arcs: 12/49 DPs: if#(false(),x,y) -> minus#(p(x),y) minus#(x,y) -> if#(le(x,y),x,y) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Open DPs: p#(p(s(x))) -> p#(x) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Subterm Criterion Processor: simple projection: pi(p#) = 0 problem: DPs: TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Qed DPs: le#(p(s(x)),x) -> le#(x,x) le#(s(x),s(y)) -> le#(x,y) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Subterm Criterion Processor: simple projection: pi(le#) = 1 problem: DPs: le#(p(s(x)),x) -> le#(x,x) TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Subterm Criterion Processor: simple projection: pi(le#) = 0 problem: DPs: TRS: p(0()) -> s(s(0())) p(s(x)) -> x p(p(s(x))) -> p(x) le(p(s(x)),x) -> le(x,x) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true(),x,y) -> 0() if(false(),x,y) -> s(minus(p(x),y)) Qed