NO ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l5 0: l0 -> l1 : hi^0'=hi^post_1, lo^0'=lo^post_1, [ hi^post_1==hi^post_1 && lo^0==lo^post_1 ], cost: 1 1: l0 -> l1 : hi^0'=hi^post_2, lo^0'=lo^post_2, [ lo^post_2==lo^post_2 && hi^0==hi^post_2 ], cost: 1 4: l1 -> l2 : hi^0'=hi^post_5, lo^0'=lo^post_5, [ hi^0==hi^post_5 && lo^0==lo^post_5 ], cost: 1 2: l2 -> l3 : hi^0'=hi^post_3, lo^0'=lo^post_3, [ lo^0<=hi^0 && hi^0==hi^post_3 && lo^0==lo^post_3 ], cost: 1 3: l2 -> l0 : hi^0'=hi^post_4, lo^0'=lo^post_4, [ 1+hi^0<=lo^0 && hi^0==hi^post_4 && lo^0==lo^post_4 ], cost: 1 5: l4 -> l1 : hi^0'=hi^post_6, lo^0'=lo^post_6, [ hi^post_6==0 && lo^post_6==99 ], cost: 1 6: l5 -> l4 : hi^0'=hi^post_7, lo^0'=lo^post_7, [ hi^0==hi^post_7 && lo^0==lo^post_7 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 6: l5 -> l4 : hi^0'=hi^post_7, lo^0'=lo^post_7, [ hi^0==hi^post_7 && lo^0==lo^post_7 ], cost: 1 Removed unreachable and leaf rules: Start location: l5 0: l0 -> l1 : hi^0'=hi^post_1, lo^0'=lo^post_1, [ hi^post_1==hi^post_1 && lo^0==lo^post_1 ], cost: 1 1: l0 -> l1 : hi^0'=hi^post_2, lo^0'=lo^post_2, [ lo^post_2==lo^post_2 && hi^0==hi^post_2 ], cost: 1 4: l1 -> l2 : hi^0'=hi^post_5, lo^0'=lo^post_5, [ hi^0==hi^post_5 && lo^0==lo^post_5 ], cost: 1 3: l2 -> l0 : hi^0'=hi^post_4, lo^0'=lo^post_4, [ 1+hi^0<=lo^0 && hi^0==hi^post_4 && lo^0==lo^post_4 ], cost: 1 5: l4 -> l1 : hi^0'=hi^post_6, lo^0'=lo^post_6, [ hi^post_6==0 && lo^post_6==99 ], cost: 1 6: l5 -> l4 : hi^0'=hi^post_7, lo^0'=lo^post_7, [ hi^0==hi^post_7 && lo^0==lo^post_7 ], cost: 1 Simplified all rules, resulting in: Start location: l5 0: l0 -> l1 : hi^0'=hi^post_1, [], cost: 1 1: l0 -> l1 : lo^0'=lo^post_2, [], cost: 1 4: l1 -> l2 : [], cost: 1 3: l2 -> l0 : [ 1+hi^0<=lo^0 ], cost: 1 5: l4 -> l1 : hi^0'=0, lo^0'=99, [], cost: 1 6: l5 -> l4 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l5 0: l0 -> l1 : hi^0'=hi^post_1, [], cost: 1 1: l0 -> l1 : lo^0'=lo^post_2, [], cost: 1 8: l1 -> l0 : [ 1+hi^0<=lo^0 ], cost: 2 7: l5 -> l1 : hi^0'=0, lo^0'=99, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l5 9: l1 -> l1 : hi^0'=hi^post_1, [ 1+hi^0<=lo^0 ], cost: 3 10: l1 -> l1 : lo^0'=lo^post_2, [ 1+hi^0<=lo^0 ], cost: 3 7: l5 -> l1 : hi^0'=0, lo^0'=99, [], cost: 2 Accelerating simple loops of location 1. Accelerating the following rules: 9: l1 -> l1 : hi^0'=hi^post_1, [ 1+hi^0<=lo^0 ], cost: 3 10: l1 -> l1 : lo^0'=lo^post_2, [ 1+hi^0<=lo^0 ], cost: 3 [test] deduced pseudo-invariant hi^post_1-hi^0<=0, also trying -hi^post_1+hi^0<=-1 Accelerated rule 9 with non-termination, yielding the new rule 11. Accelerated rule 9 with non-termination, yielding the new rule 12. Accelerated rule 9 with backward acceleration, yielding the new rule 13. [test] deduced pseudo-invariant 1-lo^post_2+hi^0<=0, also trying -1+lo^post_2-hi^0<=-1 Accelerated rule 10 with non-termination, yielding the new rule 14. Accelerated rule 10 with non-termination, yielding the new rule 15. Accelerated rule 10 with backward acceleration, yielding the new rule 16. [accelerate] Nesting with 0 inner and 2 outer candidates Also removing duplicate rules: 12 15. Accelerated all simple loops using metering functions (where possible): Start location: l5 9: l1 -> l1 : hi^0'=hi^post_1, [ 1+hi^0<=lo^0 ], cost: 3 10: l1 -> l1 : lo^0'=lo^post_2, [ 1+hi^0<=lo^0 ], cost: 3 11: l1 -> [6] : [ 1+hi^0<=lo^0 && 1+hi^post_1<=lo^0 ], cost: NONTERM 13: l1 -> [6] : [ 1+hi^0<=lo^0 && hi^post_1-hi^0<=0 ], cost: NONTERM 14: l1 -> [6] : [ 1+hi^0<=lo^0 && 1+hi^0<=lo^post_2 ], cost: NONTERM 16: l1 -> [6] : [ 1+hi^0<=lo^0 && 1-lo^post_2+hi^0<=0 ], cost: NONTERM 7: l5 -> l1 : hi^0'=0, lo^0'=99, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l5 7: l5 -> l1 : hi^0'=0, lo^0'=99, [], cost: 2 17: l5 -> l1 : hi^0'=hi^post_1, lo^0'=99, [], cost: 5 18: l5 -> l1 : hi^0'=0, lo^0'=lo^post_2, [], cost: 5 19: l5 -> [6] : [], cost: NONTERM 20: l5 -> [6] : [], cost: NONTERM 21: l5 -> [6] : [], cost: NONTERM 22: l5 -> [6] : [], cost: NONTERM Removed unreachable locations (and leaf rules with constant cost): Start location: l5 19: l5 -> [6] : [], cost: NONTERM 20: l5 -> [6] : [], cost: NONTERM 21: l5 -> [6] : [], cost: NONTERM 22: l5 -> [6] : [], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l5 22: l5 -> [6] : [], cost: NONTERM Computing asymptotic complexity for rule 22 Guard is satisfiable, yielding nontermination Resulting cost NONTERM has complexity: Nonterm Found new complexity Nonterm. Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: [] NO