MAYBE Problem: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Proof: DP Processor: DPs: cond1#(true(),x,y) -> gr#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> p#(x) cond2#(true(),x,y) -> add#(x,y) cond2#(true(),x,y) -> gr#(add(x,y),0()) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> eq#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond3#(true(),x,y) -> p#(x) cond3#(true(),x,y) -> add#(x,y) cond3#(true(),x,y) -> gr#(add(x,y),0()) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond3#(false(),x,y) -> p#(y) cond3#(false(),x,y) -> add#(x,y) cond3#(false(),x,y) -> gr#(add(x,y),0()) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) gr#(s(x),s(y)) -> gr#(x,y) add#(s(x),y) -> add#(x,y) eq#(s(x),s(y)) -> eq#(x,y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Usable Rule Processor: DPs: cond1#(true(),x,y) -> gr#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> p#(x) cond2#(true(),x,y) -> add#(x,y) cond2#(true(),x,y) -> gr#(add(x,y),0()) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> eq#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond3#(true(),x,y) -> p#(x) cond3#(true(),x,y) -> add#(x,y) cond3#(true(),x,y) -> gr#(add(x,y),0()) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond3#(false(),x,y) -> p#(y) cond3#(false(),x,y) -> add#(x,y) cond3#(false(),x,y) -> gr#(add(x,y),0()) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) gr#(s(x),s(y)) -> gr#(x,y) add#(s(x),y) -> add#(x,y) eq#(s(x),s(y)) -> eq#(x,y) TRS: f18(x,y) -> x f18(x,y) -> y gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) p(0()) -> 0() p(s(x)) -> x eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) TDG Processor: DPs: cond1#(true(),x,y) -> gr#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> p#(x) cond2#(true(),x,y) -> add#(x,y) cond2#(true(),x,y) -> gr#(add(x,y),0()) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> eq#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond3#(true(),x,y) -> p#(x) cond3#(true(),x,y) -> add#(x,y) cond3#(true(),x,y) -> gr#(add(x,y),0()) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond3#(false(),x,y) -> p#(y) cond3#(false(),x,y) -> add#(x,y) cond3#(false(),x,y) -> gr#(add(x,y),0()) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) gr#(s(x),s(y)) -> gr#(x,y) add#(s(x),y) -> add#(x,y) eq#(s(x),s(y)) -> eq#(x,y) TRS: f18(x,y) -> x f18(x,y) -> y gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) p(0()) -> 0() p(s(x)) -> x eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) graph: cond3#(false(),x,y) -> add#(x,y) -> add#(s(x),y) -> add#(x,y) cond3#(false(),x,y) -> gr#(add(x,y),0()) -> gr#(s(x),s(y)) -> gr#(x,y) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) -> cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) -> cond1#(true(),x,y) -> gr#(x,y) cond3#(true(),x,y) -> add#(x,y) -> add#(s(x),y) -> add#(x,y) cond3#(true(),x,y) -> gr#(add(x,y),0()) -> gr#(s(x),s(y)) -> gr#(x,y) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) -> cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) -> cond1#(true(),x,y) -> gr#(x,y) eq#(s(x),s(y)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) add#(s(x),y) -> add#(x,y) -> add#(s(x),y) -> add#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(false(),x,y) -> gr#(add(x,y),0()) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(false(),x,y) -> add#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(false(),x,y) -> p#(y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(true(),x,y) -> gr#(add(x,y),0()) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(true(),x,y) -> add#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) -> cond3#(true(),x,y) -> p#(x) cond2#(false(),x,y) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) cond2#(true(),x,y) -> add#(x,y) -> add#(s(x),y) -> add#(x,y) cond2#(true(),x,y) -> gr#(add(x,y),0()) -> gr#(s(x),s(y)) -> gr#(x,y) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) -> cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) -> cond1#(true(),x,y) -> gr#(x,y) gr#(s(x),s(y)) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(false(),x,y) -> eq#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(true(),x,y) -> gr#(add(x,y),0()) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(true(),x,y) -> add#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) -> cond2#(true(),x,y) -> p#(x) cond1#(true(),x,y) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y) Restore Modifier: DPs: cond1#(true(),x,y) -> gr#(x,y) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> p#(x) cond2#(true(),x,y) -> add#(x,y) cond2#(true(),x,y) -> gr#(add(x,y),0()) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> eq#(x,y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond3#(true(),x,y) -> p#(x) cond3#(true(),x,y) -> add#(x,y) cond3#(true(),x,y) -> gr#(add(x,y),0()) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond3#(false(),x,y) -> p#(y) cond3#(false(),x,y) -> add#(x,y) cond3#(false(),x,y) -> gr#(add(x,y),0()) cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) gr#(s(x),s(y)) -> gr#(x,y) add#(s(x),y) -> add#(x,y) eq#(s(x),s(y)) -> eq#(x,y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x SCC Processor: #sccs: 4 #rules: 8 #arcs: 31/361 DPs: cond3#(false(),x,y) -> cond1#(gr(add(x,y),0()),x,p(y)) cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) cond2#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) cond2#(false(),x,y) -> cond3#(eq(x,y),x,y) cond3#(true(),x,y) -> cond1#(gr(add(x,y),0()),p(x),y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Open DPs: eq#(s(x),s(y)) -> eq#(x,y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dimension: 1 interpretation: [eq#](x0, x1) = x1 + 1, [s](x0) = x0 + 1, [cond3](x0, x1, x2) = 0, [eq](x0, x1) = x1, [false] = 0, [p](x0) = x0, [0] = 0, [add](x0, x1) = x0 + x1 + 1, [cond2](x0, x1, x2) = 0, [gr](x0, x1) = 0, [cond1](x0, x1, x2) = 0, [true] = 0 orientation: eq#(s(x),s(y)) = y + 2 >= y + 1 = eq#(x,y) cond1(true(),x,y) = 0 >= 0 = cond2(gr(x,y),x,y) cond2(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) = 0 >= 0 = cond3(eq(x,y),x,y) cond3(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) = 0 >= 0 = false() gr(s(x),0()) = 0 >= 0 = true() gr(s(x),s(y)) = 0 >= 0 = gr(x,y) add(0(),x) = x + 1 >= x = x add(s(x),y) = x + y + 2 >= x + y + 2 = s(add(x,y)) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(x)) = x + 1 >= 0 = false() eq(s(x),0()) = 0 >= 0 = false() eq(s(x),s(y)) = y + 1 >= y = eq(x,y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1 >= x = x problem: DPs: TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Qed DPs: gr#(s(x),s(y)) -> gr#(x,y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dimension: 1 interpretation: [gr#](x0, x1) = x1 + 1, [s](x0) = x0 + 1, [cond3](x0, x1, x2) = 0, [eq](x0, x1) = x1, [false] = 0, [p](x0) = x0, [0] = 0, [add](x0, x1) = x0 + x1 + 1, [cond2](x0, x1, x2) = 0, [gr](x0, x1) = 0, [cond1](x0, x1, x2) = 0, [true] = 0 orientation: gr#(s(x),s(y)) = y + 2 >= y + 1 = gr#(x,y) cond1(true(),x,y) = 0 >= 0 = cond2(gr(x,y),x,y) cond2(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) = 0 >= 0 = cond3(eq(x,y),x,y) cond3(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) = 0 >= 0 = false() gr(s(x),0()) = 0 >= 0 = true() gr(s(x),s(y)) = 0 >= 0 = gr(x,y) add(0(),x) = x + 1 >= x = x add(s(x),y) = x + y + 2 >= x + y + 2 = s(add(x,y)) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(x)) = x + 1 >= 0 = false() eq(s(x),0()) = 0 >= 0 = false() eq(s(x),s(y)) = y + 1 >= y = eq(x,y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1 >= x = x problem: DPs: TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Qed DPs: add#(s(x),y) -> add#(x,y) TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dimension: 1 interpretation: [add#](x0, x1) = x0 + 1, [s](x0) = x0 + 1, [cond3](x0, x1, x2) = 0, [eq](x0, x1) = x1, [false] = 0, [p](x0) = x0, [0] = 0, [add](x0, x1) = x0 + x1 + 1, [cond2](x0, x1, x2) = 0, [gr](x0, x1) = 0, [cond1](x0, x1, x2) = 0, [true] = 0 orientation: add#(s(x),y) = x + 2 >= x + 1 = add#(x,y) cond1(true(),x,y) = 0 >= 0 = cond2(gr(x,y),x,y) cond2(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) = 0 >= 0 = cond3(eq(x,y),x,y) cond3(true(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) = 0 >= 0 = cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) = 0 >= 0 = false() gr(s(x),0()) = 0 >= 0 = true() gr(s(x),s(y)) = 0 >= 0 = gr(x,y) add(0(),x) = x + 1 >= x = x add(s(x),y) = x + y + 2 >= x + y + 2 = s(add(x,y)) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(x)) = x + 1 >= 0 = false() eq(s(x),0()) = 0 >= 0 = false() eq(s(x),s(y)) = y + 1 >= y = eq(x,y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1 >= x = x problem: DPs: TRS: cond1(true(),x,y) -> cond2(gr(x,y),x,y) cond2(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond2(false(),x,y) -> cond3(eq(x,y),x,y) cond3(true(),x,y) -> cond1(gr(add(x,y),0()),p(x),y) cond3(false(),x,y) -> cond1(gr(add(x,y),0()),x,p(y)) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) add(0(),x) -> x add(s(x),y) -> s(add(x,y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) p(0()) -> 0() p(s(x)) -> x Qed