NO ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l10 0: l0 -> l1 : Stored^0'=Stored^post_1, tmp1^0'=tmp1^post_1, tmp___02^0'=tmp___02^post_1, [ tmp1^0<=0 && 0<=tmp1^0 && Stored^post_1==1 && tmp1^0==tmp1^post_1 && tmp___02^0==tmp___02^post_1 ], cost: 1 1: l0 -> l2 : Stored^0'=Stored^post_2, tmp1^0'=tmp1^post_2, tmp___02^0'=tmp___02^post_2, [ 1<=tmp1^0 && Stored^0==Stored^post_2 && tmp1^0==tmp1^post_2 && tmp___02^0==tmp___02^post_2 ], cost: 1 2: l0 -> l2 : Stored^0'=Stored^post_3, tmp1^0'=tmp1^post_3, tmp___02^0'=tmp___02^post_3, [ 1+tmp1^0<=0 && Stored^0==Stored^post_3 && tmp1^0==tmp1^post_3 && tmp___02^0==tmp___02^post_3 ], cost: 1 9: l1 -> l8 : Stored^0'=Stored^post_10, tmp1^0'=tmp1^post_10, tmp___02^0'=tmp___02^post_10, [ Stored^0==Stored^post_10 && tmp1^0==tmp1^post_10 && tmp___02^0==tmp___02^post_10 ], cost: 1 13: l2 -> l7 : Stored^0'=Stored^post_14, tmp1^0'=tmp1^post_14, tmp___02^0'=tmp___02^post_14, [ Stored^0==Stored^post_14 && tmp1^0==tmp1^post_14 && tmp___02^0==tmp___02^post_14 ], cost: 1 3: l3 -> l0 : Stored^0'=Stored^post_4, tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_4, [ tmp1^post_4==tmp1^post_4 && Stored^0==Stored^post_4 && tmp___02^0==tmp___02^post_4 ], cost: 1 4: l4 -> l1 : Stored^0'=Stored^post_5, tmp1^0'=tmp1^post_5, tmp___02^0'=tmp___02^post_5, [ tmp___02^0<=0 && 0<=tmp___02^0 && Stored^0==Stored^post_5 && tmp1^0==tmp1^post_5 && tmp___02^0==tmp___02^post_5 ], cost: 1 5: l4 -> l3 : Stored^0'=Stored^post_6, tmp1^0'=tmp1^post_6, tmp___02^0'=tmp___02^post_6, [ 1<=tmp___02^0 && Stored^0==Stored^post_6 && tmp1^0==tmp1^post_6 && tmp___02^0==tmp___02^post_6 ], cost: 1 6: l4 -> l3 : Stored^0'=Stored^post_7, tmp1^0'=tmp1^post_7, tmp___02^0'=tmp___02^post_7, [ 1+tmp___02^0<=0 && Stored^0==Stored^post_7 && tmp1^0==tmp1^post_7 && tmp___02^0==tmp___02^post_7 ], cost: 1 7: l5 -> l6 : Stored^0'=Stored^post_8, tmp1^0'=tmp1^post_8, tmp___02^0'=tmp___02^post_8, [ Stored^0==Stored^post_8 && tmp1^0==tmp1^post_8 && tmp___02^0==tmp___02^post_8 ], cost: 1 8: l7 -> l4 : Stored^0'=Stored^post_9, tmp1^0'=tmp1^post_9, tmp___02^0'=tmp___02^post_9, [ tmp___02^post_9==tmp___02^post_9 && Stored^0==Stored^post_9 && tmp1^0==tmp1^post_9 ], cost: 1 10: l8 -> l5 : Stored^0'=Stored^post_11, tmp1^0'=tmp1^post_11, tmp___02^0'=tmp___02^post_11, [ 2<=Stored^0 && Stored^0==Stored^post_11 && tmp1^0==tmp1^post_11 && tmp___02^0==tmp___02^post_11 ], cost: 1 11: l8 -> l5 : Stored^0'=Stored^post_12, tmp1^0'=tmp1^post_12, tmp___02^0'=tmp___02^post_12, [ 1+Stored^0<=1 && Stored^0==Stored^post_12 && tmp1^0==tmp1^post_12 && tmp___02^0==tmp___02^post_12 ], cost: 1 12: l8 -> l5 : Stored^0'=Stored^post_13, tmp1^0'=tmp1^post_13, tmp___02^0'=tmp___02^post_13, [ Stored^0<=1 && 1<=Stored^0 && Stored^post_13==0 && tmp1^0==tmp1^post_13 && tmp___02^0==tmp___02^post_13 ], cost: 1 14: l9 -> l7 : Stored^0'=Stored^post_15, tmp1^0'=tmp1^post_15, tmp___02^0'=tmp___02^post_15, [ Stored^post_15==0 && tmp1^0==tmp1^post_15 && tmp___02^0==tmp___02^post_15 ], cost: 1 15: l10 -> l9 : Stored^0'=Stored^post_16, tmp1^0'=tmp1^post_16, tmp___02^0'=tmp___02^post_16, [ Stored^0==Stored^post_16 && tmp1^0==tmp1^post_16 && tmp___02^0==tmp___02^post_16 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 15: l10 -> l9 : Stored^0'=Stored^post_16, tmp1^0'=tmp1^post_16, tmp___02^0'=tmp___02^post_16, [ Stored^0==Stored^post_16 && tmp1^0==tmp1^post_16 && tmp___02^0==tmp___02^post_16 ], cost: 1 Removed unreachable and leaf rules: Start location: l10 1: l0 -> l2 : Stored^0'=Stored^post_2, tmp1^0'=tmp1^post_2, tmp___02^0'=tmp___02^post_2, [ 1<=tmp1^0 && Stored^0==Stored^post_2 && tmp1^0==tmp1^post_2 && tmp___02^0==tmp___02^post_2 ], cost: 1 2: l0 -> l2 : Stored^0'=Stored^post_3, tmp1^0'=tmp1^post_3, tmp___02^0'=tmp___02^post_3, [ 1+tmp1^0<=0 && Stored^0==Stored^post_3 && tmp1^0==tmp1^post_3 && tmp___02^0==tmp___02^post_3 ], cost: 1 13: l2 -> l7 : Stored^0'=Stored^post_14, tmp1^0'=tmp1^post_14, tmp___02^0'=tmp___02^post_14, [ Stored^0==Stored^post_14 && tmp1^0==tmp1^post_14 && tmp___02^0==tmp___02^post_14 ], cost: 1 3: l3 -> l0 : Stored^0'=Stored^post_4, tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_4, [ tmp1^post_4==tmp1^post_4 && Stored^0==Stored^post_4 && tmp___02^0==tmp___02^post_4 ], cost: 1 5: l4 -> l3 : Stored^0'=Stored^post_6, tmp1^0'=tmp1^post_6, tmp___02^0'=tmp___02^post_6, [ 1<=tmp___02^0 && Stored^0==Stored^post_6 && tmp1^0==tmp1^post_6 && tmp___02^0==tmp___02^post_6 ], cost: 1 6: l4 -> l3 : Stored^0'=Stored^post_7, tmp1^0'=tmp1^post_7, tmp___02^0'=tmp___02^post_7, [ 1+tmp___02^0<=0 && Stored^0==Stored^post_7 && tmp1^0==tmp1^post_7 && tmp___02^0==tmp___02^post_7 ], cost: 1 8: l7 -> l4 : Stored^0'=Stored^post_9, tmp1^0'=tmp1^post_9, tmp___02^0'=tmp___02^post_9, [ tmp___02^post_9==tmp___02^post_9 && Stored^0==Stored^post_9 && tmp1^0==tmp1^post_9 ], cost: 1 14: l9 -> l7 : Stored^0'=Stored^post_15, tmp1^0'=tmp1^post_15, tmp___02^0'=tmp___02^post_15, [ Stored^post_15==0 && tmp1^0==tmp1^post_15 && tmp___02^0==tmp___02^post_15 ], cost: 1 15: l10 -> l9 : Stored^0'=Stored^post_16, tmp1^0'=tmp1^post_16, tmp___02^0'=tmp___02^post_16, [ Stored^0==Stored^post_16 && tmp1^0==tmp1^post_16 && tmp___02^0==tmp___02^post_16 ], cost: 1 Simplified all rules, resulting in: Start location: l10 1: l0 -> l2 : [ 1<=tmp1^0 ], cost: 1 2: l0 -> l2 : [ 1+tmp1^0<=0 ], cost: 1 13: l2 -> l7 : [], cost: 1 3: l3 -> l0 : tmp1^0'=tmp1^post_4, [], cost: 1 5: l4 -> l3 : [ 1<=tmp___02^0 ], cost: 1 6: l4 -> l3 : [ 1+tmp___02^0<=0 ], cost: 1 8: l7 -> l4 : tmp___02^0'=tmp___02^post_9, [], cost: 1 14: l9 -> l7 : Stored^0'=0, [], cost: 1 15: l10 -> l9 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l10 1: l0 -> l2 : [ 1<=tmp1^0 ], cost: 1 2: l0 -> l2 : [ 1+tmp1^0<=0 ], cost: 1 13: l2 -> l7 : [], cost: 1 3: l3 -> l0 : tmp1^0'=tmp1^post_4, [], cost: 1 5: l4 -> l3 : [ 1<=tmp___02^0 ], cost: 1 6: l4 -> l3 : [ 1+tmp___02^0<=0 ], cost: 1 8: l7 -> l4 : tmp___02^0'=tmp___02^post_9, [], cost: 1 16: l10 -> l7 : Stored^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l10 13: l2 -> l7 : [], cost: 1 19: l3 -> l2 : tmp1^0'=tmp1^post_4, [ 1<=tmp1^post_4 ], cost: 2 20: l3 -> l2 : tmp1^0'=tmp1^post_4, [ 1+tmp1^post_4<=0 ], cost: 2 17: l7 -> l3 : tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 ], cost: 2 18: l7 -> l3 : tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 ], cost: 2 16: l10 -> l7 : Stored^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l10 13: l2 -> l7 : [], cost: 1 21: l7 -> l2 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1<=tmp1^post_4 ], cost: 4 22: l7 -> l2 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1+tmp1^post_4<=0 ], cost: 4 23: l7 -> l2 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1<=tmp1^post_4 ], cost: 4 24: l7 -> l2 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1+tmp1^post_4<=0 ], cost: 4 16: l10 -> l7 : Stored^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l10 25: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1<=tmp1^post_4 ], cost: 5 26: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1+tmp1^post_4<=0 ], cost: 5 27: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1<=tmp1^post_4 ], cost: 5 28: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1+tmp1^post_4<=0 ], cost: 5 16: l10 -> l7 : Stored^0'=0, [], cost: 2 Accelerating simple loops of location 7. Accelerating the following rules: 25: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1<=tmp1^post_4 ], cost: 5 26: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1<=tmp___02^post_9 && 1+tmp1^post_4<=0 ], cost: 5 27: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1<=tmp1^post_4 ], cost: 5 28: l7 -> l7 : tmp1^0'=tmp1^post_4, tmp___02^0'=tmp___02^post_9, [ 1+tmp___02^post_9<=0 && 1+tmp1^post_4<=0 ], cost: 5 Accelerated rule 25 with non-termination, yielding the new rule 29. Accelerated rule 26 with non-termination, yielding the new rule 30. Accelerated rule 27 with non-termination, yielding the new rule 31. Accelerated rule 28 with non-termination, yielding the new rule 32. [accelerate] Nesting with 0 inner and 0 outer candidates Removing the simple loops: 25 26 27 28. Accelerated all simple loops using metering functions (where possible): Start location: l10 29: l7 -> [11] : [ 1<=tmp___02^post_9 && 1<=tmp1^post_4 ], cost: NONTERM 30: l7 -> [11] : [ 1<=tmp___02^post_9 && 1+tmp1^post_4<=0 ], cost: NONTERM 31: l7 -> [11] : [ 1+tmp___02^post_9<=0 && 1<=tmp1^post_4 ], cost: NONTERM 32: l7 -> [11] : [ 1+tmp___02^post_9<=0 && 1+tmp1^post_4<=0 ], cost: NONTERM 16: l10 -> l7 : Stored^0'=0, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l10 16: l10 -> l7 : Stored^0'=0, [], cost: 2 33: l10 -> [11] : [], cost: NONTERM 34: l10 -> [11] : [], cost: NONTERM 35: l10 -> [11] : [], cost: NONTERM 36: l10 -> [11] : [], cost: NONTERM Removed unreachable locations (and leaf rules with constant cost): Start location: l10 33: l10 -> [11] : [], cost: NONTERM 34: l10 -> [11] : [], cost: NONTERM 35: l10 -> [11] : [], cost: NONTERM 36: l10 -> [11] : [], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l10 36: l10 -> [11] : [], cost: NONTERM Computing asymptotic complexity for rule 36 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