/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 = 4] isNatIList(n__cons(_0,n__zeros)) -> isNatIList(n__cons(0,n__zeros)) Let l be the left-hand side and r be the right-hand side of this rule. Let p = epsilon, theta1 = {} and theta2 = {_0->0}. We have r|p = isNatIList(n__cons(0,n__zeros)) and theta2(theta1(l)) = theta1(r|p). Hence, the term theta1(l) = isNatIList(n__cons(_0,n__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... ## 1 initial DP problem to solve. ## First, we try to decompose this problem into smaller problems. ## Round 1 [1 DP problem]: ## DP problem: Dependency pairs = [isNatIList^#(_0) -> isNatList^#(activate(_0)), isNatIList^#(n__cons(_0,_1)) -> isNatIList^#(activate(_1)), isNatList^#(n__take(_0,_1)) -> isNatIList^#(activate(_1)), isNat^#(n__length(_0)) -> isNatList^#(activate(_0)), isNat^#(n__s(_0)) -> isNat^#(activate(_0)), isNatIList^#(n__cons(_0,_1)) -> isNat^#(activate(_0)), take^#(0,_0) -> isNatIList^#(_0), activate^#(n__take(_0,_1)) -> take^#(activate(_0),activate(_1)), isNat^#(n__s(_0)) -> activate^#(_0), isNatList^#(n__cons(_0,_1)) -> isNat^#(activate(_0)), isNatList^#(n__cons(_0,_1)) -> isNatList^#(activate(_1)), length^#(cons(_0,_1)) -> isNatList^#(activate(_1)), uLength^#(tt,_0) -> length^#(activate(_0)), length^#(cons(_0,_1)) -> uLength^#(and(isNat(_0),isNatList(activate(_1))),activate(_1)), activate^#(n__length(_0)) -> length^#(activate(_0)), activate^#(n__s(_0)) -> activate^#(_0), activate^#(n__length(_0)) -> activate^#(_0), activate^#(n__cons(_0,_1)) -> activate^#(_0), activate^#(n__take(_0,_1)) -> activate^#(_0), activate^#(n__take(_0,_1)) -> activate^#(_1), uLength^#(tt,_0) -> activate^#(_0), length^#(cons(_0,_1)) -> activate^#(_1), length^#(cons(_0,_1)) -> activate^#(_1), uTake2^#(tt,_0,_1,_2) -> activate^#(_2), uTake2^#(tt,_0,_1,_2) -> activate^#(_0), uTake2^#(tt,_0,_1,_2) -> activate^#(_1), take^#(s(_0),cons(_1,_2)) -> uTake2^#(and(isNat(_0),and(isNat(_1),isNatIList(activate(_2)))),_0,_1,activate(_2)), take^#(s(_0),cons(_1,_2)) -> activate^#(_2), take^#(s(_0),cons(_1,_2)) -> activate^#(_2), isNatList^#(n__take(_0,_1)) -> activate^#(_1), isNatList^#(n__take(_0,_1)) -> activate^#(_0), isNatList^#(n__cons(_0,_1)) -> activate^#(_1), isNatList^#(n__cons(_0,_1)) -> activate^#(_0), isNatIList^#(n__cons(_0,_1)) -> activate^#(_1), isNatIList^#(n__cons(_0,_1)) -> activate^#(_0), isNat^#(n__length(_0)) -> activate^#(_0), length^#(cons(_0,_1)) -> isNat^#(_0), take^#(s(_0),cons(_1,_2)) -> isNat^#(_1), take^#(s(_0),cons(_1,_2)) -> isNat^#(_0), isNatList^#(n__take(_0,_1)) -> isNat^#(activate(_0)), isNatIList^#(_0) -> activate^#(_0), take^#(s(_0),cons(_1,_2)) -> isNatIList^#(activate(_2))] TRS = {and(tt,_0) -> _0, isNatIList(_0) -> isNatList(activate(_0)), isNat(n__0) -> tt, isNat(n__s(_0)) -> isNat(activate(_0)), isNat(n__length(_0)) -> isNatList(activate(_0)), isNatIList(n__zeros) -> tt, isNatIList(n__cons(_0,_1)) -> and(isNat(activate(_0)),isNatIList(activate(_1))), isNatList(n__nil) -> tt, isNatList(n__cons(_0,_1)) -> and(isNat(activate(_0)),isNatList(activate(_1))), isNatList(n__take(_0,_1)) -> and(isNat(activate(_0)),isNatIList(activate(_1))), zeros -> cons(0,n__zeros), take(0,_0) -> uTake1(isNatIList(_0)), uTake1(tt) -> nil, take(s(_0),cons(_1,_2)) -> uTake2(and(isNat(_0),and(isNat(_1),isNatIList(activate(_2)))),_0,_1,activate(_2)), uTake2(tt,_0,_1,_2) -> cons(activate(_1),n__take(activate(_0),activate(_2))), length(cons(_0,_1)) -> uLength(and(isNat(_0),isNatList(activate(_1))),activate(_1)), uLength(tt,_0) -> s(length(activate(_0))), 0 -> n__0, s(_0) -> n__s(_0), length(_0) -> n__length(_0), zeros -> n__zeros, cons(_0,_1) -> n__cons(_0,_1), nil -> n__nil, take(_0,_1) -> n__take(_0,_1), activate(n__0) -> 0, activate(n__s(_0)) -> s(activate(_0)), activate(n__length(_0)) -> length(activate(_0)), activate(n__zeros) -> zeros, activate(n__cons(_0,_1)) -> cons(activate(_0),_1), activate(n__nil) -> nil, activate(n__take(_0,_1)) -> take(activate(_0),activate(_1)), activate(_0) -> _0} ## Trying with homeomorphic embeddings... Failed! ## Trying with polynomial interpretations... This DP problem is too complex! Aborting! ## Trying with lexicographic path orders... Too many argument filtering possibilities (1866240)! Aborting! ## Trying with Knuth-Bendix orders... This DP problem is too complex! Aborting! Don't know whether 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=false, max=-1) # max_depth=5, unfold_variables=false: # Iteration 0: no loop found, 42 unfolded rules generated. # Iteration 1: no loop found, 428 unfolded rules generated. # Iteration 2: no loop found, 2644 unfolded rules generated. # Iteration 3: no loop found, 14312 unfolded rules generated. # Iteration 4: success, found a loop, 3007 unfolded rules generated. Here is the successful unfolding. Let IR be the TRS under analysis. L0 = isNatIList^#(n__cons(_0,_1)) -> isNatIList^#(activate(_1)) [trans] is in U_IR^0. D = isNatIList^#(n__cons(_0,_1)) -> isNat^#(activate(_0)) is a dependency pair of IR. We build a composed triple from L0 and D. ==> L1 = [isNatIList^#(n__cons(_0,_1)) -> isNatIList^#(activate(_1)), isNatIList^#(n__cons(_2,_3)) -> isNat^#(activate(_2))] [comp] is in U_IR^1. Let p1 = [0]. We unfold the first rule of L1 forwards at position p1 with the rule activate(n__zeros) -> zeros. ==> L2 = [isNatIList^#(n__cons(_0,n__zeros)) -> isNatIList^#(zeros), isNatIList^#(n__cons(_1,_2)) -> isNat^#(activate(_1))] [comp] is in U_IR^2. Let p2 = [0]. We unfold the first rule of L2 forwards at position p2 with the rule zeros -> cons(0,n__zeros). ==> L3 = [isNatIList^#(n__cons(_0,n__zeros)) -> isNatIList^#(cons(0,n__zeros)), isNatIList^#(n__cons(_1,_2)) -> isNat^#(activate(_1))] [comp] is in U_IR^3. Let p3 = [0]. We unfold the first rule of L3 forwards at position p3 with the rule cons(_0,_1) -> n__cons(_0,_1). ==> L4 = [isNatIList^#(n__cons(_0,n__zeros)) -> isNatIList^#(n__cons(0,n__zeros)), isNatIList^#(n__cons(_1,_2)) -> isNat^#(activate(_1))] [comp] is in U_IR^4. 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 = 43451