WORST_CASE(Omega(n^2),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l11 0: l0 -> l1 : a^0'=a^post_1, b^0'=b^post_1, i^0'=i^post_1, n^0'=n^post_1, tmp^0'=tmp^post_1, [ a^0<=0 && a^0==a^post_1 && b^0==b^post_1 && i^0==i^post_1 && n^0==n^post_1 && tmp^0==tmp^post_1 ], cost: 1 1: l0 -> l2 : a^0'=a^post_2, b^0'=b^post_2, i^0'=i^post_2, n^0'=n^post_2, tmp^0'=tmp^post_2, [ 1<=a^0 && a^post_2==-1+a^0 && b^post_2==1+b^0 && i^0==i^post_2 && n^0==n^post_2 && tmp^0==tmp^post_2 ], cost: 1 3: l2 -> l4 : a^0'=a^post_4, b^0'=b^post_4, i^0'=i^post_4, n^0'=n^post_4, tmp^0'=tmp^post_4, [ a^0==a^post_4 && b^0==b^post_4 && i^0==i^post_4 && n^0==n^post_4 && tmp^0==tmp^post_4 ], cost: 1 2: l3 -> l0 : a^0'=a^post_3, b^0'=b^post_3, i^0'=i^post_3, n^0'=n^post_3, tmp^0'=tmp^post_3, [ a^0==a^post_3 && b^0==b^post_3 && i^0==i^post_3 && n^0==n^post_3 && tmp^0==tmp^post_3 ], cost: 1 12: l4 -> l3 : a^0'=a^post_13, b^0'=b^post_13, i^0'=i^post_13, n^0'=n^post_13, tmp^0'=tmp^post_13, [ b^0<=0 && a^0==a^post_13 && b^0==b^post_13 && i^0==i^post_13 && n^0==n^post_13 && tmp^0==tmp^post_13 ], cost: 1 13: l4 -> l6 : a^0'=a^post_14, b^0'=b^post_14, i^0'=i^post_14, n^0'=n^post_14, tmp^0'=tmp^post_14, [ 1<=b^0 && b^post_14==-1+b^0 && i^post_14==-1+a^0 && a^0==a^post_14 && n^0==n^post_14 && tmp^0==tmp^post_14 ], cost: 1 4: l5 -> l6 : a^0'=a^post_5, b^0'=b^post_5, i^0'=i^post_5, n^0'=n^post_5, tmp^0'=tmp^post_5, [ i^post_5==-1+i^0 && a^0==a^post_5 && b^0==b^post_5 && n^0==n^post_5 && tmp^0==tmp^post_5 ], cost: 1 5: l6 -> l7 : a^0'=a^post_6, b^0'=b^post_6, i^0'=i^post_6, n^0'=n^post_6, tmp^0'=tmp^post_6, [ a^0==a^post_6 && b^0==b^post_6 && i^0==i^post_6 && n^0==n^post_6 && tmp^0==tmp^post_6 ], cost: 1 10: l7 -> l2 : a^0'=a^post_11, b^0'=b^post_11, i^0'=i^post_11, n^0'=n^post_11, tmp^0'=tmp^post_11, [ i^0<=0 && a^0==a^post_11 && b^0==b^post_11 && i^0==i^post_11 && n^0==n^post_11 && tmp^0==tmp^post_11 ], cost: 1 11: l7 -> l9 : a^0'=a^post_12, b^0'=b^post_12, i^0'=i^post_12, n^0'=n^post_12, tmp^0'=tmp^post_12, [ 1<=i^0 && tmp^post_12==tmp^post_12 && a^0==a^post_12 && b^0==b^post_12 && i^0==i^post_12 && n^0==n^post_12 ], cost: 1 6: l8 -> l5 : a^0'=a^post_7, b^0'=b^post_7, i^0'=i^post_7, n^0'=n^post_7, tmp^0'=tmp^post_7, [ a^post_7==-1+a^0 && b^post_7==1+b^0 && i^0==i^post_7 && n^0==n^post_7 && tmp^0==tmp^post_7 ], cost: 1 7: l9 -> l5 : a^0'=a^post_8, b^0'=b^post_8, i^0'=i^post_8, n^0'=n^post_8, tmp^0'=tmp^post_8, [ tmp^0<=0 && 0<=tmp^0 && a^0==a^post_8 && b^0==b^post_8 && i^0==i^post_8 && n^0==n^post_8 && tmp^0==tmp^post_8 ], cost: 1 8: l9 -> l8 : a^0'=a^post_9, b^0'=b^post_9, i^0'=i^post_9, n^0'=n^post_9, tmp^0'=tmp^post_9, [ 1<=tmp^0 && a^0==a^post_9 && b^0==b^post_9 && i^0==i^post_9 && n^0==n^post_9 && tmp^0==tmp^post_9 ], cost: 1 9: l9 -> l8 : a^0'=a^post_10, b^0'=b^post_10, i^0'=i^post_10, n^0'=n^post_10, tmp^0'=tmp^post_10, [ 1+tmp^0<=0 && a^0==a^post_10 && b^0==b^post_10 && i^0==i^post_10 && n^0==n^post_10 && tmp^0==tmp^post_10 ], cost: 1 14: l10 -> l3 : a^0'=a^post_15, b^0'=b^post_15, i^0'=i^post_15, n^0'=n^post_15, tmp^0'=tmp^post_15, [ a^post_15==n^0 && b^post_15==0 && i^0==i^post_15 && n^0==n^post_15 && tmp^0==tmp^post_15 ], cost: 1 15: l11 -> l10 : a^0'=a^post_16, b^0'=b^post_16, i^0'=i^post_16, n^0'=n^post_16, tmp^0'=tmp^post_16, [ a^0==a^post_16 && b^0==b^post_16 && i^0==i^post_16 && n^0==n^post_16 && tmp^0==tmp^post_16 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 15: l11 -> l10 : a^0'=a^post_16, b^0'=b^post_16, i^0'=i^post_16, n^0'=n^post_16, tmp^0'=tmp^post_16, [ a^0==a^post_16 && b^0==b^post_16 && i^0==i^post_16 && n^0==n^post_16 && tmp^0==tmp^post_16 ], cost: 1 Removed unreachable and leaf rules: Start location: l11 1: l0 -> l2 : a^0'=a^post_2, b^0'=b^post_2, i^0'=i^post_2, n^0'=n^post_2, tmp^0'=tmp^post_2, [ 1<=a^0 && a^post_2==-1+a^0 && b^post_2==1+b^0 && i^0==i^post_2 && n^0==n^post_2 && tmp^0==tmp^post_2 ], cost: 1 3: l2 -> l4 : a^0'=a^post_4, b^0'=b^post_4, i^0'=i^post_4, n^0'=n^post_4, tmp^0'=tmp^post_4, [ a^0==a^post_4 && b^0==b^post_4 && i^0==i^post_4 && n^0==n^post_4 && tmp^0==tmp^post_4 ], cost: 1 2: l3 -> l0 : a^0'=a^post_3, b^0'=b^post_3, i^0'=i^post_3, n^0'=n^post_3, tmp^0'=tmp^post_3, [ a^0==a^post_3 && b^0==b^post_3 && i^0==i^post_3 && n^0==n^post_3 && tmp^0==tmp^post_3 ], cost: 1 12: l4 -> l3 : a^0'=a^post_13, b^0'=b^post_13, i^0'=i^post_13, n^0'=n^post_13, tmp^0'=tmp^post_13, [ b^0<=0 && a^0==a^post_13 && b^0==b^post_13 && i^0==i^post_13 && n^0==n^post_13 && tmp^0==tmp^post_13 ], cost: 1 13: l4 -> l6 : a^0'=a^post_14, b^0'=b^post_14, i^0'=i^post_14, n^0'=n^post_14, tmp^0'=tmp^post_14, [ 1<=b^0 && b^post_14==-1+b^0 && i^post_14==-1+a^0 && a^0==a^post_14 && n^0==n^post_14 && tmp^0==tmp^post_14 ], cost: 1 4: l5 -> l6 : a^0'=a^post_5, b^0'=b^post_5, i^0'=i^post_5, n^0'=n^post_5, tmp^0'=tmp^post_5, [ i^post_5==-1+i^0 && a^0==a^post_5 && b^0==b^post_5 && n^0==n^post_5 && tmp^0==tmp^post_5 ], cost: 1 5: l6 -> l7 : a^0'=a^post_6, b^0'=b^post_6, i^0'=i^post_6, n^0'=n^post_6, tmp^0'=tmp^post_6, [ a^0==a^post_6 && b^0==b^post_6 && i^0==i^post_6 && n^0==n^post_6 && tmp^0==tmp^post_6 ], cost: 1 10: l7 -> l2 : a^0'=a^post_11, b^0'=b^post_11, i^0'=i^post_11, n^0'=n^post_11, tmp^0'=tmp^post_11, [ i^0<=0 && a^0==a^post_11 && b^0==b^post_11 && i^0==i^post_11 && n^0==n^post_11 && tmp^0==tmp^post_11 ], cost: 1 11: l7 -> l9 : a^0'=a^post_12, b^0'=b^post_12, i^0'=i^post_12, n^0'=n^post_12, tmp^0'=tmp^post_12, [ 1<=i^0 && tmp^post_12==tmp^post_12 && a^0==a^post_12 && b^0==b^post_12 && i^0==i^post_12 && n^0==n^post_12 ], cost: 1 6: l8 -> l5 : a^0'=a^post_7, b^0'=b^post_7, i^0'=i^post_7, n^0'=n^post_7, tmp^0'=tmp^post_7, [ a^post_7==-1+a^0 && b^post_7==1+b^0 && i^0==i^post_7 && n^0==n^post_7 && tmp^0==tmp^post_7 ], cost: 1 7: l9 -> l5 : a^0'=a^post_8, b^0'=b^post_8, i^0'=i^post_8, n^0'=n^post_8, tmp^0'=tmp^post_8, [ tmp^0<=0 && 0<=tmp^0 && a^0==a^post_8 && b^0==b^post_8 && i^0==i^post_8 && n^0==n^post_8 && tmp^0==tmp^post_8 ], cost: 1 8: l9 -> l8 : a^0'=a^post_9, b^0'=b^post_9, i^0'=i^post_9, n^0'=n^post_9, tmp^0'=tmp^post_9, [ 1<=tmp^0 && a^0==a^post_9 && b^0==b^post_9 && i^0==i^post_9 && n^0==n^post_9 && tmp^0==tmp^post_9 ], cost: 1 9: l9 -> l8 : a^0'=a^post_10, b^0'=b^post_10, i^0'=i^post_10, n^0'=n^post_10, tmp^0'=tmp^post_10, [ 1+tmp^0<=0 && a^0==a^post_10 && b^0==b^post_10 && i^0==i^post_10 && n^0==n^post_10 && tmp^0==tmp^post_10 ], cost: 1 14: l10 -> l3 : a^0'=a^post_15, b^0'=b^post_15, i^0'=i^post_15, n^0'=n^post_15, tmp^0'=tmp^post_15, [ a^post_15==n^0 && b^post_15==0 && i^0==i^post_15 && n^0==n^post_15 && tmp^0==tmp^post_15 ], cost: 1 15: l11 -> l10 : a^0'=a^post_16, b^0'=b^post_16, i^0'=i^post_16, n^0'=n^post_16, tmp^0'=tmp^post_16, [ a^0==a^post_16 && b^0==b^post_16 && i^0==i^post_16 && n^0==n^post_16 && tmp^0==tmp^post_16 ], cost: 1 Simplified all rules, resulting in: Start location: l11 1: l0 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 1 3: l2 -> l4 : [], cost: 1 2: l3 -> l0 : [], cost: 1 12: l4 -> l3 : [ b^0<=0 ], cost: 1 13: l4 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 1 4: l5 -> l6 : i^0'=-1+i^0, [], cost: 1 5: l6 -> l7 : [], cost: 1 10: l7 -> l2 : [ i^0<=0 ], cost: 1 11: l7 -> l9 : tmp^0'=tmp^post_12, [ 1<=i^0 ], cost: 1 6: l8 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, [], cost: 1 7: l9 -> l5 : [ tmp^0==0 ], cost: 1 8: l9 -> l8 : [ 1<=tmp^0 ], cost: 1 9: l9 -> l8 : [ 1+tmp^0<=0 ], cost: 1 14: l10 -> l3 : a^0'=n^0, b^0'=0, [], cost: 1 15: l11 -> l10 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l11 3: l2 -> l4 : [], cost: 1 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 12: l4 -> l3 : [ b^0<=0 ], cost: 1 13: l4 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 1 4: l5 -> l6 : i^0'=-1+i^0, [], cost: 1 5: l6 -> l7 : [], cost: 1 10: l7 -> l2 : [ i^0<=0 ], cost: 1 11: l7 -> l9 : tmp^0'=tmp^post_12, [ 1<=i^0 ], cost: 1 6: l8 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, [], cost: 1 7: l9 -> l5 : [ tmp^0==0 ], cost: 1 8: l9 -> l8 : [ 1<=tmp^0 ], cost: 1 9: l9 -> l8 : [ 1+tmp^0<=0 ], cost: 1 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 19: l2 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 2 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 4: l5 -> l6 : i^0'=-1+i^0, [], cost: 1 20: l6 -> l2 : [ i^0<=0 ], cost: 2 21: l6 -> l9 : tmp^0'=tmp^post_12, [ 1<=i^0 ], cost: 2 7: l9 -> l5 : [ tmp^0==0 ], cost: 1 22: l9 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=tmp^0 ], cost: 2 23: l9 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, [ 1+tmp^0<=0 ], cost: 2 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 19: l2 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 2 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 4: l5 -> l6 : i^0'=-1+i^0, [], cost: 1 20: l6 -> l2 : [ i^0<=0 ], cost: 2 24: l6 -> l5 : tmp^0'=tmp^post_12, [ 1<=i^0 && tmp^post_12==0 ], cost: 3 25: l6 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1<=tmp^post_12 ], cost: 4 26: l6 -> l5 : a^0'=-1+a^0, b^0'=1+b^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1+tmp^post_12<=0 ], cost: 4 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 19: l2 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 2 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 20: l6 -> l2 : [ i^0<=0 ], cost: 2 27: l6 -> l6 : i^0'=-1+i^0, tmp^0'=tmp^post_12, [ 1<=i^0 && tmp^post_12==0 ], cost: 4 28: l6 -> l6 : a^0'=-1+a^0, b^0'=1+b^0, i^0'=-1+i^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1<=tmp^post_12 ], cost: 5 29: l6 -> l6 : a^0'=-1+a^0, b^0'=1+b^0, i^0'=-1+i^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1+tmp^post_12<=0 ], cost: 5 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Accelerating simple loops of location 6. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 27: l6 -> l6 : i^0'=-1+i^0, tmp^0'=0, [ 1<=i^0 ], cost: 4 28: l6 -> l6 : a^0'=-1+a^0, b^0'=1+b^0, i^0'=-1+i^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1<=tmp^post_12 ], cost: 5 29: l6 -> l6 : a^0'=-1+a^0, b^0'=1+b^0, i^0'=-1+i^0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1+tmp^post_12<=0 ], cost: 5 Accelerated rule 27 with metering function i^0, yielding the new rule 30. Accelerated rule 28 with metering function i^0, yielding the new rule 31. Accelerated rule 29 with metering function i^0, yielding the new rule 32. Removing the simple loops: 27 28 29. Accelerated all simple loops using metering functions (where possible): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 19: l2 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 2 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 20: l6 -> l2 : [ i^0<=0 ], cost: 2 30: l6 -> l6 : i^0'=0, tmp^0'=0, [ 1<=i^0 ], cost: 4*i^0 31: l6 -> l6 : a^0'=-i^0+a^0, b^0'=i^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1<=tmp^post_12 ], cost: 5*i^0 32: l6 -> l6 : a^0'=-i^0+a^0, b^0'=i^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=i^0 && 1+tmp^post_12<=0 ], cost: 5*i^0 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 19: l2 -> l6 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 ], cost: 2 33: l2 -> l6 : b^0'=-1+b^0, i^0'=0, tmp^0'=0, [ 1<=b^0 && 1<=-1+a^0 ], cost: -2+4*a^0 34: l2 -> l6 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1<=tmp^post_12 ], cost: -3+5*a^0 35: l2 -> l6 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1+tmp^post_12<=0 ], cost: -3+5*a^0 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 20: l6 -> l2 : [ i^0<=0 ], cost: 2 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 36: l2 -> l2 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 && -1+a^0<=0 ], cost: 4 37: l2 -> l2 : b^0'=-1+b^0, i^0'=0, tmp^0'=0, [ 1<=b^0 && 1<=-1+a^0 ], cost: 4*a^0 38: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1<=tmp^post_12 ], cost: -1+5*a^0 39: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1+tmp^post_12<=0 ], cost: -1+5*a^0 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Accelerating simple loops of location 2. Accelerating the following rules: 36: l2 -> l2 : b^0'=-1+b^0, i^0'=-1+a^0, [ 1<=b^0 && -1+a^0<=0 ], cost: 4 37: l2 -> l2 : b^0'=-1+b^0, i^0'=0, tmp^0'=0, [ 1<=b^0 && 1<=-1+a^0 ], cost: 4*a^0 38: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1<=tmp^post_12 ], cost: -1+5*a^0 39: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1+tmp^post_12<=0 ], cost: -1+5*a^0 Accelerated rule 36 with metering function b^0, yielding the new rule 40. Accelerated rule 37 with metering function b^0, yielding the new rule 41. Found no metering function for rule 38. Found no metering function for rule 39. Removing the simple loops: 36 37. Accelerated all simple loops using metering functions (where possible): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 38: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1<=tmp^post_12 ], cost: -1+5*a^0 39: l2 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=b^0 && 1<=-1+a^0 && 1+tmp^post_12<=0 ], cost: -1+5*a^0 40: l2 -> l2 : b^0'=0, i^0'=-1+a^0, [ 1<=b^0 && -1+a^0<=0 ], cost: 4*b^0 41: l2 -> l2 : b^0'=0, i^0'=0, tmp^0'=0, [ 1<=b^0 && 1<=-1+a^0 ], cost: 4*a^0*b^0 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l11 18: l2 -> l3 : [ b^0<=0 ], cost: 2 17: l3 -> l2 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 ], cost: 2 42: l3 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=1+b^0 && 1<=-2+a^0 && 1<=tmp^post_12 ], cost: -4+5*a^0 43: l3 -> l2 : a^0'=1, b^0'=-2+a^0+b^0, i^0'=0, tmp^0'=tmp^post_12, [ 1<=1+b^0 && 1<=-2+a^0 && 1+tmp^post_12<=0 ], cost: -4+5*a^0 44: l3 -> l2 : a^0'=-1+a^0, b^0'=0, i^0'=-2+a^0, [ 1<=a^0 && 1<=1+b^0 && -2+a^0<=0 ], cost: 6+4*b^0 45: l3 -> l2 : a^0'=-1+a^0, b^0'=0, i^0'=0, tmp^0'=0, [ 1<=1+b^0 && 1<=-2+a^0 ], cost: 2+4*(-1+a^0)*(1+b^0) 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l11 46: l3 -> l3 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 && 1+b^0<=0 ], cost: 4 47: l3 -> l3 : a^0'=-1+a^0, b^0'=0, i^0'=-2+a^0, [ 1<=a^0 && 1<=1+b^0 && -2+a^0<=0 ], cost: 8+4*b^0 48: l3 -> l3 : a^0'=-1+a^0, b^0'=0, i^0'=0, tmp^0'=0, [ 1<=1+b^0 && 1<=-2+a^0 ], cost: 4+4*(-1+a^0)*(1+b^0) 49: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1<=tmp^post_12 ], cost: -4+5*a^0 50: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1+tmp^post_12<=0 ], cost: -4+5*a^0 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Accelerating simple loops of location 3. Accelerating the following rules: 46: l3 -> l3 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 && 1+b^0<=0 ], cost: 4 47: l3 -> l3 : a^0'=-1+a^0, b^0'=0, i^0'=-2+a^0, [ 1<=a^0 && 1<=1+b^0 && -2+a^0<=0 ], cost: 8+4*b^0 48: l3 -> l3 : a^0'=-1+a^0, b^0'=0, i^0'=0, tmp^0'=0, [ 1<=1+b^0 && 1<=-2+a^0 ], cost: 4+4*(-1+a^0)*(1+b^0) Found no metering function for rule 46. Accelerated rule 47 with metering function a^0, yielding the new rule 51. Accelerated rule 48 with metering function -2+a^0, yielding the new rule 52. Removing the simple loops: 47 48. Accelerated all simple loops using metering functions (where possible): Start location: l11 46: l3 -> l3 : a^0'=-1+a^0, b^0'=1+b^0, [ 1<=a^0 && 1+b^0<=0 ], cost: 4 49: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1<=tmp^post_12 ], cost: -4+5*a^0 50: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1+tmp^post_12<=0 ], cost: -4+5*a^0 51: l3 -> l3 : a^0'=0, b^0'=0, i^0'=-1, [ 1<=a^0 && 1<=1+b^0 && -2+a^0<=0 ], cost: 8*a^0 52: l3 -> l3 : a^0'=2, b^0'=0, i^0'=0, tmp^0'=0, [ 1<=1+b^0 && 1<=-2+a^0 ], cost: -4+4*(-2+a^0)*a^0-2*(-2+a^0)^2+2*a^0 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l11 49: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1<=tmp^post_12 ], cost: -4+5*a^0 50: l3 -> [14] : [ 1<=1+b^0 && 1<=-2+a^0 && 1+tmp^post_12<=0 ], cost: -4+5*a^0 16: l11 -> l3 : a^0'=n^0, b^0'=0, [], cost: 2 53: l11 -> l3 : a^0'=0, b^0'=0, i^0'=-1, [ 1<=n^0 && -2+n^0<=0 ], cost: 2+8*n^0 54: l11 -> l3 : a^0'=2, b^0'=0, i^0'=0, tmp^0'=0, [ 1<=-2+n^0 ], cost: -2+4*n^0*(-2+n^0)+2*n^0-2*(-2+n^0)^2 Eliminated locations (on tree-shaped paths): Start location: l11 55: l11 -> [14] : a^0'=n^0, b^0'=0, [ 1<=-2+n^0 && 1<=tmp^post_12 ], cost: -2+5*n^0 56: l11 -> [14] : a^0'=n^0, b^0'=0, [ 1<=-2+n^0 && 1+tmp^post_12<=0 ], cost: -2+5*n^0 57: l11 -> [16] : [ 1<=n^0 && -2+n^0<=0 ], cost: 2+8*n^0 58: l11 -> [16] : [ 1<=-2+n^0 ], cost: -2+4*n^0*(-2+n^0)+2*n^0-2*(-2+n^0)^2 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l11 55: l11 -> [14] : a^0'=n^0, b^0'=0, [ 1<=-2+n^0 && 1<=tmp^post_12 ], cost: -2+5*n^0 56: l11 -> [14] : a^0'=n^0, b^0'=0, [ 1<=-2+n^0 && 1+tmp^post_12<=0 ], cost: -2+5*n^0 57: l11 -> [16] : [ 1<=n^0 && -2+n^0<=0 ], cost: 2+8*n^0 58: l11 -> [16] : [ 1<=-2+n^0 ], cost: -2+4*n^0*(-2+n^0)+2*n^0-2*(-2+n^0)^2 Computing asymptotic complexity for rule 55 Solved the limit problem by the following transformations: Created initial limit problem: -2+5*n^0 (+), -2+n^0 (+/+!), tmp^post_12 (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {n^0==n,tmp^post_12==n} resulting limit problem: [solved] Solution: n^0 / n tmp^post_12 / n Resulting cost -2+5*n has complexity: Poly(n^1) Found new complexity Poly(n^1). Computing asymptotic complexity for rule 58 Solved the limit problem by the following transformations: Created initial limit problem: -2+n^0 (+/+!), -10+2*n^0^2+2*n^0 (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {n^0==n} resulting limit problem: [solved] Solution: n^0 / n Resulting cost -10+2*n^2+2*n has complexity: Poly(n^2) Found new complexity Poly(n^2). Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Poly(n^2) Cpx degree: 2 Solved cost: -10+2*n^2+2*n Rule cost: -2+4*n^0*(-2+n^0)+2*n^0-2*(-2+n^0)^2 Rule guard: [ 1<=-2+n^0 ] WORST_CASE(Omega(n^2),?)