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