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)) LPO Processor: argument filtering: pi(not) = [0] pi(true) = [] pi(xor) = [0,1] pi(or) = [0,1] pi(and) = [0,1] pi(implies) = [0,1] pi(false) = [] pi(not#) = [0] pi(xor#) = 0 pi(or#) = [0,1] pi(and#) = [0,1] pi(implies#) = [0,1] precedence: or# ~ implies > or > implies# > and# > and ~ not > xor > xor# ~ not# ~ false ~ true problem: DPs: 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)) Qed