WORST_CASE(Omega(1),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l8 0: l0 -> l1 : 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 && oldX3^post_1==oldX3^post_1 && x0^post_1==oldX2^post_1 && x1^post_1==oldX3^post_1 ], cost: 1 1: l2 -> l1 : 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 && oldX2^post_2==oldX2^post_2 && oldX3^post_2==oldX3^post_2 && x0^post_2==oldX2^post_2 && x1^post_2==oldX3^post_2 ], cost: 1 2: l2 -> l3 : 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 && x0^post_3==1+oldX0^post_3 && x1^post_3==-2+oldX1^post_3 && oldX2^0==oldX2^post_3 && oldX3^0==oldX3^post_3 ], cost: 1 9: l3 -> l6 : 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, [ oldX0^post_10==x0^0 && oldX1^post_10==x1^0 && x0^post_10==oldX0^post_10 && x1^post_10==oldX1^post_10 && oldX2^0==oldX2^post_10 && oldX3^0==oldX3^post_10 ], cost: 1 3: l4 -> l0 : 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 && oldX1^post_4<=2 && x0^post_4==oldX0^post_4 && x1^post_4==oldX1^post_4 && oldX2^0==oldX2^post_4 && oldX3^0==oldX3^post_4 ], cost: 1 4: l4 -> l2 : 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 && 3<=oldX1^post_5 && x0^post_5==oldX0^post_5 && x1^post_5==oldX1^post_5 && oldX2^0==oldX2^post_5 && oldX3^0==oldX3^post_5 ], cost: 1 5: l5 -> l1 : 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 && oldX3^post_6==oldX3^post_6 && x0^post_6==oldX2^post_6 && x1^post_6==oldX3^post_6 ], cost: 1 6: l5 -> l3 : 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 && x0^post_7==-1+oldX0^post_7 && x1^post_7==1+oldX1^post_7 && oldX2^0==oldX2^post_7 && oldX3^0==oldX3^post_7 ], cost: 1 7: l6 -> l4 : 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 && oldX0^post_8<=0 && x0^post_8==oldX0^post_8 && x1^post_8==oldX1^post_8 && oldX2^0==oldX2^post_8 && oldX3^0==oldX3^post_8 ], cost: 1 8: l6 -> l5 : 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 && 1<=oldX0^post_9 && x0^post_9==oldX0^post_9 && x1^post_9==oldX1^post_9 && oldX2^0==oldX2^post_9 && oldX3^0==oldX3^post_9 ], cost: 1 10: l7 -> l0 : 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, [ 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 : 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, [ 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 -> l1 : 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, [ 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 -> l4 : 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, [ 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 -> l5 : 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, [ 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 : 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, [ 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: l7 -> l3 : 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, [ 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 17: l8 -> l7 : oldX0^0'=oldX0^post_18, oldX1^0'=oldX1^post_18, oldX2^0'=oldX2^post_18, oldX3^0'=oldX3^post_18, x0^0'=x0^post_18, x1^0'=x1^post_18, [ oldX0^0==oldX0^post_18 && oldX1^0==oldX1^post_18 && oldX2^0==oldX2^post_18 && oldX3^0==oldX3^post_18 && x0^0==x0^post_18 && x1^0==x1^post_18 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 17: l8 -> l7 : oldX0^0'=oldX0^post_18, oldX1^0'=oldX1^post_18, oldX2^0'=oldX2^post_18, oldX3^0'=oldX3^post_18, x0^0'=x0^post_18, x1^0'=x1^post_18, [ oldX0^0==oldX0^post_18 && oldX1^0==oldX1^post_18 && oldX2^0==oldX2^post_18 && oldX3^0==oldX3^post_18 && x0^0==x0^post_18 && x1^0==x1^post_18 ], cost: 1 Removed unreachable and leaf rules: Start location: l8 2: l2 -> l3 : 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 && x0^post_3==1+oldX0^post_3 && x1^post_3==-2+oldX1^post_3 && oldX2^0==oldX2^post_3 && oldX3^0==oldX3^post_3 ], cost: 1 9: l3 -> l6 : 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, [ oldX0^post_10==x0^0 && oldX1^post_10==x1^0 && x0^post_10==oldX0^post_10 && x1^post_10==oldX1^post_10 && oldX2^0==oldX2^post_10 && oldX3^0==oldX3^post_10 ], cost: 1 4: l4 -> l2 : 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 && 3<=oldX1^post_5 && x0^post_5==oldX0^post_5 && x1^post_5==oldX1^post_5 && oldX2^0==oldX2^post_5 && oldX3^0==oldX3^post_5 ], cost: 1 6: l5 -> l3 : 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 && x0^post_7==-1+oldX0^post_7 && x1^post_7==1+oldX1^post_7 && oldX2^0==oldX2^post_7 && oldX3^0==oldX3^post_7 ], cost: 1 7: l6 -> l4 : 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 && oldX0^post_8<=0 && x0^post_8==oldX0^post_8 && x1^post_8==oldX1^post_8 && oldX2^0==oldX2^post_8 && oldX3^0==oldX3^post_8 ], cost: 1 8: l6 -> l5 : 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 && 1<=oldX0^post_9 && x0^post_9==oldX0^post_9 && x1^post_9==oldX1^post_9 && oldX2^0==oldX2^post_9 && oldX3^0==oldX3^post_9 ], cost: 1 11: l7 -> l2 : 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, [ 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 -> l4 : 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, [ 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 -> l5 : 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, [ 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 : 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, [ 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: l7 -> l3 : 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, [ 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 17: l8 -> l7 : oldX0^0'=oldX0^post_18, oldX1^0'=oldX1^post_18, oldX2^0'=oldX2^post_18, oldX3^0'=oldX3^post_18, x0^0'=x0^post_18, x1^0'=x1^post_18, [ oldX0^0==oldX0^post_18 && oldX1^0==oldX1^post_18 && oldX2^0==oldX2^post_18 && oldX3^0==oldX3^post_18 && x0^0==x0^post_18 && x1^0==x1^post_18 ], cost: 1 Simplified all rules, resulting in: Start location: l8 2: l2 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 1 9: l3 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 1 4: l4 -> l2 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 3<=x1^0 ], cost: 1 6: l5 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 1 7: l6 -> l4 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ x0^0<=0 ], cost: 1 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 11: l7 -> l2 : [], cost: 1 13: l7 -> l4 : [], cost: 1 14: l7 -> l5 : [], cost: 1 15: l7 -> l6 : [], cost: 1 16: l7 -> l3 : [], cost: 1 17: l8 -> l7 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on tree-shaped paths): Start location: l8 2: l2 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 1 9: l3 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 1 4: l4 -> l2 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 3<=x1^0 ], cost: 1 6: l5 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 1 7: l6 -> l4 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ x0^0<=0 ], cost: 1 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 18: l8 -> l2 : [], cost: 2 19: l8 -> l4 : [], cost: 2 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 22: l8 -> l3 : [], cost: 2 Eliminated location l2 (as a last resort): Start location: l8 9: l3 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 1 23: l4 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 2 6: l5 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 1 7: l6 -> l4 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ x0^0<=0 ], cost: 1 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 19: l8 -> l4 : [], cost: 2 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 22: l8 -> l3 : [], cost: 2 24: l8 -> l3 : oldX0^0'=x0^0, oldX1^0'=x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 3 Eliminated location l3 (as a last resort): Start location: l8 27: l4 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 3 25: l5 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 2 7: l6 -> l4 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ x0^0<=0 ], cost: 1 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 19: l8 -> l4 : [], cost: 2 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 28: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 4 Eliminated location l4 (as a last resort): Start location: l8 25: l5 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 2 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 29: l6 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ x0^0<=0 && 3<=x1^0 ], cost: 4 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 28: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 4 30: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 5 Accelerating simple loops of location 6. Accelerating the following rules: 29: l6 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ x0^0<=0 && 3<=x1^0 ], cost: 4 Accelerated rule 29 with backward acceleration, yielding the new rule 31. [accelerate] Nesting with 1 inner and 1 outer candidates Removing the simple loops: 29. Accelerated all simple loops using metering functions (where possible): Start location: l8 25: l5 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 2 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 31: l6 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 4*k 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 28: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 4 30: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 5 Chained accelerated rules (with incoming rules): Start location: l8 25: l5 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 2 33: l5 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 2+4*k 8: l6 -> l5 : oldX0^0'=x0^0, oldX1^0'=x1^0, [ 1<=x0^0 ], cost: 1 20: l8 -> l5 : [], cost: 2 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 28: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 4 30: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 5 32: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 2+4*k 34: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 35: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 4+4*k 36: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ 3<=x1^0 && k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k Eliminated location l5 (as a last resort): Start location: l8 37: l6 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [ 1<=x0^0 ], cost: 3 38: l6 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 3+4*k 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 28: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 4 30: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [ 3<=x1^0 ], cost: 5 32: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 2+4*k 34: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 35: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 4+4*k 36: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ 3<=x1^0 && k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k 39: l8 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 4 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k Merged rules: Start location: l8 37: l6 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [ 1<=x0^0 ], cost: 3 38: l6 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 3+4*k 21: l8 -> l6 : [], cost: 2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 39: l8 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [], cost: 4 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 41: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 5 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k Applied pruning (of leafs and parallel rules): Start location: l8 37: l6 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [ 1<=x0^0 ], cost: 3 38: l6 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 3+4*k 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 41: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 5 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k Accelerating simple loops of location 6. Accelerating the following rules: 37: l6 -> l6 : oldX0^0'=-1+x0^0, oldX1^0'=1+x1^0, x0^0'=-1+x0^0, x1^0'=1+x1^0, [ 1<=x0^0 ], cost: 3 38: l6 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 3+4*k Accelerated rule 37 with backward acceleration, yielding the new rule 44. Accelerated rule 38 with backward acceleration, yielding the new rule 45. [accelerate] Nesting with 2 inner and 2 outer candidates Removing the simple loops: 37 38. Accelerated all simple loops using metering functions (where possible): Start location: l8 44: l6 -> l6 : oldX0^0'=0, oldX1^0'=x0^0+x1^0, x0^0'=0, x1^0'=x0^0+x1^0, [ x0^0>=1 ], cost: 3*x0^0 45: l6 -> l6 : oldX0^0'=x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=x0^0-k_2+k*k_2, x1^0'=x1^0+k_2-2*k*k_2, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && k_2>=1 && 3<=2+x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 3*k_2+4*k*k_2 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 41: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 5 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k Chained accelerated rules (with incoming rules): Start location: l8 26: l8 -> l6 : oldX0^0'=x0^0, oldX1^0'=x1^0, [], cost: 3 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 41: l8 -> l6 : oldX0^0'=1+x0^0, oldX1^0'=-2+x1^0, x0^0'=1+x0^0, x1^0'=-2+x1^0, [], cost: 5 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k 46: l8 -> l6 : oldX0^0'=0, oldX1^0'=x0^0+x1^0, x0^0'=0, x1^0'=x0^0+x1^0, [ x0^0>=1 ], cost: 3+3*x0^0 47: l8 -> l6 : oldX0^0'=0, oldX1^0'=-2+2*x0^0+x1^0, x0^0'=0, x1^0'=-2+2*x0^0+x1^0, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 ], cost: 15-4*x0^0 48: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+x0^0+x1^0, x0^0'=0, x1^0'=-1+x0^0+x1^0, [ 1+x0^0>=1 ], cost: 8+3*x0^0 49: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 10-4*x0^0 50: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ -x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 8-4*x0^0 51: l8 -> l6 : oldX0^0'=x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=x0^0-k_2+k*k_2, x1^0'=x1^0+k_2-2*k*k_2, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && k_2>=1 && 3<=2+x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 3+3*k_2+4*k*k_2 52: l8 -> l6 : oldX0^0'=3-(-2+x0^0)*(-1+k_2)-x0^0-k_2, oldX1^0'=-7+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2, x0^0'=1-(-2+x0^0)*k_2-k_2, x1^0'=-3+2*x0^0+2*(-2+x0^0)*k_2+x1^0+k_2, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 && 1-x0^0<=0 && k_2>=1 && 3<=-5+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2 ], cost: 12-4*x0^0-4*(-2+x0^0)*k_2+3*k_2 53: l8 -> l6 : oldX0^0'=1+x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=-2+x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=1+x0^0-k_2+k*k_2, x1^0'=-2+x1^0+k_2-2*k*k_2, [ 1<=1+x0^0 && k>=1 && -1+x0^0+k<=0 && k_2>=1 && 3<=x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 5+3*k_2+4*k*k_2 54: l8 -> l6 : oldX0^0'=2-x0^0-k_2-(-1+x0^0)*(-1+k_2), oldX1^0'=-4+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2), x0^0'=1-(-1+x0^0)*k_2-k_2, x1^0'=-2+2*x0^0+x1^0+2*(-1+x0^0)*k_2+k_2, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 && -x0^0<=0 && k_2>=1 && 3<=-2+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2) ], cost: 7-4*x0^0-4*(-1+x0^0)*k_2+3*k_2 55: l8 -> l6 : oldX0^0'=1-x0^0-x0^0*(-1+k_2)-k_2, oldX1^0'=-2+4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2, x0^0'=1-k_2-x0^0*k_2, x1^0'=-2+2*x0^0+x1^0+k_2+2*x0^0*k_2, [ -x0^0>=1 && 3<=2*x0^0+x1^0 && -1-x0^0<=0 && k_2>=1 && 3<=4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2 ], cost: 5-4*x0^0+3*k_2-4*x0^0*k_2 Removed unreachable locations (and leaf rules with constant cost): Start location: l8 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k 46: l8 -> l6 : oldX0^0'=0, oldX1^0'=x0^0+x1^0, x0^0'=0, x1^0'=x0^0+x1^0, [ x0^0>=1 ], cost: 3+3*x0^0 47: l8 -> l6 : oldX0^0'=0, oldX1^0'=-2+2*x0^0+x1^0, x0^0'=0, x1^0'=-2+2*x0^0+x1^0, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 ], cost: 15-4*x0^0 48: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+x0^0+x1^0, x0^0'=0, x1^0'=-1+x0^0+x1^0, [ 1+x0^0>=1 ], cost: 8+3*x0^0 49: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 10-4*x0^0 50: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ -x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 8-4*x0^0 51: l8 -> l6 : oldX0^0'=x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=x0^0-k_2+k*k_2, x1^0'=x1^0+k_2-2*k*k_2, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && k_2>=1 && 3<=2+x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 3+3*k_2+4*k*k_2 52: l8 -> l6 : oldX0^0'=3-(-2+x0^0)*(-1+k_2)-x0^0-k_2, oldX1^0'=-7+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2, x0^0'=1-(-2+x0^0)*k_2-k_2, x1^0'=-3+2*x0^0+2*(-2+x0^0)*k_2+x1^0+k_2, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 && 1-x0^0<=0 && k_2>=1 && 3<=-5+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2 ], cost: 12-4*x0^0-4*(-2+x0^0)*k_2+3*k_2 53: l8 -> l6 : oldX0^0'=1+x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=-2+x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=1+x0^0-k_2+k*k_2, x1^0'=-2+x1^0+k_2-2*k*k_2, [ 1<=1+x0^0 && k>=1 && -1+x0^0+k<=0 && k_2>=1 && 3<=x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 5+3*k_2+4*k*k_2 54: l8 -> l6 : oldX0^0'=2-x0^0-k_2-(-1+x0^0)*(-1+k_2), oldX1^0'=-4+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2), x0^0'=1-(-1+x0^0)*k_2-k_2, x1^0'=-2+2*x0^0+x1^0+2*(-1+x0^0)*k_2+k_2, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 && -x0^0<=0 && k_2>=1 && 3<=-2+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2) ], cost: 7-4*x0^0-4*(-1+x0^0)*k_2+3*k_2 55: l8 -> l6 : oldX0^0'=1-x0^0-x0^0*(-1+k_2)-k_2, oldX1^0'=-2+4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2, x0^0'=1-k_2-x0^0*k_2, x1^0'=-2+2*x0^0+x1^0+k_2+2*x0^0*k_2, [ -x0^0>=1 && 3<=2*x0^0+x1^0 && -1-x0^0<=0 && k_2>=1 && 3<=4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2 ], cost: 5-4*x0^0+3*k_2-4*x0^0*k_2 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l8 40: l8 -> l6 : oldX0^0'=-1+x0^0+k, oldX1^0'=1+x1^0-2*k, x0^0'=-1+x0^0+k, x1^0'=1+x1^0-2*k, [ k>=1 && -2+x0^0+k<=0 && 3<=3+x1^0-2*k ], cost: 4+4*k 42: l8 -> l6 : oldX0^0'=x0^0+k, oldX1^0'=x1^0-2*k, x0^0'=x0^0+k, x1^0'=x1^0-2*k, [ k>=1 && -1+x0^0+k<=0 && 3<=2+x1^0-2*k ], cost: 3+4*k 43: l8 -> l6 : oldX0^0'=1+x0^0+k, oldX1^0'=-2+x1^0-2*k, x0^0'=1+x0^0+k, x1^0'=-2+x1^0-2*k, [ k>=1 && x0^0+k<=0 && 3<=x1^0-2*k ], cost: 5+4*k 46: l8 -> l6 : oldX0^0'=0, oldX1^0'=x0^0+x1^0, x0^0'=0, x1^0'=x0^0+x1^0, [ x0^0>=1 ], cost: 3+3*x0^0 47: l8 -> l6 : oldX0^0'=0, oldX1^0'=-2+2*x0^0+x1^0, x0^0'=0, x1^0'=-2+2*x0^0+x1^0, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 ], cost: 15-4*x0^0 48: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+x0^0+x1^0, x0^0'=0, x1^0'=-1+x0^0+x1^0, [ 1+x0^0>=1 ], cost: 8+3*x0^0 49: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 10-4*x0^0 50: l8 -> l6 : oldX0^0'=0, oldX1^0'=-1+2*x0^0+x1^0, x0^0'=0, x1^0'=-1+2*x0^0+x1^0, [ -x0^0>=1 && 3<=2*x0^0+x1^0 ], cost: 8-4*x0^0 51: l8 -> l6 : oldX0^0'=x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=x0^0-k_2+k*k_2, x1^0'=x1^0+k_2-2*k*k_2, [ 1<=x0^0 && k>=1 && -2+x0^0+k<=0 && k_2>=1 && 3<=2+x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 3+3*k_2+4*k*k_2 52: l8 -> l6 : oldX0^0'=3-(-2+x0^0)*(-1+k_2)-x0^0-k_2, oldX1^0'=-7+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2, x0^0'=1-(-2+x0^0)*k_2-k_2, x1^0'=-3+2*x0^0+2*(-2+x0^0)*k_2+x1^0+k_2, [ 2-x0^0>=1 && 3<=-1+2*x0^0+x1^0 && 1-x0^0<=0 && k_2>=1 && 3<=-5+2*(-2+x0^0)*(-1+k_2)+4*x0^0+x1^0+k_2 ], cost: 12-4*x0^0-4*(-2+x0^0)*k_2+3*k_2 53: l8 -> l6 : oldX0^0'=1+x0^0+k+k*(-1+k_2)-k_2, oldX1^0'=-2+x1^0-2*k-2*k*(-1+k_2)+k_2, x0^0'=1+x0^0-k_2+k*k_2, x1^0'=-2+x1^0+k_2-2*k*k_2, [ 1<=1+x0^0 && k>=1 && -1+x0^0+k<=0 && k_2>=1 && 3<=x1^0-2*k-2*k*(-1+k_2)+k_2 ], cost: 5+3*k_2+4*k*k_2 54: l8 -> l6 : oldX0^0'=2-x0^0-k_2-(-1+x0^0)*(-1+k_2), oldX1^0'=-4+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2), x0^0'=1-(-1+x0^0)*k_2-k_2, x1^0'=-2+2*x0^0+x1^0+2*(-1+x0^0)*k_2+k_2, [ 1-x0^0>=1 && 3<=2*x0^0+x1^0 && -x0^0<=0 && k_2>=1 && 3<=-2+4*x0^0+x1^0+k_2+2*(-1+x0^0)*(-1+k_2) ], cost: 7-4*x0^0-4*(-1+x0^0)*k_2+3*k_2 55: l8 -> l6 : oldX0^0'=1-x0^0-x0^0*(-1+k_2)-k_2, oldX1^0'=-2+4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2, x0^0'=1-k_2-x0^0*k_2, x1^0'=-2+2*x0^0+x1^0+k_2+2*x0^0*k_2, [ -x0^0>=1 && 3<=2*x0^0+x1^0 && -1-x0^0<=0 && k_2>=1 && 3<=4*x0^0+x1^0+2*x0^0*(-1+k_2)+k_2 ], cost: 5-4*x0^0+3*k_2-4*x0^0*k_2 Computing asymptotic complexity for rule 51 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 52 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 53 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 54 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 55 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 40 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 42 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 43 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 46 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 48 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 47 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 49 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 50 Resulting cost 0 has complexity: Unknown 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: [ oldX0^0==oldX0^post_18 && oldX1^0==oldX1^post_18 && oldX2^0==oldX2^post_18 && oldX3^0==oldX3^post_18 && x0^0==x0^post_18 && x1^0==x1^post_18 ] WORST_CASE(Omega(1),?)