/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- NO ** BEGIN proof argument ** The following rule was generated while unfolding the analyzed TRS: [iteration = 7] if(ge(id_inc(0),s(0)),true,_0,id_inc(0)) -> if(ge(id_inc(0),s(0)),true,minus(_0,id_inc(0)),id_inc(0)) Let l be the left-hand side and r be the right-hand side of this rule. Let p = epsilon, theta1 = {} and theta2 = {_0->minus(_0,id_inc(0))}. We have r|p = if(ge(id_inc(0),s(0)),true,minus(_0,id_inc(0)),id_inc(0)) and theta2(theta1(l)) = theta1(r|p). Hence, the term theta1(l) = if(ge(id_inc(0),s(0)),true,_0,id_inc(0)) loops w.r.t. the analyzed TRS. ** END proof argument ** ** BEGIN proof description ** ## Searching for a generalized rewrite rule (a rule whose right-hand side contains a variable that does not occur in the left-hand side)... No generalized rewrite rule found! ## Applying the DP framework... ## 3 initial DP problems to solve. ## First, we try to decompose these problems into smaller problems. ## Round 1 [3 DP problems]: ## DP problem: Dependency pairs = [div^#(_0,_1) -> if^#(ge(_1,s(0)),ge(_0,_1),_0,_1), if^#(true,true,_0,_1) -> div^#(minus(_0,_1),_1)] TRS = {ge(_0,0) -> true, ge(0,s(_0)) -> false, ge(s(_0),s(_1)) -> ge(_0,_1), minus(_0,0) -> _0, minus(0,_0) -> 0, minus(s(_0),s(_1)) -> minus(_0,_1), id_inc(_0) -> _0, id_inc(_0) -> s(_0), div(_0,_1) -> if(ge(_1,s(0)),ge(_0,_1),_0,_1), if(false,_0,_1,_2) -> div_by_zero, if(true,false,_0,_1) -> 0, if(true,true,_0,_1) -> id_inc(div(minus(_0,_1),_1))} ## Trying with homeomorphic embeddings... Failed! ## Trying with polynomial interpretations... This DP problem is too complex! Aborting! ## Trying with lexicographic path orders... Failed! ## Trying with Knuth-Bendix orders... Failed! Don't know whether this DP problem is finite. ## DP problem: Dependency pairs = [minus^#(s(_0),s(_1)) -> minus^#(_0,_1)] TRS = {ge(_0,0) -> true, ge(0,s(_0)) -> false, ge(s(_0),s(_1)) -> ge(_0,_1), minus(_0,0) -> _0, minus(0,_0) -> 0, minus(s(_0),s(_1)) -> minus(_0,_1), id_inc(_0) -> _0, id_inc(_0) -> s(_0), div(_0,_1) -> if(ge(_1,s(0)),ge(_0,_1),_0,_1), if(false,_0,_1,_2) -> div_by_zero, if(true,false,_0,_1) -> 0, if(true,true,_0,_1) -> id_inc(div(minus(_0,_1),_1))} ## Trying with homeomorphic embeddings... Success! This DP problem is finite. ## DP problem: Dependency pairs = [ge^#(s(_0),s(_1)) -> ge^#(_0,_1)] TRS = {ge(_0,0) -> true, ge(0,s(_0)) -> false, ge(s(_0),s(_1)) -> ge(_0,_1), minus(_0,0) -> _0, minus(0,_0) -> 0, minus(s(_0),s(_1)) -> minus(_0,_1), id_inc(_0) -> _0, id_inc(_0) -> s(_0), div(_0,_1) -> if(ge(_1,s(0)),ge(_0,_1),_0,_1), if(false,_0,_1,_2) -> div_by_zero, if(true,false,_0,_1) -> 0, if(true,true,_0,_1) -> id_inc(div(minus(_0,_1),_1))} ## Trying with homeomorphic embeddings... Success! This DP problem is finite. ## A DP problem could not be proved finite. ## Now, we try to prove that this problem is infinite. ## Trying to find a loop (forward=true, backward=true, max=20) # max_depth=20, unfold_variables=false: # Iteration 0: no loop found, 2 unfolded rules generated. # Iteration 1: no loop found, 3 unfolded rules generated. # Iteration 2: no loop found, 12 unfolded rules generated. # Iteration 3: no loop found, 4 unfolded rules generated. # Iteration 4: no loop found, 30 unfolded rules generated. # Iteration 5: no loop found, 180 unfolded rules generated. # Iteration 6: no loop found, 847 unfolded rules generated. # Iteration 7: success, found a loop, 1665 unfolded rules generated. Here is the successful unfolding. Let IR be the TRS under analysis. L0 = if^#(true,true,_0,_1) -> div^#(minus(_0,_1),_1) [trans] is in U_IR^0. D = div^#(_0,_1) -> if^#(ge(_1,s(0)),ge(_0,_1),_0,_1) is a dependency pair of IR. We build a composed triple from L0 and D. ==> L1 = if^#(true,true,_0,_1) -> if^#(ge(_1,s(0)),ge(minus(_0,_1),_1),minus(_0,_1),_1) [trans] is in U_IR^1. We build a unit triple from L1. ==> L2 = if^#(true,true,_0,_1) -> if^#(ge(_1,s(0)),ge(minus(_0,_1),_1),minus(_0,_1),_1) [unit] is in U_IR^2. Let p2 = [0]. We unfold the rule of L2 backwards at position p2 with the rule ge(_0,0) -> true. ==> L3 = if^#(ge(_0,0),true,_1,_2) -> if^#(ge(_2,s(0)),ge(minus(_1,_2),_2),minus(_1,_2),_2) [unit] is in U_IR^3. Let p3 = [0]. We unfold the rule of L3 backwards at position p3 with the rule ge(s(_0),s(_1)) -> ge(_0,_1). ==> L4 = if^#(ge(s(_0),s(0)),true,_1,_2) -> if^#(ge(_2,s(0)),ge(minus(_1,_2),_2),minus(_1,_2),_2) [unit] is in U_IR^4. Let p4 = [0, 0]. We unfold the rule of L4 backwards at position p4 with the rule id_inc(_0) -> s(_0). ==> L5 = if^#(ge(id_inc(_0),s(0)),true,_1,id_inc(_0)) -> if^#(ge(id_inc(_0),s(0)),ge(minus(_1,id_inc(_0)),id_inc(_0)),minus(_1,id_inc(_0)),id_inc(_0)) [unit] is in U_IR^5. Let p5 = [1, 1]. We unfold the rule of L5 forwards at position p5 with the rule id_inc(_0) -> _0. ==> L6 = if^#(ge(id_inc(_0),s(0)),true,_1,id_inc(_0)) -> if^#(ge(id_inc(_0),s(0)),ge(minus(_1,id_inc(_0)),_0),minus(_1,id_inc(_0)),id_inc(_0)) [unit] is in U_IR^6. Let p6 = [1]. We unfold the rule of L6 forwards at position p6 with the rule ge(_0,0) -> true. ==> L7 = if^#(ge(id_inc(0),s(0)),true,_0,id_inc(0)) -> if^#(ge(id_inc(0),s(0)),true,minus(_0,id_inc(0)),id_inc(0)) [unit] is in U_IR^7. This DP problem is infinite. Proof run on Linux version 3.10.0-1160.25.1.el7.x86_64 for amd64 using Java version 1.8.0_292 ** END proof description ** Total number of generated unfolded rules = 3667