/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- NO ** BEGIN proof argument ** The following rule was generated while unfolding the analyzed TRS: [iteration = 1] list1 -> list1 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 = list1 and theta2(theta1(l)) = theta1(r|p). Hence, the term theta1(l) = list1 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... ## 2 initial DP problems to solve. ## First, we try to decompose these problems into smaller problems. ## Round 1 [2 DP problems]: ## DP problem: Dependency pairs = [list1^# -> hamming^#, hamming^# -> list1^#, list2^# -> hamming^#, hamming^# -> list2^#, list3^# -> hamming^#, hamming^# -> list3^#] TRS = {app(app(app(if,true),_0),_1) -> _0, app(app(app(if,false),_0),_1) -> _1, app(app(lt,app(s,_0)),app(s,_1)) -> app(app(lt,_0),_1), app(app(lt,0),app(s,_0)) -> true, app(app(lt,_0),0) -> false, app(app(eq,_0),_0) -> true, app(app(eq,app(s,_0)),0) -> false, app(app(eq,0),app(s,_0)) -> false, app(app(merge,_0),nil) -> _0, app(app(merge,nil),_0) -> _0, app(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app(app(app(if,app(app(lt,_0),_2)),app(app(cons,_0),app(app(merge,_1),app(app(cons,_2),_3)))),app(app(app(if,app(app(eq,_0),_2)),app(app(cons,_0),app(app(merge,_1),_3))),app(app(cons,_2),app(app(merge,app(app(cons,_0),_1)),_3)))), app(app(map,_0),nil) -> nil, app(app(map,_0),app(app(cons,_1),_2)) -> app(app(cons,app(_0,_1)),app(app(map,_0),_2)), app(app(mult,0),_0) -> 0, app(app(mult,app(s,_0)),_1) -> app(app(plus,_1),app(app(mult,_0),_1)), app(app(plus,0),_0) -> 0, app(app(plus,app(s,_0)),_1) -> app(s,app(app(plus,_0),_1)), list1 -> app(app(map,app(mult,app(s,app(s,0)))),hamming), list2 -> app(app(map,app(mult,app(s,app(s,app(s,0))))),hamming), list3 -> app(app(map,app(mult,app(s,app(s,app(s,app(s,app(s,0))))))),hamming), hamming -> app(app(cons,app(s,0)),app(app(merge,list1),app(app(merge,list2),list3)))} ## 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... This DP problem is too complex! Aborting! Don't know whether this DP problem is finite. ## DP problem: Dependency pairs = [app^#(app(lt,app(s,_0)),app(s,_1)) -> app^#(app(lt,_0),_1), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(app(if,app(app(lt,_0),_2)),app(app(cons,_0),app(app(merge,_1),app(app(cons,_2),_3)))),app(app(app(if,app(app(eq,_0),_2)),app(app(cons,_0),app(app(merge,_1),_3))),app(app(cons,_2),app(app(merge,app(app(cons,_0),_1)),_3)))), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(if,app(app(lt,_0),_2)),app(app(cons,_0),app(app(merge,_1),app(app(cons,_2),_3)))), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(lt,_0),_2), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(cons,_0),app(app(merge,_1),app(app(cons,_2),_3))), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(merge,_1),app(app(cons,_2),_3)), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(cons,_2),_3), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(app(if,app(app(eq,_0),_2)),app(app(cons,_0),app(app(merge,_1),_3))),app(app(cons,_2),app(app(merge,app(app(cons,_0),_1)),_3))), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(if,app(app(eq,_0),_2)),app(app(cons,_0),app(app(merge,_1),_3))), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(eq,_0),_2), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(cons,_0),app(app(merge,_1),_3)), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(merge,_1),_3), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(cons,_2),app(app(merge,app(app(cons,_0),_1)),_3)), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(merge,app(app(cons,_0),_1)),_3), app^#(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app^#(app(cons,_0),_1), app^#(app(map,_0),app(app(cons,_1),_2)) -> app^#(app(cons,app(_0,_1)),app(app(map,_0),_2)), app^#(app(map,_0),app(app(cons,_1),_2)) -> app^#(_0,_1), app^#(app(map,_0),app(app(cons,_1),_2)) -> app^#(app(map,_0),_2), app^#(app(mult,app(s,_0)),_1) -> app^#(app(plus,_1),app(app(mult,_0),_1)), app^#(app(mult,app(s,_0)),_1) -> app^#(app(mult,_0),_1), app^#(app(plus,app(s,_0)),_1) -> app^#(app(plus,_0),_1)] TRS = {app(app(app(if,true),_0),_1) -> _0, app(app(app(if,false),_0),_1) -> _1, app(app(lt,app(s,_0)),app(s,_1)) -> app(app(lt,_0),_1), app(app(lt,0),app(s,_0)) -> true, app(app(lt,_0),0) -> false, app(app(eq,_0),_0) -> true, app(app(eq,app(s,_0)),0) -> false, app(app(eq,0),app(s,_0)) -> false, app(app(merge,_0),nil) -> _0, app(app(merge,nil),_0) -> _0, app(app(merge,app(app(cons,_0),_1)),app(app(cons,_2),_3)) -> app(app(app(if,app(app(lt,_0),_2)),app(app(cons,_0),app(app(merge,_1),app(app(cons,_2),_3)))),app(app(app(if,app(app(eq,_0),_2)),app(app(cons,_0),app(app(merge,_1),_3))),app(app(cons,_2),app(app(merge,app(app(cons,_0),_1)),_3)))), app(app(map,_0),nil) -> nil, app(app(map,_0),app(app(cons,_1),_2)) -> app(app(cons,app(_0,_1)),app(app(map,_0),_2)), app(app(mult,0),_0) -> 0, app(app(mult,app(s,_0)),_1) -> app(app(plus,_1),app(app(mult,_0),_1)), app(app(plus,0),_0) -> 0, app(app(plus,app(s,_0)),_1) -> app(s,app(app(plus,_0),_1)), list1 -> app(app(map,app(mult,app(s,app(s,0)))),hamming), list2 -> app(app(map,app(mult,app(s,app(s,app(s,0))))),hamming), list3 -> app(app(map,app(mult,app(s,app(s,app(s,app(s,app(s,0))))))),hamming), hamming -> app(app(cons,app(s,0)),app(app(merge,list1),app(app(merge,list2),list3)))} ## 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... This DP problem is too complex! Aborting! Don't know whether this DP problem is finite. ## Some DP problems could not be proved finite. ## Now, we try to prove that one of these problems is infinite. ## Trying to find a loop (forward=true, backward=true, max=20) # max_depth=20, unfold_variables=false: # Iteration 0: no loop found, 6 unfolded rules generated. # Iteration 1: success, found a loop, 2 unfolded rules generated. Here is the successful unfolding. Let IR be the TRS under analysis. L0 = list1^# -> hamming^# [trans] is in U_IR^0. D = hamming^# -> list1^# is a dependency pair of IR. We build a composed triple from L0 and D. ==> L1 = list1^# -> list1^# [trans] is in U_IR^1. 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 = 89