/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR t x y z) (THEORY (AC app plus)) (RULES app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x ) Problem 1: Dependency Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: APP(app(singl(x),singl(y)),x4) -> APP(if(eq(x,y),singl(x),empty),x4) APP(app(singl(x),singl(y)),x4) -> EQ(x,y) APP(app(singl(x),singl(y)),x4) -> IF(eq(x,y),singl(x),empty) APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(plus(y,z),t)),x4) -> PLUS(app(x,y),app(x,z)) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,plus(y,z)),x4) -> PLUS(app(x,y),app(x,z)) APP(app(x,empty),x4) -> APP(empty,x4) APP(singl(x),singl(y)) -> EQ(x,y) APP(singl(x),singl(y)) -> IF(eq(x,y),singl(x),empty) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,app(plus(y,z),t)) -> PLUS(app(x,y),app(x,z)) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) APP(x,plus(y,z)) -> PLUS(app(x,y),app(x,z)) EQ(s(x),s(y)) -> EQ(x,y) PLUS(plus(empty,x),x4) -> PLUS(x,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) Problem 1: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: APP(app(singl(x),singl(y)),x4) -> APP(if(eq(x,y),singl(x),empty),x4) APP(app(singl(x),singl(y)),x4) -> EQ(x,y) APP(app(singl(x),singl(y)),x4) -> IF(eq(x,y),singl(x),empty) APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(plus(y,z),t)),x4) -> PLUS(app(x,y),app(x,z)) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,plus(y,z)),x4) -> PLUS(app(x,y),app(x,z)) APP(app(x,empty),x4) -> APP(empty,x4) APP(singl(x),singl(y)) -> EQ(x,y) APP(singl(x),singl(y)) -> IF(eq(x,y),singl(x),empty) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,app(plus(y,z),t)) -> PLUS(app(x,y),app(x,z)) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) APP(x,plus(y,z)) -> PLUS(app(x,y),app(x,z)) EQ(s(x),s(y)) -> EQ(x,y) PLUS(plus(empty,x),x4) -> PLUS(x,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(empty,x),x4) -> PLUS(x,x4) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) 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: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->->Cycle: ->->-> Pairs: EQ(s(x),s(y)) -> EQ(x,y) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: Empty ->->Cycle: ->->-> Pairs: APP(app(singl(x),singl(y)),x4) -> APP(if(eq(x,y),singl(x),empty),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) The problem is decomposed in 3 subproblems. Problem 1.1: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: PLUS(plus(empty,x),x4) -> PLUS(x,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) 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: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: plus(empty,x) -> x -> 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 [eq](X1,X2) = 0 [if](X1,X2,X3) = 0 [plus](X1,X2) = X1 + X2 [0] = 0 [empty] = 2 [false] = 0 [s](X) = 0 [singl](X) = 0 [true] = 0 [APP](X1,X2) = 0 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 Problem 1.1: SCC Processor: -> FAxioms: PLUS(plus(x4,x5),x6) = PLUS(x4,plus(x5,x6)) PLUS(x4,x5) = PLUS(x5,x4) -> Pairs: Empty -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: PLUS(plus(x4,x5),x6) -> PLUS(x4,x5) PLUS(x4,plus(x5,x6)) -> PLUS(x5,x6) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> FAxioms: Empty -> Pairs: EQ(s(x),s(y)) -> EQ(x,y) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: Empty ->Projection: pi(EQ) = [1] Problem 1.2: SCC Processor: -> FAxioms: Empty -> Pairs: Empty -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(singl(x),singl(y)),x4) -> APP(if(eq(x,y),singl(x),empty),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X2 [if](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X2 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 1 [false] = 1 [s](X) = X + 1 [singl](X) = X.X + X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,y) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1.X2 + X1 + X2 + 1 [if](X1,X2,X3) = X1.X3 + X2 + X3 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 1 [false] = 1 [s](X) = X + 1 [singl](X) = X.X + X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(plus(y,z),t)),x4) -> APP(x,z) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1.X2 + X1 + X2 + 1 [if](X1,X2,X3) = X1.X3 + X2 + 1 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 1 [false] = 1 [s](X) = X + 1 [singl](X) = X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,y) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = 1 [if](X1,X2,X3) = X1.X2.X3 + X2 + X3 [plus](X1,X2) = X1 + X2 + 1 [0] = 0 [empty] = 1 [false] = 1 [s](X) = 1 [singl](X) = X.X + X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,plus(y,z)),x4) -> APP(x,z) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1 + X2 + 1 [if](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 + 1 [plus](X1,X2) = X1 + X2 + 1 [0] = 0 [empty] = 0 [false] = 1 [s](X) = X + 1 [singl](X) = X.X + X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,y) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1.X2 + X1 + X2 [if](X1,X2,X3) = X1.X3 + X2 + X3 + 1 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 1 [false] = 1 [s](X) = X + 1 [singl](X) = X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,app(plus(y,z),t)) -> APP(x,z) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1 + X2 [if](X1,X2,X3) = X1.X3 + X2 + X3 + 1 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 1 [false] = 1 [s](X) = X + 1 [singl](X) = X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,y) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X2 + 1 [if](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X2 + X3 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 0 [false] = 1 [s](X) = X + 1 [singl](X) = X + 1 [true] = 0 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,z) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) APP(x,plus(y,z)) -> APP(x,z) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [app](X1,X2) = X1.X2 + X1 + X2 [eq](X1,X2) = X1 + X2 + 1 [if](X1,X2,X3) = X1.X2.X3 + X1.X3 + X2.X3 + X1 + X2 + X3 + 1 [plus](X1,X2) = X1 + X2 + 1 [0] = 1 [empty] = 0 [false] = 1 [s](X) = X + 1 [singl](X) = X + 1 [true] = 1 [APP](X1,X2) = X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(app(plus(app(x,y),app(x,z)),t),x4) APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 3.X1.X2 + 3.X1 + 3.X2 + 2 [eq](X1,X2) = 2 [if](X1,X2,X3) = 2/3.X1.X2 + 3.X2.X3 + 2/3.X1 + 2/3.X2 + X3 [plus](X1,X2) = X1 + X2 + 3 [0] = 1/3 [empty] = 0 [false] = 2 [s](X) = 2/3.X + 1/2 [singl](X) = 2/3.X + 2 [true] = 1/2 [APP](X1,X2) = 1/3.X1.X2 + 1/3.X1 + 1/3.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(plus(y,z),t)),x4) -> APP(plus(app(x,y),app(x,z)),t) APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 3.X1.X2 + 3.X1 + 3.X2 + 2 [eq](X1,X2) = 2 [if](X1,X2,X3) = 3.X1.X2.X3 + 3/2.X1.X3 + 1/3.X2.X3 + 3.X2 + 2/3.X3 + 1/2 [plus](X1,X2) = X1 + X2 + 3 [0] = 1 [empty] = 0 [false] = 1/3 [s](X) = 0 [singl](X) = 3/2.X.X + 1/3.X + 2 [true] = 1 [APP](X1,X2) = 1/3.X1.X2 + 1/3.X1 + 1/3.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,app(empty,z)),x4) -> APP(app(empty,z),x4) APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 2.X1.X2 + 2.X1 + 2.X2 + 1 [eq](X1,X2) = 2.X1.X2 + X2 + 1/2 [if](X1,X2,X3) = 2/3.X1 + 3/2.X2 + 2.X3 + 3 [plus](X1,X2) = X1 + X2 + 2 [0] = 3 [empty] = 0 [false] = 0 [s](X) = 3.X [singl](X) = X + 3 [true] = 1/2 [APP](X1,X2) = 1/2.X1.X2 + 1/2.X1 + 1/2.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,plus(y,z)),x4) -> APP(plus(app(x,y),app(x,z)),x4) APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 2.X1.X2 + 2.X1 + 2.X2 + 1 [eq](X1,X2) = 2 [if](X1,X2,X3) = 3.X1.X2 + 2/3.X1.X3 + X2.X3 + 1/2.X2 + 3/2.X3 + 2/3 [plus](X1,X2) = X1 + X2 + 3 [0] = 1 [empty] = 0 [false] = 0 [s](X) = 1/3.X + 3/2 [singl](X) = 2.X + 3 [true] = 2 [APP](X1,X2) = 1/2.X1.X2 + 1/2.X1 + 1/2.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(app(x,empty),x4) -> APP(empty,x4) APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 3/2.X1.X2 + 3/2.X1 + 3/2.X2 + 1/2 [eq](X1,X2) = 2 [if](X1,X2,X3) = 2.X1.X2 + 2.X1.X3 + 1/3.X2.X3 + 2/3.X1 + 1/2.X2 + 3.X3 [plus](X1,X2) = X1 + X2 + 3/2 [0] = 2 [empty] = 1/2 [false] = 2/3 [s](X) = 1/2.X [singl](X) = 3.X + 3 [true] = 1/2 [APP](X1,X2) = 1/3.X1.X2 + 1/3.X1 + 1/3.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(app(x4,x5),x6) -> APP(x4,x5) APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 2/3.X1.X2 + 2.X1 + 2.X2 + 3 [eq](X1,X2) = 3 [if](X1,X2,X3) = 3.X1.X2.X3 + 1/3.X1.X3 + 3/2.X2.X3 + 2/3.X1 + 3/2.X2 + 3.X3 [plus](X1,X2) = X1 + X2 + 3 [0] = 3 [empty] = 0 [false] = 3/2 [s](X) = 2/3 [singl](X) = 1/3.X + 3 [true] = 3 [APP](X1,X2) = 1/3.X1.X2 + X1 + X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> FAxioms: app(app(x4,x5),x6) -> app(x4,app(x5,x6)) app(x4,x5) -> app(x5,x4) plus(plus(x4,x5),x6) -> plus(x4,plus(x5,x6)) plus(x4,x5) -> plus(x5,x4) APP(app(x4,x5),x6) -> APP(x4,app(x5,x6)) APP(x4,x5) -> APP(x5,x4) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) ->->-> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(x4,app(x5,x6)) -> APP(x5,x6) Problem 1.3: Reduction Pairs Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: APP(x,app(plus(y,z),t)) -> APP(plus(app(x,y),app(x,z)),t) -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Usable Equations: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> Usable Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(x4,app(x5,x6)) -> APP(x5,x6) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [app](X1,X2) = 3.X1.X2 + 2.X1 + 2.X2 + 2/3 [eq](X1,X2) = X2 + 1/3 [if](X1,X2,X3) = 1/3.X1.X2 + 3.X2.X3 + 1/3.X2 + X3 [plus](X1,X2) = X1 + X2 + 3 [0] = 2 [empty] = 1/2 [false] = 0 [s](X) = 3.X [singl](X) = 2.X.X + 3.X [true] = 2 [APP](X1,X2) = X1.X2 + 2/3.X1 + 2/3.X2 [EQ](X1,X2) = 0 [IF](X1,X2,X3) = 0 [PLUS](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: APP(app(x4,x5),x6) = APP(x4,app(x5,x6)) APP(x4,x5) = APP(x5,x4) -> Pairs: Empty -> EAxioms: app(app(x4,x5),x6) = app(x4,app(x5,x6)) app(x4,x5) = app(x5,x4) plus(plus(x4,x5),x6) = plus(x4,plus(x5,x6)) plus(x4,x5) = plus(x5,x4) -> Rules: app(singl(x),singl(y)) -> if(eq(x,y),singl(x),empty) app(x,app(plus(y,z),t)) -> app(plus(app(x,y),app(x,z)),t) app(x,app(empty,z)) -> app(empty,z) app(x,plus(y,z)) -> plus(app(x,y),app(x,z)) app(x,empty) -> empty eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x plus(empty,x) -> x -> SRules: APP(x4,app(x5,x6)) -> APP(x5,x6) ->Strongly Connected Components: There is no strongly connected component The problem is finite.