/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 = 5] mark(length(zeros)) -> mark(length(zeros)) Let l be the left-hand side and r be the right-hand side of this rule. Let p = epsilon, theta1 = {} and theta2 = {}. We have r|p = mark(length(zeros)) and theta2(theta1(l)) = theta1(r|p). Hence, the term theta1(l) = mark(length(zeros)) 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... ## 5 initial DP problems to solve. ## First, we try to decompose these problems into smaller problems. ## Round 1 [5 DP problems]: ## DP problem: Dependency pairs = [active^#(zeros) -> mark^#(cons(0,zeros)), mark^#(zeros) -> active^#(zeros), active^#(and(tt,_0)) -> mark^#(_0), mark^#(cons(_0,_1)) -> active^#(cons(mark(_0),_1)), active^#(length(cons(_0,_1))) -> mark^#(s(length(_1))), mark^#(s(_0)) -> active^#(s(mark(_0))), mark^#(length(_0)) -> active^#(length(mark(_0))), mark^#(and(_0,_1)) -> active^#(and(mark(_0),_1)), mark^#(cons(_0,_1)) -> mark^#(_0), mark^#(and(_0,_1)) -> mark^#(_0), mark^#(length(_0)) -> mark^#(_0), mark^#(s(_0)) -> mark^#(_0)] TRS = {active(zeros) -> mark(cons(0,zeros)), active(and(tt,_0)) -> mark(_0), active(length(nil)) -> mark(0), active(length(cons(_0,_1))) -> mark(s(length(_1))), mark(zeros) -> active(zeros), mark(cons(_0,_1)) -> active(cons(mark(_0),_1)), mark(0) -> active(0), mark(and(_0,_1)) -> active(and(mark(_0),_1)), mark(tt) -> active(tt), mark(length(_0)) -> active(length(mark(_0))), mark(nil) -> active(nil), mark(s(_0)) -> active(s(mark(_0))), cons(mark(_0),_1) -> cons(_0,_1), cons(_0,mark(_1)) -> cons(_0,_1), cons(active(_0),_1) -> cons(_0,_1), cons(_0,active(_1)) -> cons(_0,_1), and(mark(_0),_1) -> and(_0,_1), and(_0,mark(_1)) -> and(_0,_1), and(active(_0),_1) -> and(_0,_1), and(_0,active(_1)) -> and(_0,_1), length(mark(_0)) -> length(_0), length(active(_0)) -> length(_0), s(mark(_0)) -> s(_0), s(active(_0)) -> s(_0)} ## 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 = [length^#(mark(_0)) -> length^#(_0), length^#(active(_0)) -> length^#(_0)] TRS = {active(zeros) -> mark(cons(0,zeros)), active(and(tt,_0)) -> mark(_0), active(length(nil)) -> mark(0), active(length(cons(_0,_1))) -> mark(s(length(_1))), mark(zeros) -> active(zeros), mark(cons(_0,_1)) -> active(cons(mark(_0),_1)), mark(0) -> active(0), mark(and(_0,_1)) -> active(and(mark(_0),_1)), mark(tt) -> active(tt), mark(length(_0)) -> active(length(mark(_0))), mark(nil) -> active(nil), mark(s(_0)) -> active(s(mark(_0))), cons(mark(_0),_1) -> cons(_0,_1), cons(_0,mark(_1)) -> cons(_0,_1), cons(active(_0),_1) -> cons(_0,_1), cons(_0,active(_1)) -> cons(_0,_1), and(mark(_0),_1) -> and(_0,_1), and(_0,mark(_1)) -> and(_0,_1), and(active(_0),_1) -> and(_0,_1), and(_0,active(_1)) -> and(_0,_1), length(mark(_0)) -> length(_0), length(active(_0)) -> length(_0), s(mark(_0)) -> s(_0), s(active(_0)) -> s(_0)} ## Trying with homeomorphic embeddings... Success! This DP problem is finite. ## DP problem: Dependency pairs = [s^#(mark(_0)) -> s^#(_0), s^#(active(_0)) -> s^#(_0)] TRS = {active(zeros) -> mark(cons(0,zeros)), active(and(tt,_0)) -> mark(_0), active(length(nil)) -> mark(0), active(length(cons(_0,_1))) -> mark(s(length(_1))), mark(zeros) -> active(zeros), mark(cons(_0,_1)) -> active(cons(mark(_0),_1)), mark(0) -> active(0), mark(and(_0,_1)) -> active(and(mark(_0),_1)), mark(tt) -> active(tt), mark(length(_0)) -> active(length(mark(_0))), mark(nil) -> active(nil), mark(s(_0)) -> active(s(mark(_0))), cons(mark(_0),_1) -> cons(_0,_1), cons(_0,mark(_1)) -> cons(_0,_1), cons(active(_0),_1) -> cons(_0,_1), cons(_0,active(_1)) -> cons(_0,_1), and(mark(_0),_1) -> and(_0,_1), and(_0,mark(_1)) -> and(_0,_1), and(active(_0),_1) -> and(_0,_1), and(_0,active(_1)) -> and(_0,_1), length(mark(_0)) -> length(_0), length(active(_0)) -> length(_0), s(mark(_0)) -> s(_0), s(active(_0)) -> s(_0)} ## Trying with homeomorphic embeddings... Success! This DP problem is finite. ## DP problem: Dependency pairs = [and^#(mark(_0),_1) -> and^#(_0,_1), and^#(_0,mark(_1)) -> and^#(_0,_1), and^#(active(_0),_1) -> and^#(_0,_1), and^#(_0,active(_1)) -> and^#(_0,_1)] TRS = {active(zeros) -> mark(cons(0,zeros)), active(and(tt,_0)) -> mark(_0), active(length(nil)) -> mark(0), active(length(cons(_0,_1))) -> mark(s(length(_1))), mark(zeros) -> active(zeros), mark(cons(_0,_1)) -> active(cons(mark(_0),_1)), mark(0) -> active(0), mark(and(_0,_1)) -> active(and(mark(_0),_1)), mark(tt) -> active(tt), mark(length(_0)) -> active(length(mark(_0))), mark(nil) -> active(nil), mark(s(_0)) -> active(s(mark(_0))), cons(mark(_0),_1) -> cons(_0,_1), cons(_0,mark(_1)) -> cons(_0,_1), cons(active(_0),_1) -> cons(_0,_1), cons(_0,active(_1)) -> cons(_0,_1), and(mark(_0),_1) -> and(_0,_1), and(_0,mark(_1)) -> and(_0,_1), and(active(_0),_1) -> and(_0,_1), and(_0,active(_1)) -> and(_0,_1), length(mark(_0)) -> length(_0), length(active(_0)) -> length(_0), s(mark(_0)) -> s(_0), s(active(_0)) -> s(_0)} ## Trying with homeomorphic embeddings... Success! This DP problem is finite. ## DP problem: Dependency pairs = [cons^#(mark(_0),_1) -> cons^#(_0,_1), cons^#(_0,mark(_1)) -> cons^#(_0,_1), cons^#(active(_0),_1) -> cons^#(_0,_1), cons^#(_0,active(_1)) -> cons^#(_0,_1)] TRS = {active(zeros) -> mark(cons(0,zeros)), active(and(tt,_0)) -> mark(_0), active(length(nil)) -> mark(0), active(length(cons(_0,_1))) -> mark(s(length(_1))), mark(zeros) -> active(zeros), mark(cons(_0,_1)) -> active(cons(mark(_0),_1)), mark(0) -> active(0), mark(and(_0,_1)) -> active(and(mark(_0),_1)), mark(tt) -> active(tt), mark(length(_0)) -> active(length(mark(_0))), mark(nil) -> active(nil), mark(s(_0)) -> active(s(mark(_0))), cons(mark(_0),_1) -> cons(_0,_1), cons(_0,mark(_1)) -> cons(_0,_1), cons(active(_0),_1) -> cons(_0,_1), cons(_0,active(_1)) -> cons(_0,_1), and(mark(_0),_1) -> and(_0,_1), and(_0,mark(_1)) -> and(_0,_1), and(active(_0),_1) -> and(_0,_1), and(_0,active(_1)) -> and(_0,_1), length(mark(_0)) -> length(_0), length(active(_0)) -> length(_0), s(mark(_0)) -> s(_0), s(active(_0)) -> s(_0)} ## 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, 12 unfolded rules generated. # Iteration 1: no loop found, 118 unfolded rules generated. # Iteration 2: no loop found, 636 unfolded rules generated. # Iteration 3: no loop found, 4927 unfolded rules generated. # Iteration 4: no loop found, 44462 unfolded rules generated. # Iteration 5: success, found a loop, 112437 unfolded rules generated. Here is the successful unfolding. Let IR be the TRS under analysis. L0 = mark^#(length(_0)) -> active^#(length(mark(_0))) [trans] is in U_IR^0. D = active^#(length(cons(_0,_1))) -> mark^#(s(length(_1))) is a dependency pair of IR. We build a composed triple from L0 and D. ==> L1 = [mark^#(length(_0)) -> active^#(length(mark(_0))), active^#(length(cons(_1,_2))) -> mark^#(s(length(_2)))] [comp] is in U_IR^1. Let p1 = [0]. We unfold the second rule of L1 backwards at position p1 with the rule length(mark(_0)) -> length(_0). ==> L2 = [mark^#(length(_0)) -> active^#(length(mark(_0))), active^#(length(mark(cons(_1,_2)))) -> mark^#(s(length(_2)))] [comp] is in U_IR^2. Let p2 = [0, 0]. We unfold the first rule of L2 forwards at position p2 with the rule mark(zeros) -> active(zeros). ==> L3 = [mark^#(length(zeros)) -> active^#(length(active(zeros))), active^#(length(mark(cons(_0,_1)))) -> mark^#(s(length(_1)))] [comp] is in U_IR^3. Let p3 = [0, 0]. We unfold the first rule of L3 forwards at position p3 with the rule active(zeros) -> mark(cons(0,zeros)). ==> L4 = mark^#(length(zeros)) -> mark^#(s(length(zeros))) [trans] is in U_IR^4. D = mark^#(s(_0)) -> mark^#(_0) is a dependency pair of IR. We build a composed triple from L4 and D. ==> L5 = mark^#(length(zeros)) -> mark^#(length(zeros)) [trans] is in U_IR^5. 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 = 239607