WORST_CASE(Omega(1),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l10 0: l0 -> l1 : i2^0'=i2^post_1, i34^0'=i34^post_1, i6^0'=i6^post_1, i8^0'=i8^post_1, [ 1+i34^0<=0 && i2^0==i2^post_1 && i34^0==i34^post_1 && i6^0==i6^post_1 && i8^0==i8^post_1 ], cost: 1 1: l0 -> l2 : i2^0'=i2^post_2, i34^0'=i34^post_2, i6^0'=i6^post_2, i8^0'=i8^post_2, [ 0<=i34^0 && i34^post_2==-1+i34^0 && i2^0==i2^post_2 && i6^0==i6^post_2 && i8^0==i8^post_2 ], cost: 1 12: l1 -> l4 : i2^0'=i2^post_13, i34^0'=i34^post_13, i6^0'=i6^post_13, i8^0'=i8^post_13, [ i6^post_13==999 && i2^0==i2^post_13 && i34^0==i34^post_13 && i8^0==i8^post_13 ], cost: 1 5: l2 -> l0 : i2^0'=i2^post_6, i34^0'=i34^post_6, i6^0'=i6^post_6, i8^0'=i8^post_6, [ i2^0==i2^post_6 && i34^0==i34^post_6 && i6^0==i6^post_6 && i8^0==i8^post_6 ], cost: 1 2: l3 -> l1 : i2^0'=i2^post_3, i34^0'=i34^post_3, i6^0'=i6^post_3, i8^0'=i8^post_3, [ 1<=i2^0 && i2^0==i2^post_3 && i34^0==i34^post_3 && i6^0==i6^post_3 && i8^0==i8^post_3 ], cost: 1 3: l3 -> l1 : i2^0'=i2^post_4, i34^0'=i34^post_4, i6^0'=i6^post_4, i8^0'=i8^post_4, [ 1+i2^0<=0 && i2^0==i2^post_4 && i34^0==i34^post_4 && i6^0==i6^post_4 && i8^0==i8^post_4 ], cost: 1 4: l3 -> l2 : i2^0'=i2^post_5, i34^0'=i34^post_5, i6^0'=i6^post_5, i8^0'=i8^post_5, [ i2^0<=0 && 0<=i2^0 && i34^post_5==999 && i2^0==i2^post_5 && i6^0==i6^post_5 && i8^0==i8^post_5 ], cost: 1 6: l4 -> l5 : i2^0'=i2^post_7, i34^0'=i34^post_7, i6^0'=i6^post_7, i8^0'=i8^post_7, [ i2^0==i2^post_7 && i34^0==i34^post_7 && i6^0==i6^post_7 && i8^0==i8^post_7 ], cost: 1 10: l5 -> l8 : i2^0'=i2^post_11, i34^0'=i34^post_11, i6^0'=i6^post_11, i8^0'=i8^post_11, [ 1+i6^0<=0 && i8^post_11==999 && i2^0==i2^post_11 && i34^0==i34^post_11 && i6^0==i6^post_11 ], cost: 1 11: l5 -> l4 : i2^0'=i2^post_12, i34^0'=i34^post_12, i6^0'=i6^post_12, i8^0'=i8^post_12, [ 0<=i6^0 && i6^post_12==-1+i6^0 && i2^0==i2^post_12 && i34^0==i34^post_12 && i8^0==i8^post_12 ], cost: 1 7: l6 -> l7 : i2^0'=i2^post_8, i34^0'=i34^post_8, i6^0'=i6^post_8, i8^0'=i8^post_8, [ 1+i8^0<=0 && i2^0==i2^post_8 && i34^0==i34^post_8 && i6^0==i6^post_8 && i8^0==i8^post_8 ], cost: 1 8: l6 -> l8 : i2^0'=i2^post_9, i34^0'=i34^post_9, i6^0'=i6^post_9, i8^0'=i8^post_9, [ 0<=i8^0 && i8^post_9==-1+i8^0 && i2^0==i2^post_9 && i34^0==i34^post_9 && i6^0==i6^post_9 ], cost: 1 9: l8 -> l6 : i2^0'=i2^post_10, i34^0'=i34^post_10, i6^0'=i6^post_10, i8^0'=i8^post_10, [ i2^0==i2^post_10 && i34^0==i34^post_10 && i6^0==i6^post_10 && i8^0==i8^post_10 ], cost: 1 13: l9 -> l3 : i2^0'=i2^post_14, i34^0'=i34^post_14, i6^0'=i6^post_14, i8^0'=i8^post_14, [ i2^post_14==1 && i34^0==i34^post_14 && i6^0==i6^post_14 && i8^0==i8^post_14 ], cost: 1 14: l10 -> l9 : i2^0'=i2^post_15, i34^0'=i34^post_15, i6^0'=i6^post_15, i8^0'=i8^post_15, [ i2^0==i2^post_15 && i34^0==i34^post_15 && i6^0==i6^post_15 && i8^0==i8^post_15 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 14: l10 -> l9 : i2^0'=i2^post_15, i34^0'=i34^post_15, i6^0'=i6^post_15, i8^0'=i8^post_15, [ i2^0==i2^post_15 && i34^0==i34^post_15 && i6^0==i6^post_15 && i8^0==i8^post_15 ], cost: 1 Removed unreachable and leaf rules: Start location: l10 0: l0 -> l1 : i2^0'=i2^post_1, i34^0'=i34^post_1, i6^0'=i6^post_1, i8^0'=i8^post_1, [ 1+i34^0<=0 && i2^0==i2^post_1 && i34^0==i34^post_1 && i6^0==i6^post_1 && i8^0==i8^post_1 ], cost: 1 1: l0 -> l2 : i2^0'=i2^post_2, i34^0'=i34^post_2, i6^0'=i6^post_2, i8^0'=i8^post_2, [ 0<=i34^0 && i34^post_2==-1+i34^0 && i2^0==i2^post_2 && i6^0==i6^post_2 && i8^0==i8^post_2 ], cost: 1 12: l1 -> l4 : i2^0'=i2^post_13, i34^0'=i34^post_13, i6^0'=i6^post_13, i8^0'=i8^post_13, [ i6^post_13==999 && i2^0==i2^post_13 && i34^0==i34^post_13 && i8^0==i8^post_13 ], cost: 1 5: l2 -> l0 : i2^0'=i2^post_6, i34^0'=i34^post_6, i6^0'=i6^post_6, i8^0'=i8^post_6, [ i2^0==i2^post_6 && i34^0==i34^post_6 && i6^0==i6^post_6 && i8^0==i8^post_6 ], cost: 1 2: l3 -> l1 : i2^0'=i2^post_3, i34^0'=i34^post_3, i6^0'=i6^post_3, i8^0'=i8^post_3, [ 1<=i2^0 && i2^0==i2^post_3 && i34^0==i34^post_3 && i6^0==i6^post_3 && i8^0==i8^post_3 ], cost: 1 3: l3 -> l1 : i2^0'=i2^post_4, i34^0'=i34^post_4, i6^0'=i6^post_4, i8^0'=i8^post_4, [ 1+i2^0<=0 && i2^0==i2^post_4 && i34^0==i34^post_4 && i6^0==i6^post_4 && i8^0==i8^post_4 ], cost: 1 4: l3 -> l2 : i2^0'=i2^post_5, i34^0'=i34^post_5, i6^0'=i6^post_5, i8^0'=i8^post_5, [ i2^0<=0 && 0<=i2^0 && i34^post_5==999 && i2^0==i2^post_5 && i6^0==i6^post_5 && i8^0==i8^post_5 ], cost: 1 6: l4 -> l5 : i2^0'=i2^post_7, i34^0'=i34^post_7, i6^0'=i6^post_7, i8^0'=i8^post_7, [ i2^0==i2^post_7 && i34^0==i34^post_7 && i6^0==i6^post_7 && i8^0==i8^post_7 ], cost: 1 10: l5 -> l8 : i2^0'=i2^post_11, i34^0'=i34^post_11, i6^0'=i6^post_11, i8^0'=i8^post_11, [ 1+i6^0<=0 && i8^post_11==999 && i2^0==i2^post_11 && i34^0==i34^post_11 && i6^0==i6^post_11 ], cost: 1 11: l5 -> l4 : i2^0'=i2^post_12, i34^0'=i34^post_12, i6^0'=i6^post_12, i8^0'=i8^post_12, [ 0<=i6^0 && i6^post_12==-1+i6^0 && i2^0==i2^post_12 && i34^0==i34^post_12 && i8^0==i8^post_12 ], cost: 1 8: l6 -> l8 : i2^0'=i2^post_9, i34^0'=i34^post_9, i6^0'=i6^post_9, i8^0'=i8^post_9, [ 0<=i8^0 && i8^post_9==-1+i8^0 && i2^0==i2^post_9 && i34^0==i34^post_9 && i6^0==i6^post_9 ], cost: 1 9: l8 -> l6 : i2^0'=i2^post_10, i34^0'=i34^post_10, i6^0'=i6^post_10, i8^0'=i8^post_10, [ i2^0==i2^post_10 && i34^0==i34^post_10 && i6^0==i6^post_10 && i8^0==i8^post_10 ], cost: 1 13: l9 -> l3 : i2^0'=i2^post_14, i34^0'=i34^post_14, i6^0'=i6^post_14, i8^0'=i8^post_14, [ i2^post_14==1 && i34^0==i34^post_14 && i6^0==i6^post_14 && i8^0==i8^post_14 ], cost: 1 14: l10 -> l9 : i2^0'=i2^post_15, i34^0'=i34^post_15, i6^0'=i6^post_15, i8^0'=i8^post_15, [ i2^0==i2^post_15 && i34^0==i34^post_15 && i6^0==i6^post_15 && i8^0==i8^post_15 ], cost: 1 Simplified all rules, resulting in: Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 6: l4 -> l5 : [], cost: 1 10: l5 -> l8 : i8^0'=999, [ 1+i6^0<=0 ], cost: 1 11: l5 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 1 8: l6 -> l8 : i8^0'=-1+i8^0, [ 0<=i8^0 ], cost: 1 9: l8 -> l6 : [], cost: 1 13: l9 -> l3 : i2^0'=1, [], cost: 1 14: l10 -> l9 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 6: l4 -> l5 : [], cost: 1 10: l5 -> l8 : i8^0'=999, [ 1+i6^0<=0 ], cost: 1 11: l5 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 1 16: l8 -> l8 : i8^0'=-1+i8^0, [ 0<=i8^0 ], cost: 2 15: l10 -> l3 : i2^0'=1, [], cost: 2 Accelerating simple loops of location 8. Accelerating the following rules: 16: l8 -> l8 : i8^0'=-1+i8^0, [ 0<=i8^0 ], cost: 2 Accelerated rule 16 with backward acceleration, yielding the new rule 17. [accelerate] Nesting with 1 inner and 1 outer candidates Removing the simple loops: 16. Accelerated all simple loops using metering functions (where possible): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 6: l4 -> l5 : [], cost: 1 10: l5 -> l8 : i8^0'=999, [ 1+i6^0<=0 ], cost: 1 11: l5 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 1 17: l8 -> l8 : i8^0'=-1, [ 1+i8^0>=0 ], cost: 2+2*i8^0 15: l10 -> l3 : i2^0'=1, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 6: l4 -> l5 : [], cost: 1 10: l5 -> l8 : i8^0'=999, [ 1+i6^0<=0 ], cost: 1 11: l5 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 1 18: l5 -> l8 : i8^0'=-1, [ 1+i6^0<=0 ], cost: 2001 15: l10 -> l3 : i2^0'=1, [], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 6: l4 -> l5 : [], cost: 1 11: l5 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 1 15: l10 -> l3 : i2^0'=1, [], cost: 2 Eliminated locations (on linear paths): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 19: l4 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 2 15: l10 -> l3 : i2^0'=1, [], cost: 2 Accelerating simple loops of location 4. Accelerating the following rules: 19: l4 -> l4 : i6^0'=-1+i6^0, [ 0<=i6^0 ], cost: 2 Accelerated rule 19 with backward acceleration, yielding the new rule 20. [accelerate] Nesting with 1 inner and 1 outer candidates Removing the simple loops: 19. Accelerated all simple loops using metering functions (where possible): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 20: l4 -> l4 : i6^0'=-1, [ 1+i6^0>=0 ], cost: 2+2*i6^0 15: l10 -> l3 : i2^0'=1, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l10 0: l0 -> l1 : [ 1+i34^0<=0 ], cost: 1 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 12: l1 -> l4 : i6^0'=999, [], cost: 1 21: l1 -> l4 : i6^0'=-1, [], cost: 2001 5: l2 -> l0 : [], cost: 1 2: l3 -> l1 : [ 1<=i2^0 ], cost: 1 3: l3 -> l1 : [ 1+i2^0<=0 ], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 15: l10 -> l3 : i2^0'=1, [], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: l10 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 5: l2 -> l0 : [], cost: 1 4: l3 -> l2 : i34^0'=999, [ i2^0==0 ], cost: 1 15: l10 -> l3 : i2^0'=1, [], cost: 2 Eliminated locations (on linear paths): Start location: l10 1: l0 -> l2 : i34^0'=-1+i34^0, [ 0<=i34^0 ], cost: 1 5: l2 -> l0 : [], cost: 1 Removed unreachable locations (and leaf rules with constant cost): Start location: l10 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l10 Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Constant Cpx degree: 0 Solved cost: 1 Rule cost: 1 Rule guard: [ i2^0==i2^post_15 && i34^0==i34^post_15 && i6^0==i6^post_15 && i8^0==i8^post_15 ] WORST_CASE(Omega(1),?)