YES Problem: not(x) -> xor(x,true()) or(x,y) -> xor(and(x,y),xor(x,y)) implies(x,y) -> xor(and(x,y),xor(x,true())) and(x,true()) -> x and(x,false()) -> false() and(x,x) -> x xor(x,false()) -> x xor(x,x) -> false() and(xor(x,y),z) -> xor(and(x,z),and(y,z)) Proof: DP Processor: DPs: not#(x) -> xor#(x,true()) or#(x,y) -> xor#(x,y) or#(x,y) -> and#(x,y) or#(x,y) -> xor#(and(x,y),xor(x,y)) implies#(x,y) -> xor#(x,true()) implies#(x,y) -> and#(x,y) implies#(x,y) -> xor#(and(x,y),xor(x,true())) and#(xor(x,y),z) -> and#(y,z) and#(xor(x,y),z) -> and#(x,z) and#(xor(x,y),z) -> xor#(and(x,z),and(y,z)) TRS: not(x) -> xor(x,true()) or(x,y) -> xor(and(x,y),xor(x,y)) implies(x,y) -> xor(and(x,y),xor(x,true())) and(x,true()) -> x and(x,false()) -> false() and(x,x) -> x xor(x,false()) -> x xor(x,x) -> false() and(xor(x,y),z) -> xor(and(x,z),and(y,z)) Usable Rule Processor: DPs: not#(x) -> xor#(x,true()) or#(x,y) -> xor#(x,y) or#(x,y) -> and#(x,y) or#(x,y) -> xor#(and(x,y),xor(x,y)) implies#(x,y) -> xor#(x,true()) implies#(x,y) -> and#(x,y) implies#(x,y) -> xor#(and(x,y),xor(x,true())) and#(xor(x,y),z) -> and#(y,z) and#(xor(x,y),z) -> and#(x,z) and#(xor(x,y),z) -> xor#(and(x,z),and(y,z)) TRS: xor(x,false()) -> x xor(x,x) -> false() and(x,true()) -> x and(x,false()) -> false() and(x,x) -> x and(xor(x,y),z) -> xor(and(x,z),and(y,z)) Matrix Interpretation Processor: dim=1 usable rules: interpretation: [implies#](x0, x1) = 2x0 + x1 + 7, [and#](x0, x1) = 2x0 + x1 + 6, [or#](x0, x1) = 3x0 + 4x1 + 7, [xor#](x0, x1) = 0, [not#](x0) = 4x0 + 4, [false] = 2, [and](x0, x1) = x0 + 4x1, [xor](x0, x1) = x0 + 3x1 + 4, [true] = 0 orientation: not#(x) = 4x + 4 >= 0 = xor#(x,true()) or#(x,y) = 3x + 4y + 7 >= 0 = xor#(x,y) or#(x,y) = 3x + 4y + 7 >= 2x + y + 6 = and#(x,y) or#(x,y) = 3x + 4y + 7 >= 0 = xor#(and(x,y),xor(x,y)) implies#(x,y) = 2x + y + 7 >= 0 = xor#(x,true()) implies#(x,y) = 2x + y + 7 >= 2x + y + 6 = and#(x,y) implies#(x,y) = 2x + y + 7 >= 0 = xor#(and(x,y),xor(x,true())) and#(xor(x,y),z) = 2x + 6y + z + 14 >= 2y + z + 6 = and#(y,z) and#(xor(x,y),z) = 2x + 6y + z + 14 >= 2x + z + 6 = and#(x,z) and#(xor(x,y),z) = 2x + 6y + z + 14 >= 0 = xor#(and(x,z),and(y,z)) xor(x,false()) = x + 10 >= x = x xor(x,x) = 4x + 4 >= 2 = false() and(x,true()) = x >= x = x and(x,false()) = x + 8 >= 2 = false() and(x,x) = 5x >= x = x and(xor(x,y),z) = x + 3y + 4z + 4 >= x + 3y + 16z + 4 = xor(and(x,z),and(y,z)) problem: DPs: TRS: xor(x,false()) -> x xor(x,x) -> false() and(x,true()) -> x and(x,false()) -> false() and(x,x) -> x and(xor(x,y),z) -> xor(and(x,z),and(y,z)) Qed