NO Initial ITS Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P0, arg2'=arg2P0, (arg1 > 0 /\ 1+x140 > 0 /\ 1+x150 > 0 /\ -1+arg2 > 0 /\ arg1-arg1P0 == 0 /\ -arg2P0+arg2 == 0 /\ -2*x160+x150 == 0), cost: 1 2: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P2, arg2'=arg2P2, (arg1 > 0 /\ 1+x240 > 0 /\ -1-2*x260+x250 == 0 /\ -1+arg2 > 0 /\ 1+x250 > 0 /\ arg1-arg1P2 == 0 /\ -arg2P2+arg2 == 0), cost: 1 1: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=arg1P1, arg2'=arg2P1, (arg1 > 0 /\ -arg1P1-x190 == 0 /\ -2+x200-2*x210 < 0 /\ x200-2*x210 >= 0 /\ x200-2*x210 == 0 /\ -1+arg2 > 0 /\ 1+x200 > 0 /\ 1+x190 > 0), cost: 1 3: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1-2*x310+x300 == 0 /\ 1+x300 > 0 /\ -1+arg2 > 0 /\ -2*x310+x300 >= 0 /\ -2-2*x310+x300 < 0 /\ 1+arg1P3 > 0), cost: 1 6: f131_0_loop_LT -> f163_0_loop_GE : arg1'=arg1P6, arg2'=arg2P6, (6+arg1 > 0 /\ -1+arg1 < 0 /\ -6+arg1 < 0 /\ arg1-arg1P6 == 0), cost: 1 4: f130_0_loop_GT -> f163_0_loop_GE : arg1'=arg1P4, arg2'=arg2P4, (-arg1 == 0 /\ -arg1P4 == 0), cost: 1 5: f130_0_loop_GT -> f163_0_loop_GE : arg1'=arg1P5, arg2'=arg2P5, (arg1 > 0 /\ -1+arg1-arg1P5 == 0 /\ -6+arg1 < 0), cost: 1 7: f163_0_loop_GE -> f130_0_loop_GT : arg1'=arg1P7, arg2'=arg2P7, (1+arg1 > 0 /\ arg1-arg1P7 == 0), cost: 1 8: f163_0_loop_GE -> f131_0_loop_LT : arg1'=arg1P8, arg2'=arg2P8, (arg1 < 0 /\ 1+arg1-arg1P8 == 0), cost: 1 9: __init -> f1_0_main_Load : arg1'=arg1P9, arg2'=arg2P9, TRUE, cost: 1 Applied preprocessing Original rule: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P0, arg2'=arg2P0, (arg1 > 0 /\ 1+x140 > 0 /\ 1+x150 > 0 /\ -1+arg2 > 0 /\ arg1-arg1P0 == 0 /\ -arg2P0+arg2 == 0 /\ -2*x160+x150 == 0), cost: 1 New rule: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 1+2*x160 > 0 /\ -1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=arg1P1, arg2'=arg2P1, (arg1 > 0 /\ -arg1P1-x190 == 0 /\ -2+x200-2*x210 < 0 /\ x200-2*x210 >= 0 /\ x200-2*x210 == 0 /\ -1+arg2 > 0 /\ 1+x200 > 0 /\ 1+x190 > 0), cost: 1 New rule: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (arg1 > 0 /\ 1+2*x210 > 0 /\ -1+arg2 > 0 /\ 1+x190 > 0), cost: 1 Applied preprocessing Original rule: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P2, arg2'=arg2P2, (arg1 > 0 /\ 1+x240 > 0 /\ -1-2*x260+x250 == 0 /\ -1+arg2 > 0 /\ 1+x250 > 0 /\ arg1-arg1P2 == 0 /\ -arg2P2+arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 2+2*x260 > 0 /\ -1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1-2*x310+x300 == 0 /\ 1+x300 > 0 /\ -1+arg2 > 0 /\ -2*x310+x300 >= 0 /\ -2-2*x310+x300 < 0 /\ 1+arg1P3 > 0), cost: 1 New rule: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1+arg2 > 0 /\ 2+2*x310 > 0 /\ 1+arg1P3 > 0), cost: 1 Applied preprocessing Original rule: f130_0_loop_GT -> f163_0_loop_GE : arg1'=arg1P4, arg2'=arg2P4, (-arg1 == 0 /\ -arg1P4 == 0), cost: 1 New rule: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 Applied preprocessing Original rule: f130_0_loop_GT -> f163_0_loop_GE : arg1'=arg1P5, arg2'=arg2P5, (arg1 > 0 /\ -1+arg1-arg1P5 == 0 /\ -6+arg1 < 0), cost: 1 New rule: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 Applied preprocessing Original rule: f131_0_loop_LT -> f163_0_loop_GE : arg1'=arg1P6, arg2'=arg2P6, (6+arg1 > 0 /\ -1+arg1 < 0 /\ -6+arg1 < 0 /\ arg1-arg1P6 == 0), cost: 1 New rule: f131_0_loop_LT -> f163_0_loop_GE : arg2'=arg2P6, (6+arg1 > 0 /\ 1-arg1 > 0), cost: 1 Applied preprocessing Original rule: f163_0_loop_GE -> f130_0_loop_GT : arg1'=arg1P7, arg2'=arg2P7, (1+arg1 > 0 /\ arg1-arg1P7 == 0), cost: 1 New rule: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 Applied preprocessing Original rule: f163_0_loop_GE -> f131_0_loop_LT : arg1'=arg1P8, arg2'=arg2P8, (arg1 < 0 /\ 1+arg1-arg1P8 == 0), cost: 1 New rule: f163_0_loop_GE -> f131_0_loop_LT : arg1'=1+arg1, arg2'=arg2P8, -arg1 > 0, cost: 1 Simplified rules Start location: __init 10: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 1+2*x160 > 0 /\ -1+arg2 > 0), cost: 1 12: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 2+2*x260 > 0 /\ -1+arg2 > 0), cost: 1 11: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (arg1 > 0 /\ 1+2*x210 > 0 /\ -1+arg2 > 0 /\ 1+x190 > 0), cost: 1 13: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1+arg2 > 0 /\ 2+2*x310 > 0 /\ 1+arg1P3 > 0), cost: 1 16: f131_0_loop_LT -> f163_0_loop_GE : arg2'=arg2P6, (6+arg1 > 0 /\ 1-arg1 > 0), cost: 1 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 18: f163_0_loop_GE -> f131_0_loop_LT : arg1'=1+arg1, arg2'=arg2P8, -arg1 > 0, cost: 1 9: __init -> f1_0_main_Load : arg1'=arg1P9, arg2'=arg2P9, TRUE, cost: 1 Eliminating location f1_0_main_Load by chaining: Applied chaining First rule: __init -> f1_0_main_Load : arg1'=arg1P9, arg2'=arg2P9, TRUE, cost: 1 Second rule: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 1+2*x160 > 0 /\ -1+arg2 > 0), cost: 1 New rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Applied chaining First rule: __init -> f1_0_main_Load : arg1'=arg1P9, arg2'=arg2P9, TRUE, cost: 1 Second rule: f1_0_main_Load -> f1_0_main_Load\' : (arg1 > 0 /\ 2+2*x260 > 0 /\ -1+arg2 > 0), cost: 1 New rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (2+2*x260 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Applied deletion Removed the following rules: 9 10 12 Eliminated locations on tree-shaped paths Start location: __init 11: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (arg1 > 0 /\ 1+2*x210 > 0 /\ -1+arg2 > 0 /\ 1+x190 > 0), cost: 1 13: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1+arg2 > 0 /\ 2+2*x310 > 0 /\ 1+arg1P3 > 0), cost: 1 16: f131_0_loop_LT -> f163_0_loop_GE : arg2'=arg2P6, (6+arg1 > 0 /\ 1-arg1 > 0), cost: 1 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 18: f163_0_loop_GE -> f131_0_loop_LT : arg1'=1+arg1, arg2'=arg2P8, -arg1 > 0, cost: 1 19: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 20: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (2+2*x260 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Eliminating location f1_0_main_Load\' by chaining: Applied chaining First rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Second rule: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (arg1 > 0 /\ 1+2*x210 > 0 /\ -1+arg2 > 0 /\ 1+x190 > 0), cost: 1 New rule: __init -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 3 Applied chaining First rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Second rule: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1+arg2 > 0 /\ 2+2*x310 > 0 /\ 1+arg1P3 > 0), cost: 1 New rule: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 Applied chaining First rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (2+2*x260 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Second rule: f1_0_main_Load\' -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (arg1 > 0 /\ 1+2*x210 > 0 /\ -1+arg2 > 0 /\ 1+x190 > 0), cost: 1 New rule: __init -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 3 Applied chaining First rule: __init -> f1_0_main_Load\' : arg1'=arg1P9, arg2'=arg2P9, (2+2*x260 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0), cost: 2 Second rule: f1_0_main_Load\' -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (arg1 > 0 /\ -1+arg2 > 0 /\ 2+2*x310 > 0 /\ 1+arg1P3 > 0), cost: 1 New rule: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 Applied deletion Removed the following rules: 11 13 19 20 Eliminated locations on tree-shaped paths Start location: __init 16: f131_0_loop_LT -> f163_0_loop_GE : arg2'=arg2P6, (6+arg1 > 0 /\ 1-arg1 > 0), cost: 1 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 18: f163_0_loop_GE -> f131_0_loop_LT : arg1'=1+arg1, arg2'=arg2P8, -arg1 > 0, cost: 1 21: __init -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 3 22: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 23: __init -> f131_0_loop_LT : arg1'=-x190, arg2'=arg2P1, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 3 24: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 Eliminated location f131_0_loop_LT Start location: __init 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 25: f163_0_loop_GE -> f163_0_loop_GE : arg1'=1+arg1, arg2'=arg2P6, (7+arg1 > 0 /\ -arg1 > 0), cost: 2 22: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 24: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Applied acceleration Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=1+arg1, arg2'=arg2P6, (7+arg1 > 0 /\ -arg1 > 0), cost: 2 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=arg1+n0, arg2'=arg2P6, (7+arg1 > 0 /\ -1+n0 >= 0 /\ 1-arg1-n0 > 0), cost: 2*n0 Applied instantiation Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=arg1+n0, arg2'=arg2P6, (7+arg1 > 0 /\ -1+n0 >= 0 /\ 1-arg1-n0 > 0), cost: 2*n0 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (1 > 0 /\ 7+arg1 > 0 /\ -1-arg1 >= 0), cost: -2*arg1 Applied simplification Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (1 > 0 /\ 7+arg1 > 0 /\ -1-arg1 >= 0), cost: -2*arg1 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (7+arg1 > 0 /\ 1+arg1 <= 0), cost: -2*arg1 Applied deletion Removed the following rules: 25 Accelerated simple loops Start location: __init 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 29: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (7+arg1 > 0 /\ 1+arg1 <= 0), cost: -2*arg1 22: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 24: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (7+arg1 > 0 /\ 1+arg1 <= 0), cost: -2*arg1 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (-1+x190 >= 0 /\ 1+2*x210 > 0 /\ 1+2*x160 > 0 /\ 6-x190 > 0), cost: 4+2*x190 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (7+arg1 > 0 /\ 1+arg1 <= 0), cost: -2*arg1 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 Applied deletion Removed the following rules: 29 Chained accelerated rules with incoming rules Start location: __init 14: f130_0_loop_GT -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 1 15: f130_0_loop_GT -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 1 17: f163_0_loop_GE -> f130_0_loop_GT : arg2'=arg2P7, 1+arg1 > 0, cost: 1 22: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 24: __init -> f130_0_loop_GT : arg1'=arg1P3, arg2'=arg2P3, (2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0 /\ 1+arg1P3 > 0), cost: 3 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 30: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (-1+x190 >= 0 /\ 1+2*x210 > 0 /\ 1+2*x160 > 0 /\ 6-x190 > 0), cost: 4+2*x190 31: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 Eliminated location f130_0_loop_GT Start location: __init 32: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 2 33: f163_0_loop_GE -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 2 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 30: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (-1+x190 >= 0 /\ 1+2*x210 > 0 /\ 1+2*x160 > 0 /\ 6-x190 > 0), cost: 4+2*x190 31: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 34: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 35: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 36: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 2+2*x260 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 37: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 2+2*x260 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Applied pruning (of leafs and parallel rules): Start location: __init 32: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 2 33: f163_0_loop_GE -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 2 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 31: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 34: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 35: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Applied nonterm Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 2 New rule: f163_0_loop_GE -> [7] : (arg1 >= 0 /\ -arg1 >= 0), cost: NONTERM Applied acceleration Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, arg1 == 0, cost: 2 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 >= 0 /\ -arg1 >= 0), cost: 2*n12 Applied acceleration Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=-1+arg1, arg2'=arg2P5, (arg1 > 0 /\ 6-arg1 > 0), cost: 2 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=arg1-n14, arg2'=arg2P5, (1+arg1-n14 > 0 /\ -1+n14 >= 0 /\ 6-arg1 > 0), cost: 2*n14 Applied instantiation Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=arg1-n14, arg2'=arg2P5, (1+arg1-n14 > 0 /\ -1+n14 >= 0 /\ 6-arg1 > 0), cost: 2*n14 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (1 > 0 /\ -1+arg1 >= 0 /\ 6-arg1 > 0), cost: 2*arg1 Applied simplification Original rule: f163_0_loop_GE -> [7] : (arg1 >= 0 /\ -arg1 >= 0), cost: NONTERM New rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM Applied simplification Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 >= 0 /\ -arg1 >= 0), cost: 2*n12 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 Applied simplification Original rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (1 > 0 /\ -1+arg1 >= 0 /\ 6-arg1 > 0), cost: 2*arg1 New rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (-1+arg1 >= 0 /\ 6-arg1 > 0), cost: 2*arg1 Applied deletion Removed the following rules: 32 33 Accelerated simple loops Start location: __init 41: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM 42: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 43: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (-1+arg1 >= 0 /\ 6-arg1 > 0), cost: 2*arg1 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 31: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 34: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 35: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM New rule: __init -> [7] : (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: NONTERM Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM New rule: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 Second rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM New rule: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Second rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM New rule: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Second rule: f163_0_loop_GE -> [7] : (arg1 <= 0 /\ arg1 >= 0), cost: NONTERM New rule: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: 4+2*n12 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: 4+2*n12 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*n12+2*x190 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: 4+2*n12 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1 <= 0 /\ arg1 >= 0), cost: 2*n12 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: 4+2*n12 Applied chaining First rule: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 Second rule: f163_0_loop_GE -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (-1+arg1 >= 0 /\ 6-arg1 > 0), cost: 2*arg1 New rule: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (1+2*x160 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -2+arg1P3 >= 0), cost: 2+2*arg1P3 Applied deletion Removed the following rules: 41 42 43 Chained accelerated rules with incoming rules Start location: __init 26: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (1+2*x210 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 27: __init -> f163_0_loop_GE : arg1'=-x190, arg2'=arg2P6, (2+2*x260 > 0 /\ 1+2*x210 > 0 /\ arg1P9 > 0 /\ 6-x190 > 0 /\ -1+arg2P9 > 0 /\ 1+x190 > 0), cost: 4 31: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P6, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*x190 34: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (arg1P3 == 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 35: __init -> f163_0_loop_GE : arg1'=-1+arg1P3, arg2'=arg2P5, (arg1P3 > 0 /\ 1+2*x160 > 0 /\ arg1P9 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -1+arg2P9 > 0), cost: 4 44: __init -> [7] : (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: NONTERM 45: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM 46: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM 47: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM 48: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM 49: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: 4+2*n12 50: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: 4+2*n12 51: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (2+2*x260 > 0 /\ -1+x190 >= 0 /\ 1+2*x210 > 0 /\ 6-x190 > 0), cost: 4+2*n12+2*x190 52: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: 4+2*n12 53: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P4, (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: 4+2*n12 54: __init -> f163_0_loop_GE : arg1'=0, arg2'=arg2P5, (1+2*x160 > 0 /\ 6-arg1P3 > 0 /\ 2+2*x310 > 0 /\ -2+arg1P3 >= 0), cost: 2+2*arg1P3 Removed unreachable locations and irrelevant leafs Start location: __init 44: __init -> [7] : (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: NONTERM 45: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM 46: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM 47: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM 48: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM Removed duplicate rules (ignoring updates) Start location: __init 44: __init -> [7] : (1+2*x210 > 0 /\ 1+2*x160 > 0), cost: NONTERM 46: __init -> [7] : (2+2*x260 > 0 /\ 1+2*x210 > 0), cost: NONTERM 48: __init -> [7] : (1+2*x160 > 0 /\ 2+2*x310 > 0), cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 44 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: (1+2*x210 > 0 /\ 1+2*x160 > 0)