YES Problem 1: (VAR x y z) (THEORY (AC plus times)) (RULES minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 ) Problem 1: Dependency Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: MINUS(x,y) -> NEG(y) MINUS(x,y) -> PLUS(x,neg(y)) NEG(zero(x)) -> NEG(x) NEG(zero(x)) -> ZERO(neg(x)) NEG(j(x)) -> NEG(x) NEG(un(x)) -> NEG(x) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),zero(y)),x3) -> ZERO(plus(x,y)) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),j(y)),x3) -> ZERO(plus(x,y)) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),zero(y)) -> ZERO(plus(x,y)) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),j(y)) -> ZERO(plus(x,y)) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(zero(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> NEG(x) TIMES(times(x,times(j(y),z)),x3) -> PLUS(zero(times(x,y)),neg(x)) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(j(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,times(un(y),z)),x3) -> PLUS(x,zero(times(x,y))) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> ZERO(times(x,y)) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> NEG(x) TIMES(times(x,j(y)),x3) -> PLUS(zero(times(x,y)),neg(x)) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,j(y)),x3) -> ZERO(times(x,y)) TIMES(times(x,un(y)),x3) -> PLUS(x,zero(times(x,y))) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> ZERO(times(x,y)) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> ZERO(times(x,y)) TIMES(x,times(j(y),z)) -> NEG(x) TIMES(x,times(j(y),z)) -> PLUS(zero(times(x,y)),neg(x)) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> ZERO(times(x,y)) TIMES(x,times(un(y),z)) -> PLUS(x,zero(times(x,y))) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> ZERO(times(x,y)) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,zero(y)) -> ZERO(times(x,y)) TIMES(x,j(y)) -> NEG(x) TIMES(x,j(y)) -> PLUS(zero(times(x,y)),neg(x)) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,j(y)) -> ZERO(times(x,y)) TIMES(x,un(y)) -> PLUS(x,zero(times(x,y))) TIMES(x,un(y)) -> TIMES(x,y) TIMES(x,un(y)) -> ZERO(times(x,y)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: MINUS(x,y) -> NEG(y) MINUS(x,y) -> PLUS(x,neg(y)) NEG(zero(x)) -> NEG(x) NEG(zero(x)) -> ZERO(neg(x)) NEG(j(x)) -> NEG(x) NEG(un(x)) -> NEG(x) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),zero(y)),x3) -> ZERO(plus(x,y)) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),j(y)),x3) -> ZERO(plus(x,y)) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),zero(y)) -> ZERO(plus(x,y)) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),j(y)) -> ZERO(plus(x,y)) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(zero(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> NEG(x) TIMES(times(x,times(j(y),z)),x3) -> PLUS(zero(times(x,y)),neg(x)) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(j(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,times(un(y),z)),x3) -> PLUS(x,zero(times(x,y))) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> ZERO(times(x,y)) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> ZERO(times(x,y)) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> NEG(x) TIMES(times(x,j(y)),x3) -> PLUS(zero(times(x,y)),neg(x)) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,j(y)),x3) -> ZERO(times(x,y)) TIMES(times(x,un(y)),x3) -> PLUS(x,zero(times(x,y))) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> ZERO(times(x,y)) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> ZERO(times(x,y)) TIMES(x,times(j(y),z)) -> NEG(x) TIMES(x,times(j(y),z)) -> PLUS(zero(times(x,y)),neg(x)) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> ZERO(times(x,y)) TIMES(x,times(un(y),z)) -> PLUS(x,zero(times(x,y))) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> ZERO(times(x,y)) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,zero(y)) -> ZERO(times(x,y)) TIMES(x,j(y)) -> NEG(x) TIMES(x,j(y)) -> PLUS(zero(times(x,y)),neg(x)) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,j(y)) -> ZERO(times(x,y)) TIMES(x,un(y)) -> PLUS(x,zero(times(x,y))) TIMES(x,un(y)) -> TIMES(x,y) TIMES(x,un(y)) -> ZERO(times(x,y)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),zero(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->->Cycle: ->->-> Pairs: NEG(zero(x)) -> NEG(x) NEG(j(x)) -> NEG(x) NEG(un(x)) -> NEG(x) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: Empty ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) The problem is decomposed in 3 subproblems. Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),zero(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),zero(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(j(plus(x,y)),x3) PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(un(plus(x,y)),x3) PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(zero(x),un(y)),x3) -> PLUS(x,y) PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(x,plus(y,j(0))) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(j(x),j(y)),x3) -> PLUS(y,j(0)) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(zero(plus(x,y)),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),j(y)),x3) -> PLUS(x,y) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(x,plus(y,un(0))) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(y,un(0)) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),zero(y)) -> PLUS(x,y) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),j(y)) -> PLUS(x,y) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(zero(x),un(y)) -> PLUS(x,y) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = X1 + X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(x,plus(y,j(0))) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(j(x),j(y)) -> PLUS(y,j(0)) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 1 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),j(y)) -> PLUS(x,y) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = X1 + X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(x,plus(y,un(0))) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X + 2 [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) PLUS(un(x),un(y)) -> PLUS(y,un(0)) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = X [0] = 0 [j](X) = X + 2 [un](X) = X + 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(j(x),j(y)),x3) -> PLUS(un(plus(x,plus(y,j(0)))),x3) PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 + 1 [times](X1,X2) = 0 [zero](X) = 0 [0] = 0 [j](X) = 2 [un](X) = 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = X1 + X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(un(x),un(y)),x3) -> PLUS(j(plus(x,plus(y,un(0)))),x3) PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 [times](X1,X2) = 0 [zero](X) = 2 [0] = 0 [j](X) = 2 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(x,0),x3) -> PLUS(x,x3) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) PLUS(plus(x3,x4),x5) -> PLUS(x3,plus(x4,x5)) PLUS(x3,x4) -> PLUS(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: PLUS(plus(x,0),x3) -> PLUS(x,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 0 [plus](X1,X2) = X1 + X2 + 1 [times](X1,X2) = 0 [zero](X) = 2 [0] = 0 [j](X) = 1 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = X1 + X2 [TIMES](X1,X2) = 0 [ZERO](X) = 0 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x3,x4),x5) = PLUS(x3,plus(x4,x5)) PLUS(x3,x4) = PLUS(x4,x3) -> Pairs: Empty -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: PLUS(plus(x3,x4),x5) -> PLUS(x3,x4) PLUS(x3,plus(x4,x5)) -> PLUS(x4,x5) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> FAxioms: Empty -> Pairs: NEG(zero(x)) -> NEG(x) NEG(j(x)) -> NEG(x) NEG(un(x)) -> NEG(x) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: Empty ->Projection: pi(NEG) = [1] Problem 1.2: SCC Processor: -> FAxioms: Empty -> Pairs: Empty -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(times(plus(zero(times(x,y)),neg(x)),z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(j(y),z)),x3) -> TIMES(x,y) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(times(plus(x,zero(times(x,y))),z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,times(un(y),z)),x3) -> TIMES(x,y) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,zero(y)),x3) -> TIMES(x,y) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(plus(zero(times(x,y)),neg(x)),x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,j(y)),x3) -> TIMES(x,y) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(plus(x,zero(times(x,y))),x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(times(x,un(y)),x3) -> TIMES(x,y) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(zero(y),z)) -> TIMES(x,y) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(plus(zero(times(x,y)),neg(x)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(j(y),z)) -> TIMES(x,y) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(plus(x,zero(times(x,y))),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,times(un(y),z)) -> TIMES(x,y) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,zero(y)) -> TIMES(x,y) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,j(y)) -> TIMES(x,y) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X + 1 [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,un(y)) -> TIMES(x,y) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) TIMES(x,un(y)) -> TIMES(x,y) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1.X2 + X1 + X2 [zero](X) = X [0] = 0 [j](X) = X + 1 [un](X) = X + 1 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1.X2 + X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(times(zero(times(x,y)),z),x3) TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = 2 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 0 [0] = 0 [j](X) = 2 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = 2.X1 + 2.X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(zero(y),z)),x3) -> TIMES(zero(times(x,y)),z) TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 + 2 [times](X1,X2) = X1 + X2 + 1 [zero](X) = 0 [0] = 0 [j](X) = 2 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = 2.X1 + 2.X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,times(0,z)),x3) -> TIMES(times(0,z),x3) TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 2 [plus](X1,X2) = X1 + X2 + 2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 0 [0] = 0 [j](X) = 2 [un](X) = 0 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = 2.X1 + 2.X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,zero(y)),x3) -> TIMES(zero(times(x,y)),x3) TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 1 [plus](X1,X2) = X1 + X2 + 2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 0 [0] = 0 [j](X) = 1 [un](X) = 0 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(times(x,0),x3) -> TIMES(0,x3) TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 + 2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 0 [0] = 0 [j](X) = 0 [un](X) = 0 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = X1 + X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(times(x3,x4),x5) -> TIMES(x3,x4) TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X [plus](X1,X2) = X1 + X2 + 2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 2 [0] = 2 [j](X) = 2 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = 2.X1 + 2.X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> FAxioms: plus(plus(x3,x4),x5) -> plus(x3,plus(x4,x5)) plus(x3,x4) -> plus(x4,x3) times(times(x3,x4),x5) -> times(x3,times(x4,x5)) times(x3,x4) -> times(x4,x3) TIMES(times(x3,x4),x5) -> TIMES(x3,times(x4,x5)) TIMES(x3,x4) -> TIMES(x4,x3) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) ->->-> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) Problem 1.3: Reduction Pairs Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: TIMES(x,times(zero(y),z)) -> TIMES(zero(times(x,y)),z) -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Usable Equations: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> Usable Rules: neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 0 [neg](X) = X + 2 [plus](X1,X2) = X1 + X2 [times](X1,X2) = X1 + X2 + 2 [zero](X) = 2 [0] = 2 [j](X) = 2 [un](X) = 2 [MINUS](X1,X2) = 0 [NEG](X) = 0 [PLUS](X1,X2) = 0 [TIMES](X1,X2) = 2.X1 + 2.X2 [ZERO](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: TIMES(times(x3,x4),x5) = TIMES(x3,times(x4,x5)) TIMES(x3,x4) = TIMES(x4,x3) -> Pairs: Empty -> EAxioms: plus(plus(x3,x4),x5) = plus(x3,plus(x4,x5)) plus(x3,x4) = plus(x4,x3) times(times(x3,x4),x5) = times(x3,times(x4,x5)) times(x3,x4) = times(x4,x3) -> Rules: minus(x,y) -> plus(x,neg(y)) neg(zero(x)) -> zero(neg(x)) neg(0) -> 0 neg(j(x)) -> un(neg(x)) neg(un(x)) -> j(neg(x)) plus(zero(x),zero(y)) -> zero(plus(x,y)) plus(zero(x),j(y)) -> j(plus(x,y)) plus(zero(x),un(y)) -> un(plus(x,y)) plus(j(x),j(y)) -> un(plus(x,plus(y,j(0)))) plus(un(x),j(y)) -> zero(plus(x,y)) plus(un(x),un(y)) -> j(plus(x,plus(y,un(0)))) plus(x,0) -> x times(x,times(zero(y),z)) -> times(zero(times(x,y)),z) times(x,times(0,z)) -> times(0,z) times(x,times(j(y),z)) -> times(plus(zero(times(x,y)),neg(x)),z) times(x,times(un(y),z)) -> times(plus(x,zero(times(x,y))),z) times(x,zero(y)) -> zero(times(x,y)) times(x,0) -> 0 times(x,j(y)) -> plus(zero(times(x,y)),neg(x)) times(x,un(y)) -> plus(x,zero(times(x,y))) zero(0) -> 0 -> SRules: TIMES(x3,times(x4,x5)) -> TIMES(x4,x5) ->Strongly Connected Components: There is no strongly connected component The problem is finite.