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