/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR v_NonEmpty:S m:S n:S) (RULES BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ) Problem 1: Dependency Pairs Processor: -> Pairs: EVEN#(NUMERAL(n:S)) -> EVEN#(n:S) ODD#(NUMERAL(n:S)) -> ODD#(n:S) PRE#(BIT0(n:S)) -> PRE#(n:S) PRE#(BIT0(n:S)) -> EQ(n:S,0) PRE#(NUMERAL(n:S)) -> NUMERAL#(PRE(n:S)) PRE#(NUMERAL(n:S)) -> PRE#(n:S) PRE#(BIT1(n:S)) -> BIT0#(n:S) SUC#(NUMERAL(n:S)) -> NUMERAL#(SUC(n:S)) SUC#(NUMERAL(n:S)) -> SUC#(n:S) SUC#(BIT1(n:S)) -> BIT0#(SUC(n:S)) SUC#(BIT1(n:S)) -> SUC#(n:S) EQ(BIT0(m:S),BIT0(n:S)) -> EQ(m:S,n:S) EQ(BIT0(n:S),0) -> EQ(n:S,0) EQ(NUMERAL(m:S),NUMERAL(n:S)) -> EQ(m:S,n:S) EQ(0,BIT0(n:S)) -> EQ(0,n:S) EQ(BIT1(m:S),BIT1(n:S)) -> EQ(m:S,n:S) EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT0(n:S)) -> MULT(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> MULT(BIT0(m:S),exp(BIT0(m:S),n:S)) EXP(BIT0(m:S),BIT1(n:S)) -> MULT(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(exp(m:S,n:S)) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> EXP(m:S,n:S) EXP(0,BIT0(n:S)) -> EXP(0,n:S) EXP(0,BIT0(n:S)) -> MULT(exp(0,n:S),exp(0,n:S)) EXP(BIT1(m:S),BIT0(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT0(n:S)) -> MULT(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) EXP(BIT1(m:S),BIT1(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT1(n:S)) -> MULT(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) EXP(BIT1(m:S),BIT1(n:S)) -> MULT(BIT1(m:S),exp(BIT1(m:S),n:S)) GE(BIT0(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GE(NUMERAL(n:S),NUMERAL(m:S)) -> GE(n:S,m:S) GE(0,BIT0(n:S)) -> GE(0,n:S) GE(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT1(m:S)) -> GE(n:S,m:S) GT(BIT0(n:S),BIT0(m:S)) -> GT(n:S,m:S) GT(BIT0(n:S),0) -> GT(n:S,0) GT(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GT(NUMERAL(n:S),NUMERAL(m:S)) -> GT(n:S,m:S) GT(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GT(BIT1(n:S),BIT1(m:S)) -> GT(n:S,m:S) LE(BIT0(m:S),BIT0(n:S)) -> LE(m:S,n:S) LE(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LE(BIT0(n:S),0) -> LE(n:S,0) LE(NUMERAL(m:S),NUMERAL(n:S)) -> LE(m:S,n:S) LE(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LE(BIT1(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(BIT0(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(NUMERAL(m:S),NUMERAL(n:S)) -> LT(m:S,n:S) LT(0,BIT0(n:S)) -> LT(0,n:S) LT(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT1(n:S)) -> LT(m:S,n:S) MINUS(BIT0(m:S),BIT0(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT0(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT0(m:S),BIT1(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT0(m:S),BIT1(n:S)) -> PRE#(BIT0(minus(m:S,n:S))) MINUS(BIT0(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(minus(m:S,n:S)) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT0(n:S)) -> LE(n:S,m:S) MINUS(BIT1(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT1(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT1(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MULT(BIT0(m:S),BIT0(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT0(m:S),BIT0(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT0(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT0(m:S),BIT1(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT0(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> PLUS(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(mult(m:S,n:S)) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT1(m:S),BIT0(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT1(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> PLUS(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(n:S) MULT(BIT1(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT1(n:S)) -> PLUS(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) MULT(BIT1(m:S),BIT1(n:S)) -> PLUS(BIT1(m:S),BIT0(n:S)) PLUS(BIT0(m:S),BIT0(n:S)) -> BIT0#(plus(m:S,n:S)) PLUS(BIT0(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT0(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(plus(m:S,n:S)) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT1(n:S)) -> BIT0#(SUC(plus(m:S,n:S))) PLUS(BIT1(m:S),BIT1(n:S)) -> SUC#(plus(m:S,n:S)) PLUS(BIT1(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) Problem 1: SCC Processor: -> Pairs: EVEN#(NUMERAL(n:S)) -> EVEN#(n:S) ODD#(NUMERAL(n:S)) -> ODD#(n:S) PRE#(BIT0(n:S)) -> PRE#(n:S) PRE#(BIT0(n:S)) -> EQ(n:S,0) PRE#(NUMERAL(n:S)) -> NUMERAL#(PRE(n:S)) PRE#(NUMERAL(n:S)) -> PRE#(n:S) PRE#(BIT1(n:S)) -> BIT0#(n:S) SUC#(NUMERAL(n:S)) -> NUMERAL#(SUC(n:S)) SUC#(NUMERAL(n:S)) -> SUC#(n:S) SUC#(BIT1(n:S)) -> BIT0#(SUC(n:S)) SUC#(BIT1(n:S)) -> SUC#(n:S) EQ(BIT0(m:S),BIT0(n:S)) -> EQ(m:S,n:S) EQ(BIT0(n:S),0) -> EQ(n:S,0) EQ(NUMERAL(m:S),NUMERAL(n:S)) -> EQ(m:S,n:S) EQ(0,BIT0(n:S)) -> EQ(0,n:S) EQ(BIT1(m:S),BIT1(n:S)) -> EQ(m:S,n:S) EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT0(n:S)) -> MULT(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> MULT(BIT0(m:S),exp(BIT0(m:S),n:S)) EXP(BIT0(m:S),BIT1(n:S)) -> MULT(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(exp(m:S,n:S)) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> EXP(m:S,n:S) EXP(0,BIT0(n:S)) -> EXP(0,n:S) EXP(0,BIT0(n:S)) -> MULT(exp(0,n:S),exp(0,n:S)) EXP(BIT1(m:S),BIT0(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT0(n:S)) -> MULT(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) EXP(BIT1(m:S),BIT1(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT1(n:S)) -> MULT(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) EXP(BIT1(m:S),BIT1(n:S)) -> MULT(BIT1(m:S),exp(BIT1(m:S),n:S)) GE(BIT0(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GE(NUMERAL(n:S),NUMERAL(m:S)) -> GE(n:S,m:S) GE(0,BIT0(n:S)) -> GE(0,n:S) GE(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT1(m:S)) -> GE(n:S,m:S) GT(BIT0(n:S),BIT0(m:S)) -> GT(n:S,m:S) GT(BIT0(n:S),0) -> GT(n:S,0) GT(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GT(NUMERAL(n:S),NUMERAL(m:S)) -> GT(n:S,m:S) GT(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GT(BIT1(n:S),BIT1(m:S)) -> GT(n:S,m:S) LE(BIT0(m:S),BIT0(n:S)) -> LE(m:S,n:S) LE(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LE(BIT0(n:S),0) -> LE(n:S,0) LE(NUMERAL(m:S),NUMERAL(n:S)) -> LE(m:S,n:S) LE(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LE(BIT1(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(BIT0(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(NUMERAL(m:S),NUMERAL(n:S)) -> LT(m:S,n:S) LT(0,BIT0(n:S)) -> LT(0,n:S) LT(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT1(n:S)) -> LT(m:S,n:S) MINUS(BIT0(m:S),BIT0(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT0(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT0(m:S),BIT1(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT0(m:S),BIT1(n:S)) -> PRE#(BIT0(minus(m:S,n:S))) MINUS(BIT0(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(minus(m:S,n:S)) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT0(n:S)) -> LE(n:S,m:S) MINUS(BIT1(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT1(n:S)) -> BIT0#(minus(m:S,n:S)) MINUS(BIT1(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MULT(BIT0(m:S),BIT0(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT0(m:S),BIT0(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT0(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT0(m:S),BIT1(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT0(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> PLUS(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(mult(m:S,n:S)) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT1(m:S),BIT0(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT1(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> PLUS(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(BIT0(mult(m:S,n:S))) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(mult(m:S,n:S)) MULT(BIT1(m:S),BIT1(n:S)) -> BIT0#(n:S) MULT(BIT1(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT1(n:S)) -> PLUS(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) MULT(BIT1(m:S),BIT1(n:S)) -> PLUS(BIT1(m:S),BIT0(n:S)) PLUS(BIT0(m:S),BIT0(n:S)) -> BIT0#(plus(m:S,n:S)) PLUS(BIT0(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT0(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL#(plus(m:S,n:S)) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT1(n:S)) -> BIT0#(SUC(plus(m:S,n:S))) PLUS(BIT1(m:S),BIT1(n:S)) -> SUC#(plus(m:S,n:S)) PLUS(BIT1(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: LT(0,BIT0(n:S)) -> LT(0,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: LE(BIT0(n:S),0) -> LE(n:S,0) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: LE(BIT0(m:S),BIT0(n:S)) -> LE(m:S,n:S) LE(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LE(NUMERAL(m:S),NUMERAL(n:S)) -> LE(m:S,n:S) LE(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LE(BIT1(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(BIT0(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(NUMERAL(m:S),NUMERAL(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT1(n:S)) -> LT(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: GT(BIT0(n:S),0) -> GT(n:S,0) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: GE(0,BIT0(n:S)) -> GE(0,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: GE(BIT0(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GE(NUMERAL(n:S),NUMERAL(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT1(m:S)) -> GE(n:S,m:S) GT(BIT0(n:S),BIT0(m:S)) -> GT(n:S,m:S) GT(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GT(NUMERAL(n:S),NUMERAL(m:S)) -> GT(n:S,m:S) GT(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GT(BIT1(n:S),BIT1(m:S)) -> GT(n:S,m:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EQ(0,BIT0(n:S)) -> EQ(0,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EQ(BIT0(n:S),0) -> EQ(n:S,0) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EQ(BIT0(m:S),BIT0(n:S)) -> EQ(m:S,n:S) EQ(NUMERAL(m:S),NUMERAL(n:S)) -> EQ(m:S,n:S) EQ(BIT1(m:S),BIT1(n:S)) -> EQ(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: SUC#(NUMERAL(n:S)) -> SUC#(n:S) SUC#(BIT1(n:S)) -> SUC#(n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: PLUS(BIT0(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT0(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: MULT(BIT0(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT1(n:S)) -> MULT(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EXP(0,BIT0(n:S)) -> EXP(0,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EXP(BIT1(m:S),BIT0(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT1(n:S)) -> EXP(BIT1(m:S),n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> EXP(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: PRE#(BIT0(n:S)) -> PRE#(n:S) PRE#(NUMERAL(n:S)) -> PRE#(n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: MINUS(BIT0(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT0(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: ODD#(NUMERAL(n:S)) -> ODD#(n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->->Cycle: ->->-> Pairs: EVEN#(NUMERAL(n:S)) -> EVEN#(n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) The problem is decomposed in 19 subproblems. Problem 1.1: Subterm Processor: -> Pairs: LT(0,BIT0(n:S)) -> LT(0,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(LT) = 2 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: LE(BIT0(n:S),0) -> LE(n:S,0) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(LE) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: LE(BIT0(m:S),BIT0(n:S)) -> LE(m:S,n:S) LE(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LE(NUMERAL(m:S),NUMERAL(n:S)) -> LE(m:S,n:S) LE(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LE(BIT1(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(BIT0(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT0(m:S),BIT1(n:S)) -> LE(m:S,n:S) LT(NUMERAL(m:S),NUMERAL(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT0(n:S)) -> LT(m:S,n:S) LT(BIT1(m:S),BIT1(n:S)) -> LT(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(LE) = 1 pi(LT) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: GT(BIT0(n:S),0) -> GT(n:S,0) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(GT) = 1 Problem 1.4: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Subterm Processor: -> Pairs: GE(0,BIT0(n:S)) -> GE(0,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(GE) = 2 Problem 1.5: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.6: Subterm Processor: -> Pairs: GE(BIT0(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GE(NUMERAL(n:S),NUMERAL(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GE(BIT1(n:S),BIT1(m:S)) -> GE(n:S,m:S) GT(BIT0(n:S),BIT0(m:S)) -> GT(n:S,m:S) GT(BIT0(n:S),BIT1(m:S)) -> GT(n:S,m:S) GT(NUMERAL(n:S),NUMERAL(m:S)) -> GT(n:S,m:S) GT(BIT1(n:S),BIT0(m:S)) -> GE(n:S,m:S) GT(BIT1(n:S),BIT1(m:S)) -> GT(n:S,m:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(GE) = 1 pi(GT) = 1 Problem 1.6: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.7: Subterm Processor: -> Pairs: EQ(0,BIT0(n:S)) -> EQ(0,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EQ) = 2 Problem 1.7: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.8: Subterm Processor: -> Pairs: EQ(BIT0(n:S),0) -> EQ(n:S,0) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EQ) = 1 Problem 1.8: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.9: Subterm Processor: -> Pairs: EQ(BIT0(m:S),BIT0(n:S)) -> EQ(m:S,n:S) EQ(NUMERAL(m:S),NUMERAL(n:S)) -> EQ(m:S,n:S) EQ(BIT1(m:S),BIT1(n:S)) -> EQ(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EQ) = 1 Problem 1.9: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.10: Subterm Processor: -> Pairs: SUC#(NUMERAL(n:S)) -> SUC#(n:S) SUC#(BIT1(n:S)) -> SUC#(n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(SUC#) = 1 Problem 1.10: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.11: Subterm Processor: -> Pairs: PLUS(BIT0(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT0(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) PLUS(NUMERAL(m:S),NUMERAL(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT0(n:S)) -> PLUS(m:S,n:S) PLUS(BIT1(m:S),BIT1(n:S)) -> PLUS(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(PLUS) = 1 Problem 1.11: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.12: Subterm Processor: -> Pairs: MULT(BIT0(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT0(m:S),BIT1(n:S)) -> MULT(m:S,n:S) MULT(NUMERAL(m:S),NUMERAL(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT0(n:S)) -> MULT(m:S,n:S) MULT(BIT1(m:S),BIT1(n:S)) -> MULT(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(MULT) = 1 Problem 1.12: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.13: Subterm Processor: -> Pairs: EXP(0,BIT0(n:S)) -> EXP(0,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EXP) = 2 Problem 1.13: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.14: Subterm Processor: -> Pairs: EXP(BIT1(m:S),BIT0(n:S)) -> EXP(BIT1(m:S),n:S) EXP(BIT1(m:S),BIT1(n:S)) -> EXP(BIT1(m:S),n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EXP) = 2 Problem 1.14: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.15: Subterm Processor: -> Pairs: EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) EXP(NUMERAL(m:S),NUMERAL(n:S)) -> EXP(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EXP) = 1 Problem 1.15: SCC Processor: -> Pairs: EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) ->->-> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) Problem 1.15: Subterm Processor: -> Pairs: EXP(BIT0(m:S),BIT0(n:S)) -> EXP(BIT0(m:S),n:S) EXP(BIT0(m:S),BIT1(n:S)) -> EXP(BIT0(m:S),n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EXP) = 2 Problem 1.15: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.16: Subterm Processor: -> Pairs: PRE#(BIT0(n:S)) -> PRE#(n:S) PRE#(NUMERAL(n:S)) -> PRE#(n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(PRE#) = 1 Problem 1.16: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.17: Subterm Processor: -> Pairs: MINUS(BIT0(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT0(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) MINUS(NUMERAL(m:S),NUMERAL(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT0(n:S)) -> MINUS(m:S,n:S) MINUS(BIT1(m:S),BIT1(n:S)) -> MINUS(m:S,n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(MINUS) = 1 Problem 1.17: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.18: Subterm Processor: -> Pairs: ODD#(NUMERAL(n:S)) -> ODD#(n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(ODD#) = 1 Problem 1.18: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.19: Subterm Processor: -> Pairs: EVEN#(NUMERAL(n:S)) -> EVEN#(n:S) -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Projection: pi(EVEN#) = 1 Problem 1.19: SCC Processor: -> Pairs: Empty -> Rules: BIT0(0) -> 0 EVEN(BIT0(n:S)) -> T EVEN(NUMERAL(n:S)) -> EVEN(n:S) EVEN(0) -> T EVEN(BIT1(n:S)) -> F NUMERAL(0) -> 0 ODD(BIT0(n:S)) -> F ODD(NUMERAL(n:S)) -> ODD(n:S) ODD(0) -> F ODD(BIT1(n:S)) -> T PRE(BIT0(n:S)) -> if(eq(n:S,0),0,BIT1(PRE(n:S))) PRE(NUMERAL(n:S)) -> NUMERAL(PRE(n:S)) PRE(0) -> 0 PRE(BIT1(n:S)) -> BIT0(n:S) SUC(BIT0(n:S)) -> BIT1(n:S) SUC(NUMERAL(n:S)) -> NUMERAL(SUC(n:S)) SUC(0) -> BIT1(0) SUC(BIT1(n:S)) -> BIT0(SUC(n:S)) eq(BIT0(m:S),BIT0(n:S)) -> eq(m:S,n:S) eq(BIT0(m:S),BIT1(n:S)) -> F eq(BIT0(n:S),0) -> eq(n:S,0) eq(NUMERAL(m:S),NUMERAL(n:S)) -> eq(m:S,n:S) eq(0,BIT0(n:S)) -> eq(0,n:S) eq(0,0) -> T eq(0,BIT1(n:S)) -> F eq(BIT1(m:S),BIT0(n:S)) -> F eq(BIT1(m:S),BIT1(n:S)) -> eq(m:S,n:S) eq(BIT1(n:S),0) -> F exp(BIT0(m:S),BIT0(n:S)) -> mult(exp(BIT0(m:S),n:S),exp(BIT0(m:S),n:S)) exp(BIT0(m:S),0) -> BIT1(0) exp(BIT0(m:S),BIT1(n:S)) -> mult(mult(BIT0(m:S),exp(BIT0(m:S),n:S)),exp(BIT0(m:S),n:S)) exp(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(exp(m:S,n:S)) exp(0,BIT0(n:S)) -> mult(exp(0,n:S),exp(0,n:S)) exp(0,0) -> BIT1(0) exp(0,BIT1(n:S)) -> 0 exp(BIT1(m:S),BIT0(n:S)) -> mult(exp(BIT1(m:S),n:S),exp(BIT1(m:S),n:S)) exp(BIT1(m:S),0) -> BIT1(0) exp(BIT1(m:S),BIT1(n:S)) -> mult(mult(BIT1(m:S),exp(BIT1(m:S),n:S)),exp(BIT1(m:S),n:S)) ge(BIT0(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT0(n:S),0) -> T ge(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) ge(NUMERAL(n:S),NUMERAL(m:S)) -> ge(n:S,m:S) ge(0,BIT0(n:S)) -> ge(0,n:S) ge(0,0) -> T ge(0,BIT1(n:S)) -> F ge(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) ge(BIT1(n:S),0) -> T ge(BIT1(n:S),BIT1(m:S)) -> ge(n:S,m:S) gt(BIT0(n:S),BIT0(m:S)) -> gt(n:S,m:S) gt(BIT0(n:S),0) -> gt(n:S,0) gt(BIT0(n:S),BIT1(m:S)) -> gt(n:S,m:S) gt(NUMERAL(n:S),NUMERAL(m:S)) -> gt(n:S,m:S) gt(0,BIT0(n:S)) -> F gt(0,0) -> F gt(0,BIT1(n:S)) -> F gt(BIT1(n:S),BIT0(m:S)) -> ge(n:S,m:S) gt(BIT1(n:S),0) -> T gt(BIT1(n:S),BIT1(m:S)) -> gt(n:S,m:S) le(BIT0(m:S),BIT0(n:S)) -> le(m:S,n:S) le(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT0(n:S),0) -> le(n:S,0) le(NUMERAL(m:S),NUMERAL(n:S)) -> le(m:S,n:S) le(0,BIT0(n:S)) -> T le(0,0) -> T le(0,BIT1(n:S)) -> T le(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) le(BIT1(m:S),BIT1(n:S)) -> le(m:S,n:S) le(BIT1(n:S),0) -> F lt(BIT0(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT0(m:S),BIT1(n:S)) -> le(m:S,n:S) lt(BIT0(n:S),0) -> F lt(NUMERAL(m:S),NUMERAL(n:S)) -> lt(m:S,n:S) lt(0,BIT0(n:S)) -> lt(0,n:S) lt(0,0) -> F lt(0,BIT1(n:S)) -> T lt(BIT1(m:S),BIT0(n:S)) -> lt(m:S,n:S) lt(BIT1(m:S),BIT1(n:S)) -> lt(m:S,n:S) lt(BIT1(n:S),0) -> F minus(BIT0(m:S),BIT0(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT0(m:S),BIT1(n:S)) -> PRE(BIT0(minus(m:S,n:S))) minus(BIT0(n:S),0) -> BIT0(n:S) minus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(minus(m:S,n:S)) minus(0,BIT0(n:S)) -> 0 minus(0,0) -> 0 minus(0,BIT1(n:S)) -> 0 minus(BIT1(m:S),BIT0(n:S)) -> if(le(n:S,m:S),BIT1(minus(m:S,n:S)),0) minus(BIT1(m:S),BIT1(n:S)) -> BIT0(minus(m:S,n:S)) minus(BIT1(n:S),0) -> BIT1(n:S) mult(BIT0(m:S),BIT0(n:S)) -> BIT0(BIT0(mult(m:S,n:S))) mult(BIT0(m:S),BIT1(n:S)) -> plus(BIT0(m:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT0(n:S),0) -> 0 mult(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(mult(m:S,n:S)) mult(0,BIT0(n:S)) -> 0 mult(0,0) -> 0 mult(0,BIT1(n:S)) -> 0 mult(BIT1(m:S),BIT0(n:S)) -> plus(BIT0(n:S),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(m:S),BIT1(n:S)) -> plus(plus(BIT1(m:S),BIT0(n:S)),BIT0(BIT0(mult(m:S,n:S)))) mult(BIT1(n:S),0) -> 0 plus(BIT0(m:S),BIT0(n:S)) -> BIT0(plus(m:S,n:S)) plus(BIT0(m:S),BIT1(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT0(n:S),0) -> BIT0(n:S) plus(NUMERAL(m:S),NUMERAL(n:S)) -> NUMERAL(plus(m:S,n:S)) plus(0,BIT0(n:S)) -> BIT0(n:S) plus(0,0) -> 0 plus(0,BIT1(n:S)) -> BIT1(n:S) plus(BIT1(m:S),BIT0(n:S)) -> BIT1(plus(m:S,n:S)) plus(BIT1(m:S),BIT1(n:S)) -> BIT0(SUC(plus(m:S,n:S))) plus(BIT1(n:S),0) -> BIT1(n:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite.