/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR X Y) (STRATEGY CONTEXTSENSITIVE (div 1) (geq) (if 1) (minus) (0) (false) (s 1) (true) ) (RULES div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) ) Problem 1: Innermost Equivalent Processor: -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> The context-sensitive term rewriting system is an orthogonal system. Therefore, innermost cs-termination implies cs-termination. Problem 1: Dependency Pairs Processor: -> Pairs: DIV(s(X),s(Y)) -> GEQ(X,Y) DIV(s(X),s(Y)) -> IF(geq(X,Y),s(div(minus(X,Y),s(Y))),0) GEQ(s(X),s(Y)) -> GEQ(X,Y) IF(false,X,Y) -> Y IF(true,X,Y) -> X MINUS(s(X),s(Y)) -> MINUS(X,Y) -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding Rules: div(minus(X,Y),s(Y)) -> DIV(minus(X,Y),s(Y)) div(minus(X,Y),s(Y)) -> MINUS(X,Y) s(div(minus(X,Y),s(Y))) -> DIV(minus(X,Y),s(Y)) s(div(minus(X,Y),s(Y))) -> MINUS(X,Y) Problem 1: SCC Processor: -> Pairs: DIV(s(X),s(Y)) -> GEQ(X,Y) DIV(s(X),s(Y)) -> IF(geq(X,Y),s(div(minus(X,Y),s(Y))),0) GEQ(s(X),s(Y)) -> GEQ(X,Y) IF(false,X,Y) -> Y IF(true,X,Y) -> X MINUS(s(X),s(Y)) -> MINUS(X,Y) -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: div(minus(X,Y),s(Y)) -> DIV(minus(X,Y),s(Y)) div(minus(X,Y),s(Y)) -> MINUS(X,Y) s(div(minus(X,Y),s(Y))) -> DIV(minus(X,Y),s(Y)) s(div(minus(X,Y),s(Y))) -> MINUS(X,Y) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: MINUS(s(X),s(Y)) -> MINUS(X,Y) ->->-> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: GEQ(s(X),s(Y)) -> GEQ(X,Y) ->->-> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: DIV(s(X),s(Y)) -> IF(geq(X,Y),s(div(minus(X,Y),s(Y))),0) IF(false,X,Y) -> Y IF(true,X,Y) -> X ->->-> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) ->->-> Unhiding rules: div(minus(X,Y),s(Y)) -> DIV(minus(X,Y),s(Y)) s(div(minus(X,Y),s(Y))) -> DIV(minus(X,Y),s(Y)) The problem is decomposed in 3 subproblems. Problem 1.1: SubNColl Processor: -> Pairs: MINUS(s(X),s(Y)) -> MINUS(X,Y) -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: Empty ->Projection: pi(MINUS) = 1 Problem 1.1: Basic Processor: -> Pairs: Empty -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: Empty -> Result: Set P is empty The problem is finite. Problem 1.2: SubNColl Processor: -> Pairs: GEQ(s(X),s(Y)) -> GEQ(X,Y) -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: Empty ->Projection: pi(GEQ) = 1 Problem 1.2: Basic Processor: -> Pairs: Empty -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: Empty -> Result: Set P is empty The problem is finite. Problem 1.3: Reduction Pairs Processor: -> Pairs: DIV(s(X),s(Y)) -> IF(geq(X,Y),s(div(minus(X,Y),s(Y))),0) IF(false,X,Y) -> Y IF(true,X,Y) -> X -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: div(minus(X,Y),s(Y)) -> DIV(minus(X,Y),s(Y)) s(div(minus(X,Y),s(Y))) -> DIV(minus(X,Y),s(Y)) -> Usable rules: geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [div](X1,X2) = 2.X2 + 2 [geq](X1,X2) = 2 [minus](X1,X2) = 0 [0] = 0 [false] = 2 [s](X) = X + 2 [true] = 2 [DIV](X1,X2) = 2.X1 + 2.X2 + 2 [IF](X1,X2,X3) = X2 + 2.X3 + 1 Problem 1.3: Basic Processor: -> Pairs: IF(false,X,Y) -> Y IF(true,X,Y) -> X -> Rules: div(0,s(Y)) -> 0 div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0) geq(0,s(Y)) -> false geq(s(X),s(Y)) -> geq(X,Y) geq(X,0) -> true if(false,X,Y) -> Y if(true,X,Y) -> X minus(0,Y) -> 0 minus(s(X),s(Y)) -> minus(X,Y) -> Unhiding rules: div(minus(X,Y),s(Y)) -> DIV(minus(X,Y),s(Y)) s(div(minus(X,Y),s(Y))) -> DIV(minus(X,Y),s(Y)) -> Result: All pairs P are from Px1 The problem is finite.