YES Problem 1: (VAR k l x y) (THEORY (AC plus)) (RULES app(cons(x,l),k) -> cons(x,app(l,k)) app(nil,k) -> k app(l,nil) -> l plus(0,y) -> y plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ) Problem 1: Reduction Order Processor: -> Rules: app(cons(x,l),k) -> cons(x,app(l,k)) app(nil,k) -> k app(l,nil) -> l plus(0,y) -> y plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + 2.X2 + 1 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = X [0] = 0 [cons](X1,X2) = X1 + X2 + 2 [nil] = 2 [s](X) = X + 2 Problem 1: Reduction Order Processor: -> Rules: app(nil,k) -> k app(l,nil) -> l plus(0,y) -> y plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = X1 + 2.X2 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = X [0] = 0 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = X Problem 1: Reduction Order Processor: -> Rules: app(l,nil) -> l plus(0,y) -> y plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = X1 + X2 + 1 [sum](X) = X [0] = 0 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = X + 2 Problem 1: Reduction Order Processor: -> Rules: plus(0,y) -> y plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + X2 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = X [0] = 0 [cons](X1,X2) = X1 + 2.X2 + 2 [nil] = 2 [s](X) = X + 2 Problem 1: Reduction Order Processor: -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(cons(x,nil)) -> cons(x,nil) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + 2.X2 [plus](X1,X2) = X1 + X2 [sum](X) = X [0] = 0 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = X Problem 1: Dependency Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(plus(s(x),y),x4) -> PLUS(x,y) PLUS(s(x),y) -> PLUS(x,y) SUM(app(l,cons(x,cons(y,k)))) -> APP(l,sum(cons(x,cons(y,k)))) SUM(app(l,cons(x,cons(y,k)))) -> SUM(app(l,sum(cons(x,cons(y,k))))) SUM(app(l,cons(x,cons(y,k)))) -> SUM(cons(x,cons(y,k))) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) Problem 1: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(plus(s(x),y),x4) -> PLUS(x,y) PLUS(s(x),y) -> PLUS(x,y) SUM(app(l,cons(x,cons(y,k)))) -> APP(l,sum(cons(x,cons(y,k)))) SUM(app(l,cons(x,cons(y,k)))) -> SUM(app(l,sum(cons(x,cons(y,k))))) SUM(app(l,cons(x,cons(y,k)))) -> SUM(cons(x,cons(y,k))) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: SUM(app(l,cons(x,cons(y,k)))) -> SUM(app(l,sum(cons(x,cons(y,k))))) -> FAxioms: plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: Empty ->->Cycle: ->->-> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(plus(s(x),y),x4) -> PLUS(x,y) PLUS(s(x),y) -> PLUS(x,y) -> FAxioms: plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) PLUS(plus(x4,x5),x6) -> PLUS(x4,plus(x5,x6)) PLUS(x4,x5) -> PLUS(x5,x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) The problem is decomposed in 2 subproblems. Problem 1.1: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: SUM(app(l,cons(x,cons(y,k)))) -> SUM(app(l,sum(cons(x,cons(y,k))))) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: Empty -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> Usable Rules: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X2 [plus](X1,X2) = 0 [sum](X) = 2 [0] = 0 [cons](X1,X2) = 2.X2 + 2 [nil] = 0 [s](X) = 0 [APP](X1,X2) = 0 [PLUS](X1,X2) = 0 [SUM](X) = 2.X Problem 1.1: SCC Processor: -> FAxioms: Empty -> Pairs: Empty -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(plus(s(x),y),x4) -> PLUS(x,y) PLUS(s(x),y) -> PLUS(x,y) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> Usable Rules: plus(s(x),y) -> s(plus(x,y)) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 0 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = 0 [0] = 0 [cons](X1,X2) = 0 [nil] = 0 [s](X) = X + 2 [APP](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [SUM](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> FAxioms: plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) PLUS(plus(x4,x5),x6) -> PLUS(x4,plus(x5,x6)) PLUS(x4,x5) -> PLUS(x5,x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) Problem 1.2: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> Usable Rules: plus(s(x),y) -> s(plus(x,y)) -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 0 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = 0 [0] = 0 [cons](X1,X2) = 0 [nil] = 0 [s](X) = X + 2 [APP](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [SUM](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> FAxioms: plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) PLUS(plus(x4,x5),x6) -> PLUS(x4,plus(x5,x6)) PLUS(x4,x5) -> PLUS(x5,x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) Problem 1.2: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) PLUS(s(x),y) -> PLUS(x,y) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> Usable Rules: plus(s(x),y) -> s(plus(x,y)) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 0 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = 0 [0] = 0 [cons](X1,X2) = 0 [nil] = 0 [s](X) = X + 2 [APP](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [SUM](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) -> FAxioms: plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) PLUS(plus(x4,x5),x6) -> PLUS(x4,plus(x5,x6)) PLUS(x4,x5) -> PLUS(x5,x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) Problem 1.2: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(s(x),y),x4) -> PLUS(s(plus(x,y)),x4) -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> Usable Rules: plus(s(x),y) -> s(plus(x,y)) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 0 [plus](X1,X2) = X1 + X2 + 2 [sum](X) = 0 [0] = 0 [cons](X1,X2) = 0 [nil] = 0 [s](X) = 2 [APP](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [SUM](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: Empty -> EAxioms: plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: plus(s(x),y) -> s(plus(x,y)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) sum(cons(x,nil)) -> cons(x,nil) -> SRules: PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: There is no strongly connected component The problem is finite.