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