WORST_CASE(Omega(0),?) Initial ITS Start location: l6 0: l0 -> l1 : oldX0^0'=oldX0^post0, x0^0'=x0^post0, __const_10^0'=__const_10^post0, oldX1^0'=oldX1^post0, (oldX1^0-oldX1^post0 == 0 /\ __const_10^0-__const_10^post0 == 0 /\ oldX0^post0-x0^0 == 0 /\ -1-oldX0^post0+x0^post0 == 0), cost: 1 2: l1 -> l0 : oldX0^0'=oldX0^post2, x0^0'=x0^post2, __const_10^0'=__const_10^post2, oldX1^0'=oldX1^post2, (-x0^0+oldX0^post2 == 0 /\ -__const_10^post2+__const_10^0 == 0 /\ -__const_10^0+oldX0^post2 <= 0 /\ -oldX1^post2+oldX1^0 == 0 /\ x0^post2-oldX0^post2 == 0), cost: 1 3: l1 -> l2 : oldX0^0'=oldX0^post3, x0^0'=x0^post3, __const_10^0'=__const_10^post3, oldX1^0'=oldX1^post3, (-__const_10^post3+__const_10^0 == 0 /\ 1+__const_10^0-oldX0^post3 <= 0 /\ -oldX1^post3+oldX1^0 == 0 /\ x0^post3-oldX0^post3 == 0 /\ -x0^0+oldX0^post3 == 0), cost: 1 1: l2 -> l3 : oldX0^0'=oldX0^post1, x0^0'=x0^post1, __const_10^0'=__const_10^post1, oldX1^0'=oldX1^post1, (0 == 0 /\ __const_10^0-__const_10^post1 == 0 /\ -x0^0+oldX0^post1 == 0 /\ -oldX1^post1+x0^post1 == 0), cost: 1 4: l4 -> l1 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, __const_10^0'=__const_10^post4, oldX1^0'=oldX1^post4, (-__const_10^post4+__const_10^0 == 0 /\ oldX0^post4-x0^0 == 0 /\ -oldX1^post4+oldX1^0 == 0 /\ x0^post4 == 0), cost: 1 5: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, __const_10^0'=__const_10^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ x0^post5-oldX1^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ __const_10^0-__const_10^post5 == 0), cost: 1 6: l5 -> l3 : oldX0^0'=oldX0^post6, x0^0'=x0^post6, __const_10^0'=__const_10^post6, oldX1^0'=oldX1^post6, (oldX0^0-oldX0^post6 == 0 /\ __const_10^0-__const_10^post6 == 0 /\ x0^0-x0^post6 == 0 /\ -oldX1^post6+oldX1^0 == 0), cost: 1 7: l5 -> l0 : oldX0^0'=oldX0^post7, x0^0'=x0^post7, __const_10^0'=__const_10^post7, oldX1^0'=oldX1^post7, (-oldX1^post7+oldX1^0 == 0 /\ -__const_10^post7+__const_10^0 == 0 /\ -x0^post7+x0^0 == 0 /\ oldX0^0-oldX0^post7 == 0), cost: 1 8: l5 -> l2 : oldX0^0'=oldX0^post8, x0^0'=x0^post8, __const_10^0'=__const_10^post8, oldX1^0'=oldX1^post8, (oldX1^0-oldX1^post8 == 0 /\ -__const_10^post8+__const_10^0 == 0 /\ -oldX0^post8+oldX0^0 == 0 /\ x0^0-x0^post8 == 0), cost: 1 9: l5 -> l1 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, __const_10^0'=__const_10^post9, oldX1^0'=oldX1^post9, (-oldX1^post9+oldX1^0 == 0 /\ x0^0-x0^post9 == 0 /\ oldX0^0-oldX0^post9 == 0 /\ __const_10^0-__const_10^post9 == 0), cost: 1 10: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, __const_10^0'=__const_10^post10, oldX1^0'=oldX1^post10, (oldX0^0-oldX0^post10 == 0 /\ __const_10^0-__const_10^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0 /\ x0^0-x0^post10 == 0), cost: 1 11: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, __const_10^0'=__const_10^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ -__const_10^post11+__const_10^0 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 Removed unreachable rules and leafs Start location: l6 0: l0 -> l1 : oldX0^0'=oldX0^post0, x0^0'=x0^post0, __const_10^0'=__const_10^post0, oldX1^0'=oldX1^post0, (oldX1^0-oldX1^post0 == 0 /\ __const_10^0-__const_10^post0 == 0 /\ oldX0^post0-x0^0 == 0 /\ -1-oldX0^post0+x0^post0 == 0), cost: 1 2: l1 -> l0 : oldX0^0'=oldX0^post2, x0^0'=x0^post2, __const_10^0'=__const_10^post2, oldX1^0'=oldX1^post2, (-x0^0+oldX0^post2 == 0 /\ -__const_10^post2+__const_10^0 == 0 /\ -__const_10^0+oldX0^post2 <= 0 /\ -oldX1^post2+oldX1^0 == 0 /\ x0^post2-oldX0^post2 == 0), cost: 1 4: l4 -> l1 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, __const_10^0'=__const_10^post4, oldX1^0'=oldX1^post4, (-__const_10^post4+__const_10^0 == 0 /\ oldX0^post4-x0^0 == 0 /\ -oldX1^post4+oldX1^0 == 0 /\ x0^post4 == 0), cost: 1 5: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, __const_10^0'=__const_10^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ x0^post5-oldX1^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ __const_10^0-__const_10^post5 == 0), cost: 1 7: l5 -> l0 : oldX0^0'=oldX0^post7, x0^0'=x0^post7, __const_10^0'=__const_10^post7, oldX1^0'=oldX1^post7, (-oldX1^post7+oldX1^0 == 0 /\ -__const_10^post7+__const_10^0 == 0 /\ -x0^post7+x0^0 == 0 /\ oldX0^0-oldX0^post7 == 0), cost: 1 9: l5 -> l1 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, __const_10^0'=__const_10^post9, oldX1^0'=oldX1^post9, (-oldX1^post9+oldX1^0 == 0 /\ x0^0-x0^post9 == 0 /\ oldX0^0-oldX0^post9 == 0 /\ __const_10^0-__const_10^post9 == 0), cost: 1 10: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, __const_10^0'=__const_10^post10, oldX1^0'=oldX1^post10, (oldX0^0-oldX0^post10 == 0 /\ __const_10^0-__const_10^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0 /\ x0^0-x0^post10 == 0), cost: 1 11: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, __const_10^0'=__const_10^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ -__const_10^post11+__const_10^0 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : oldX0^0'=oldX0^post0, x0^0'=x0^post0, __const_10^0'=__const_10^post0, oldX1^0'=oldX1^post0, (oldX1^0-oldX1^post0 == 0 /\ __const_10^0-__const_10^post0 == 0 /\ oldX0^post0-x0^0 == 0 /\ -1-oldX0^post0+x0^post0 == 0), cost: 1 New rule: l0 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 Applied preprocessing Original rule: l1 -> l0 : oldX0^0'=oldX0^post2, x0^0'=x0^post2, __const_10^0'=__const_10^post2, oldX1^0'=oldX1^post2, (-x0^0+oldX0^post2 == 0 /\ -__const_10^post2+__const_10^0 == 0 /\ -__const_10^0+oldX0^post2 <= 0 /\ -oldX1^post2+oldX1^0 == 0 /\ x0^post2-oldX0^post2 == 0), cost: 1 New rule: l1 -> l0 : oldX0^0'=x0^0, x0^0-__const_10^0 <= 0, cost: 1 Applied preprocessing Original rule: l4 -> l1 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, __const_10^0'=__const_10^post4, oldX1^0'=oldX1^post4, (-__const_10^post4+__const_10^0 == 0 /\ oldX0^post4-x0^0 == 0 /\ -oldX1^post4+oldX1^0 == 0 /\ x0^post4 == 0), cost: 1 New rule: l4 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, __const_10^0'=__const_10^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ x0^post5-oldX1^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ __const_10^0-__const_10^post5 == 0), cost: 1 New rule: l5 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 1 Applied preprocessing Original rule: l5 -> l0 : oldX0^0'=oldX0^post7, x0^0'=x0^post7, __const_10^0'=__const_10^post7, oldX1^0'=oldX1^post7, (-oldX1^post7+oldX1^0 == 0 /\ -__const_10^post7+__const_10^0 == 0 /\ -x0^post7+x0^0 == 0 /\ oldX0^0-oldX0^post7 == 0), cost: 1 New rule: l5 -> l0 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l1 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, __const_10^0'=__const_10^post9, oldX1^0'=oldX1^post9, (-oldX1^post9+oldX1^0 == 0 /\ x0^0-x0^post9 == 0 /\ oldX0^0-oldX0^post9 == 0 /\ __const_10^0-__const_10^post9 == 0), cost: 1 New rule: l5 -> l1 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, __const_10^0'=__const_10^post10, oldX1^0'=oldX1^post10, (oldX0^0-oldX0^post10 == 0 /\ __const_10^0-__const_10^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0 /\ x0^0-x0^post10 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, __const_10^0'=__const_10^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ -__const_10^post11+__const_10^0 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 New rule: l6 -> l5 : TRUE, cost: 1 Simplified rules Start location: l6 12: l0 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l1 -> l0 : oldX0^0'=x0^0, x0^0-__const_10^0 <= 0, cost: 1 14: l4 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 15: l5 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 1 16: l5 -> l0 : TRUE, cost: 1 17: l5 -> l1 : TRUE, cost: 1 18: l5 -> l4 : TRUE, cost: 1 19: l6 -> l5 : TRUE, cost: 1 Eliminating location l5 by chaining: Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 1 New rule: l6 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l0 : TRUE, cost: 1 New rule: l6 -> l0 : TRUE, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l1 : TRUE, cost: 1 New rule: l6 -> l1 : TRUE, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l4 : TRUE, cost: 1 New rule: l6 -> l4 : TRUE, cost: 2 Applied deletion Removed the following rules: 15 16 17 18 19 Eliminated locations on tree-shaped paths Start location: l6 12: l0 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l1 -> l0 : oldX0^0'=x0^0, x0^0-__const_10^0 <= 0, cost: 1 14: l4 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 20: l6 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 2 21: l6 -> l0 : TRUE, cost: 2 22: l6 -> l1 : TRUE, cost: 2 23: l6 -> l4 : TRUE, cost: 2 Eliminating location l4 by chaining: Applied chaining First rule: l6 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 2 Second rule: l4 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 New rule: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 Applied chaining First rule: l6 -> l4 : TRUE, cost: 2 Second rule: l4 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 New rule: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Applied deletion Removed the following rules: 14 20 23 Eliminated locations on tree-shaped paths Start location: l6 12: l0 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l1 -> l0 : oldX0^0'=x0^0, x0^0-__const_10^0 <= 0, cost: 1 21: l6 -> l0 : TRUE, cost: 2 22: l6 -> l1 : TRUE, cost: 2 24: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 25: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Eliminated location l0 Start location: l6 26: l1 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, x0^0-__const_10^0 <= 0, cost: 2 22: l6 -> l1 : TRUE, cost: 2 24: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 25: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Applied acceleration Original rule: l1 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, x0^0-__const_10^0 <= 0, cost: 2 New rule: l1 -> l1 : oldX0^0'=-1+n+x0^0, x0^0'=n+x0^0, (1-n-x0^0+__const_10^0 >= 0 /\ -1+n >= 0), cost: 2*n Sub-proof via acceration calculus written to file:///tmp/tmpnam_Kdlkab.txt Applied instantiation Original rule: l1 -> l1 : oldX0^0'=-1+n+x0^0, x0^0'=n+x0^0, (1-n-x0^0+__const_10^0 >= 0 /\ -1+n >= 0), cost: 2*n New rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, (0 >= 0 /\ -x0^0+__const_10^0 >= 0), cost: 2-2*x0^0+2*__const_10^0 Applied simplification Original rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, (0 >= 0 /\ -x0^0+__const_10^0 >= 0), cost: 2-2*x0^0+2*__const_10^0 New rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 Applied deletion Removed the following rules: 26 Accelerated simple loops Start location: l6 29: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 22: l6 -> l1 : TRUE, cost: 2 24: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 25: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Applied chaining First rule: l6 -> l1 : TRUE, cost: 2 Second rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 New rule: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 4-2*x0^0+2*__const_10^0 Applied chaining First rule: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 Second rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 New rule: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, oldX1^0'=oldX1^post5, __const_10^0 >= 0, cost: 5+2*__const_10^0 Applied chaining First rule: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Second rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 New rule: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, __const_10^0 >= 0, cost: 5+2*__const_10^0 Applied chaining First rule: l6 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Second rule: l1 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 2-2*x0^0+2*__const_10^0 New rule: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -1-x0^0+__const_10^0 >= 0, cost: 3-2*x0^0+2*__const_10^0 Applied deletion Removed the following rules: 29 Chained accelerated rules with incoming rules Start location: l6 22: l6 -> l1 : TRUE, cost: 2 24: l6 -> l1 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 25: l6 -> l1 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l1 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 30: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -x0^0+__const_10^0 >= 0, cost: 4-2*x0^0+2*__const_10^0 31: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, oldX1^0'=oldX1^post5, __const_10^0 >= 0, cost: 5+2*__const_10^0 32: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, __const_10^0 >= 0, cost: 5+2*__const_10^0 33: l6 -> l1 : oldX0^0'=__const_10^0, x0^0'=1+__const_10^0, -1-x0^0+__const_10^0 >= 0, cost: 3-2*x0^0+2*__const_10^0 Removed unreachable locations and irrelevant leafs Start location: l6 Computing asymptotic complexity Proved the following lower bound Complexity: Unknown Cpx degree: ? Solved cost: 0 Rule cost: 0