YES Problem: ba0(0()) -> 0() ba1(0()) -> 1() S(0()) -> 1() S(1()) -> ba0(1()) S(ba0(x)) -> ba1(x) S(ba1(x)) -> ba0(S(x)) plus(x,0()) -> x plus(0(),x) -> x plus(x,1()) -> S(x) plus(1(),x) -> S(x) plus(ba0(x),ba0(y)) -> ba0(plus(x,y)) plus(ba0(x),ba1(y)) -> S(ba0(plus(x,y))) plus(ba1(x),ba0(y)) -> ba1(plus(x,y)) plus(ba1(x),ba1(y)) -> S(ba1(plus(x,y))) mult(x,0()) -> 0() mult(x,1()) -> x mult(x,ba0(y)) -> plus(ba0(mult(x,y)),mult(x,0())) mult(x,ba1(y)) -> plus(ba0(mult(x,y)),mult(x,1())) Proof: Church Rosser Transformation Processor (kb): ba0(0()) -> 0() ba1(0()) -> 1() S(0()) -> 1() S(1()) -> ba0(1()) S(ba0(x)) -> ba1(x) S(ba1(x)) -> ba0(S(x)) plus(x,0()) -> x plus(0(),x) -> x plus(x,1()) -> S(x) plus(1(),x) -> S(x) plus(ba0(x),ba0(y)) -> ba0(plus(x,y)) plus(ba0(x),ba1(y)) -> S(ba0(plus(x,y))) plus(ba1(x),ba0(y)) -> ba1(plus(x,y)) plus(ba1(x),ba1(y)) -> S(ba1(plus(x,y))) mult(x,0()) -> 0() mult(x,1()) -> x mult(x,ba0(y)) -> plus(ba0(mult(x,y)),mult(x,0())) mult(x,ba1(y)) -> plus(ba0(mult(x,y)),mult(x,1())) critical peaks: joinable LPO Processor: precedence: mult > plus > S > ba0 > ba1 > 1 ~ 0 problem: Qed