WORST_CASE(Omega(0),?) Initial ITS Start location: __init 0: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (arg1 > 0 /\ arg2-arg3P0 == 0 /\ arg2-arg2P0 == 0 /\ 1+arg2 > 0 /\ -arg1P0+arg2 == 0), cost: 1 1: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (-1+arg1-arg3P1 == 0 /\ -1+arg1 > 0 /\ arg1-arg3 == 0 /\ -1+arg1-arg1P1 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0 /\ -1-arg2P1+arg2 == 0), cost: 1 2: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (arg1 > 0 /\ 1+arg1-2*arg2 >= 0 /\ -arg2P2+arg2 == 0 /\ 1+arg1-arg3P2 == 0 /\ -1+arg2 > 0 /\ arg1-arg3 == 0 /\ arg1-arg2 < 0 /\ 1+arg2-arg4P2 == 0 /\ arg1-arg1P2 == 0), cost: 1 3: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg1 > 0 /\ arg1-arg1P3 == 0 /\ 1+arg1-2*arg2 < 0 /\ 1+arg1-arg3P3 == 0 /\ -1+arg2 > 0 /\ -1-arg4P3+arg2 == 0 /\ arg1-arg3 == 0 /\ arg2-arg2P3 == 0 /\ arg1-arg2 < 0), cost: 1 5: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ 2-arg2P5+arg2 == 0 /\ -4+arg1-arg2 <= 0 /\ -1+arg1-arg3P5 == 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ -1+arg1-arg1P5 == 0 /\ arg1-arg2 >= 0), cost: 1 6: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (arg1 > 0 /\ arg1-arg1P6 == 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ arg1-arg2 >= 0 /\ 1-arg2P6+arg2 == 0 /\ arg1-arg3P6 == 0), cost: 1 4: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ arg3-arg1P4 == 0 /\ -arg2P4+arg4 == 0 /\ -1+arg2 > 0 /\ -arg1+arg2 > 0 /\ arg4 > 0 /\ -arg3P4+arg3 == 0), cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Removed rules with unsatisfiable guard Start location: __init 0: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (arg1 > 0 /\ arg2-arg3P0 == 0 /\ arg2-arg2P0 == 0 /\ 1+arg2 > 0 /\ -arg1P0+arg2 == 0), cost: 1 1: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (-1+arg1-arg3P1 == 0 /\ -1+arg1 > 0 /\ arg1-arg3 == 0 /\ -1+arg1-arg1P1 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0 /\ -1-arg2P1+arg2 == 0), cost: 1 3: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg1 > 0 /\ arg1-arg1P3 == 0 /\ 1+arg1-2*arg2 < 0 /\ 1+arg1-arg3P3 == 0 /\ -1+arg2 > 0 /\ -1-arg4P3+arg2 == 0 /\ arg1-arg3 == 0 /\ arg2-arg2P3 == 0 /\ arg1-arg2 < 0), cost: 1 5: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ 2-arg2P5+arg2 == 0 /\ -4+arg1-arg2 <= 0 /\ -1+arg1-arg3P5 == 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ -1+arg1-arg1P5 == 0 /\ arg1-arg2 >= 0), cost: 1 6: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (arg1 > 0 /\ arg1-arg1P6 == 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ arg1-arg2 >= 0 /\ 1-arg2P6+arg2 == 0 /\ arg1-arg3P6 == 0), cost: 1 4: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ arg3-arg1P4 == 0 /\ -arg2P4+arg4 == 0 /\ -1+arg2 > 0 /\ -arg1+arg2 > 0 /\ arg4 > 0 /\ -arg3P4+arg3 == 0), cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Applied preprocessing Original rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (arg1 > 0 /\ arg2-arg3P0 == 0 /\ arg2-arg2P0 == 0 /\ 1+arg2 > 0 /\ -arg1P0+arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (-1+arg1-arg3P1 == 0 /\ -1+arg1 > 0 /\ arg1-arg3 == 0 /\ -1+arg1-arg1P1 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0 /\ -1-arg2P1+arg2 == 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=-1+arg2, arg4'=arg4P1, (arg1-arg3 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0), cost: 1 Applied preprocessing Original rule: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg1 > 0 /\ arg1-arg1P3 == 0 /\ 1+arg1-2*arg2 < 0 /\ 1+arg1-arg3P3 == 0 /\ -1+arg2 > 0 /\ -1-arg4P3+arg2 == 0 /\ arg1-arg3 == 0 /\ arg2-arg2P3 == 0 /\ arg1-arg2 < 0), cost: 1 New rule: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ arg3-arg1P4 == 0 /\ -arg2P4+arg4 == 0 /\ -1+arg2 > 0 /\ -arg1+arg2 > 0 /\ arg4 > 0 /\ -arg3P4+arg3 == 0), cost: 1 New rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ 2-arg2P5+arg2 == 0 /\ -4+arg1-arg2 <= 0 /\ -1+arg1-arg3P5 == 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ -1+arg1-arg1P5 == 0 /\ arg1-arg2 >= 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=2+arg2, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 <= 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0 /\ arg1-arg2 >= 0), cost: 1 Applied preprocessing Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (arg1 > 0 /\ arg1-arg1P6 == 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ -5+arg2 < 0 /\ arg1-arg2 >= 0 /\ 1-arg2P6+arg2 == 0 /\ arg1-arg3P6 == 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=1+arg2, arg4'=arg4P6, (arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0), cost: 1 Simplified rules Start location: __init 8: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 9: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=-1+arg2, arg4'=arg4P1, (arg1-arg3 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0), cost: 1 10: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 12: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=2+arg2, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 <= 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0 /\ arg1-arg2 >= 0), cost: 1 13: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=1+arg2, arg4'=arg4P6, (arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0), cost: 1 11: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Applied acceleration Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=-1+arg2, arg4'=arg4P1, (arg1-arg3 == 0 /\ arg1-arg2 >= 0 /\ -4+arg2 > 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1-n2, arg3'=arg1-n2, arg2'=-n2+arg2, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0 /\ -3-n2+arg2 > 0 /\ -1+n2 >= 0), cost: n2 Applied instantiation Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1-n2, arg3'=arg1-n2, arg2'=-n2+arg2, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0 /\ -3-n2+arg2 > 0 /\ -1+n2 >= 0), cost: n2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (1 > 0 /\ arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 Applied acceleration Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=-1+arg1, arg3'=-1+arg1, arg2'=2+arg2, arg4'=arg4P5, (arg1 > 0 /\ arg1-arg3 == 0 /\ -4+arg1-arg2 <= 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0 /\ arg1-arg2 >= 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1-n4, arg3'=arg1-n4, arg2'=arg2+2*n4, arg4'=arg4P5, (7-arg2-2*n4 > 0 /\ 4-arg1+arg2 >= 0 /\ -1+n4 >= 0 /\ 3+arg1-arg2-3*n4 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg1-n4 > 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: n4 Applied instantiation Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1-n4, arg3'=arg1-n4, arg2'=arg2+2*n4, arg4'=arg4P5, (7-arg2-2*n4 > 0 /\ 4-arg1+arg2 >= 0 /\ -1+n4 >= 0 /\ 3+arg1-arg2-3*n4 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg1-n4 > 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: n4 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=2*arg1+arg2, arg4'=arg4P5, (1 > 0 /\ 4-arg1+arg2 >= 0 /\ 7-2*arg1-arg2 > 0 /\ -1+arg1 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 3-2*arg1-arg2 >= 0), cost: arg1 Applied acceleration Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=1+arg2, arg4'=arg4P6, (arg1-arg3 == 0 /\ -4+arg1-arg2 > 0 /\ 1+arg2 > 0 /\ 5-arg2 > 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=arg2+n6, arg4'=arg4P6, (6-arg2-n6 > 0 /\ -3+arg1-arg2-n6 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -1+n6 >= 0 /\ -arg1+arg3 >= 0), cost: n6 Applied instantiation Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=arg2+n6, arg4'=arg4P6, (6-arg2-n6 > 0 /\ -3+arg1-arg2-n6 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -1+n6 >= 0 /\ -arg1+arg3 >= 0), cost: n6 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=-4+arg1, arg4'=arg4P6, (1 > 0 /\ arg1-arg3 >= 0 /\ 10-arg1 > 0 /\ -5+arg1-arg2 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: -4+arg1-arg2 Applied instantiation Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=arg2+n6, arg4'=arg4P6, (6-arg2-n6 > 0 /\ -3+arg1-arg2-n6 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -1+n6 >= 0 /\ -arg1+arg3 >= 0), cost: n6 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=5, arg4'=arg4P6, (1 > 0 /\ -8+arg1 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 4-arg2 >= 0), cost: 5-arg2 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (1 > 0 /\ arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=2*arg1+arg2, arg4'=arg4P5, (1 > 0 /\ 4-arg1+arg2 >= 0 /\ 7-2*arg1-arg2 > 0 /\ -1+arg1 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 3-2*arg1-arg2 >= 0), cost: arg1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=2*arg1+arg2, arg4'=arg4P5, (-1+arg1 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 3-2*arg1-arg2 >= 0), cost: arg1 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=-4+arg1, arg4'=arg4P6, (1 > 0 /\ arg1-arg3 >= 0 /\ 10-arg1 > 0 /\ -5+arg1-arg2 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: -4+arg1-arg2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=-4+arg1, arg4'=arg4P6, (arg1-arg3 >= 0 /\ 10-arg1 > 0 /\ -5+arg1-arg2 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: -4+arg1-arg2 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=5, arg4'=arg4P6, (1 > 0 /\ -8+arg1 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 4-arg2 >= 0), cost: 5-arg2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=5, arg4'=arg4P6, (-8+arg1 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ -4+arg2 <= 0), cost: 5-arg2 Applied deletion Removed the following rules: 9 12 13 Accelerated simple loops Start location: __init 8: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 10: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 18: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 19: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=2*arg1+arg2, arg4'=arg4P5, (-1+arg1 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 3-2*arg1-arg2 >= 0), cost: arg1 20: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=-4+arg1, arg4'=arg4P6, (arg1-arg3 >= 0 /\ 10-arg1 > 0 /\ -5+arg1-arg2 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: -4+arg1-arg2 21: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=5, arg4'=arg4P6, (-8+arg1 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ -4+arg2 <= 0), cost: 5-arg2 11: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Applied chaining First rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Second rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 New rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg2 >= 0), cost: -3+arg2 Applied chaining First rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 Second rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=4+arg1-arg2, arg3'=4+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 >= 0 /\ -5+arg2 >= 0 /\ -arg1+arg3 >= 0 /\ arg1-arg2 >= 0), cost: -4+arg2 New rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=4+arg3-arg4, arg3'=4+arg3-arg4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg4 >= 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0 /\ arg3-arg4 >= 0), cost: -3+arg4 Applied chaining First rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Second rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=2*arg1+arg2, arg4'=arg4P5, (-1+arg1 >= 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ 3-2*arg1-arg2 >= 0), cost: arg1 New rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2, arg4'=arg4P5, (arg1 > 0 /\ -1+arg2 <= 0 /\ -1+arg2 >= 0), cost: 1+arg2 Applied chaining First rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 Second rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=-4+arg1, arg4'=arg4P6, (arg1-arg3 >= 0 /\ 10-arg1 > 0 /\ -5+arg1-arg2 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0), cost: -4+arg1-arg2 New rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=-4+arg3, arg4'=arg4P6, (arg1 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -5+arg3-arg4 >= 0 /\ 10-arg3 > 0), cost: -3+arg3-arg4 Applied chaining First rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 Second rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg3'=arg1, arg2'=5, arg4'=arg4P6, (-8+arg1 > 0 /\ arg1-arg3 >= 0 /\ 1+arg2 > 0 /\ -arg1+arg3 >= 0 /\ -4+arg2 <= 0), cost: 5-arg2 New rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=5, arg4'=arg4P6, (arg1 > 0 /\ -8+arg3 > 0 /\ arg1-arg4 <= 0 /\ -4+arg4 <= 0 /\ -arg3+arg2 >= 0), cost: 6-arg4 Applied deletion Removed the following rules: 18 19 20 21 Chained accelerated rules with incoming rules Start location: __init 8: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 22: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg2 >= 0), cost: -3+arg2 24: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2, arg4'=arg4P5, (arg1 > 0 /\ -1+arg2 <= 0 /\ -1+arg2 >= 0), cost: 1+arg2 10: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 11: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 23: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=4+arg3-arg4, arg3'=4+arg3-arg4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg4 >= 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0 /\ arg3-arg4 >= 0), cost: -3+arg4 25: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=-4+arg3, arg4'=arg4P6, (arg1 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -5+arg3-arg4 >= 0 /\ 10-arg3 > 0), cost: -3+arg3-arg4 26: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=5, arg4'=arg4P6, (arg1 > 0 /\ -8+arg3 > 0 /\ arg1-arg4 <= 0 /\ -4+arg4 <= 0 /\ -arg3+arg2 >= 0), cost: 6-arg4 7: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Eliminating location f1_0_main_Load by chaining: Applied chaining First rule: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Second rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=arg2, arg3'=arg2, arg4'=arg4P0, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 New rule: __init -> f74_0_loop_aux_LE : arg1'=arg2P7, arg3'=arg2P7, arg2'=arg2P7, arg4'=arg4P0, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 Applied chaining First rule: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Second rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg2 >= 0), cost: -3+arg2 New rule: __init -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (-5+arg2P7 >= 0 /\ arg1P7 > 0), cost: -2+arg2P7 Applied chaining First rule: __init -> f1_0_main_Load : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, TRUE, cost: 1 Second rule: f1_0_main_Load -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2, arg4'=arg4P5, (arg1 > 0 /\ -1+arg2 <= 0 /\ -1+arg2 >= 0), cost: 1+arg2 New rule: __init -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2P7, arg4'=arg4P5, (arg1P7 > 0 /\ -1+arg2P7 <= 0 /\ -1+arg2P7 >= 0), cost: 2+arg2P7 Applied deletion Removed the following rules: 7 8 22 24 Eliminating location f135_0_loop_aux_InvokeMethod by chaining: Applied chaining First rule: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 Second rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=arg3, arg2'=arg4, arg4'=arg4P4, (arg1 > 0 /\ -1+arg3 > 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0), cost: 1 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=1+arg1, arg3'=1+arg1, arg2'=-1+arg2, arg4'=arg4P4, (arg1 > 0 /\ -1-arg1+arg2 >= 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0 /\ 1+arg1-arg2 <= 0), cost: 2 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=1+arg1, arg3'=1+arg1, arg2'=-1+arg2, arg4'=arg4P4, (arg1 > 0 /\ -1-arg1+arg2 >= 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0 /\ 1+arg1-arg2 <= 0), cost: 2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=1+arg1, arg3'=1+arg1, arg2'=-1+arg2, arg4'=arg4P4, (arg1 > 0 /\ arg1-arg3 == 0 /\ 1+arg1-arg2 <= 0), cost: 2 Applied chaining First rule: f74_0_loop_aux_LE -> f135_0_loop_aux_InvokeMethod : arg3'=1+arg1, arg4'=-1+arg2, (arg1 > 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0), cost: 1 Second rule: f135_0_loop_aux_InvokeMethod -> f74_0_loop_aux_LE : arg1'=4+arg3-arg4, arg3'=4+arg3-arg4, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -5+arg4 >= 0 /\ arg1-arg4 <= 0 /\ -arg3+arg2 >= 0 /\ -arg1+arg2 > 0 /\ arg3-arg4 >= 0), cost: -3+arg4 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=6+arg1-arg2, arg3'=6+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -1-arg1+arg2 >= 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0 /\ 2+arg1-arg2 >= 0 /\ 1+arg1-arg2 <= 0 /\ -6+arg2 >= 0), cost: -3+arg2 Applied simplification Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=6+arg1-arg2, arg3'=6+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1 > 0 /\ -1-arg1+arg2 >= 0 /\ arg1-arg3 == 0 /\ -arg1+arg2 > 0 /\ 2+arg1-arg2 >= 0 /\ 1+arg1-arg2 <= 0 /\ -6+arg2 >= 0), cost: -3+arg2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=6+arg1-arg2, arg3'=6+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 == 0 /\ 2+arg1-arg2 >= 0 /\ 1+arg1-arg2 <= 0 /\ -6+arg2 >= 0), cost: -3+arg2 Applied deletion Removed the following rules: 10 11 23 25 26 Eliminated locations on tree-shaped paths Start location: __init 30: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=1+arg1, arg3'=1+arg1, arg2'=-1+arg2, arg4'=arg4P4, (arg1 > 0 /\ arg1-arg3 == 0 /\ 1+arg1-arg2 <= 0), cost: 2 31: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=6+arg1-arg2, arg3'=6+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 == 0 /\ 2+arg1-arg2 >= 0 /\ 1+arg1-arg2 <= 0 /\ -6+arg2 >= 0), cost: -3+arg2 27: __init -> f74_0_loop_aux_LE : arg1'=arg2P7, arg3'=arg2P7, arg2'=arg2P7, arg4'=arg4P0, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 28: __init -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (-5+arg2P7 >= 0 /\ arg1P7 > 0), cost: -2+arg2P7 29: __init -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2P7, arg4'=arg4P5, (arg1P7 > 0 /\ -1+arg2P7 <= 0 /\ -1+arg2P7 >= 0), cost: 2+arg2P7 Applied acceleration Original rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=1+arg1, arg3'=1+arg1, arg2'=-1+arg2, arg4'=arg4P4, (arg1 > 0 /\ arg1-arg3 == 0 /\ 1+arg1-arg2 <= 0), cost: 2 New rule: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1+n35, arg3'=arg1+n35, arg2'=-n35+arg2, arg4'=arg4P4, (arg1 > 0 /\ 1-arg1-2*n35+arg2 >= 0 /\ arg1-arg3 >= 0 /\ -arg1+arg3 >= 0 /\ -1+n35 >= 0), cost: 2*n35 Applied deletion Removed the following rules: 30 Accelerated simple loops Start location: __init 31: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=6+arg1-arg2, arg3'=6+arg1-arg2, arg2'=4, arg4'=arg4P1, (arg1-arg3 == 0 /\ 2+arg1-arg2 >= 0 /\ 1+arg1-arg2 <= 0 /\ -6+arg2 >= 0), cost: -3+arg2 32: f74_0_loop_aux_LE -> f74_0_loop_aux_LE : arg1'=arg1+n35, arg3'=arg1+n35, arg2'=-n35+arg2, arg4'=arg4P4, (arg1 > 0 /\ 1-arg1-2*n35+arg2 >= 0 /\ arg1-arg3 >= 0 /\ -arg1+arg3 >= 0 /\ -1+n35 >= 0), cost: 2*n35 27: __init -> f74_0_loop_aux_LE : arg1'=arg2P7, arg3'=arg2P7, arg2'=arg2P7, arg4'=arg4P0, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 28: __init -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (-5+arg2P7 >= 0 /\ arg1P7 > 0), cost: -2+arg2P7 29: __init -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2P7, arg4'=arg4P5, (arg1P7 > 0 /\ -1+arg2P7 <= 0 /\ -1+arg2P7 >= 0), cost: 2+arg2P7 Applied deletion Removed the following rules: 31 32 Chained accelerated rules with incoming rules Start location: __init 27: __init -> f74_0_loop_aux_LE : arg1'=arg2P7, arg3'=arg2P7, arg2'=arg2P7, arg4'=arg4P0, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 28: __init -> f74_0_loop_aux_LE : arg1'=4, arg3'=4, arg2'=4, arg4'=arg4P1, (-5+arg2P7 >= 0 /\ arg1P7 > 0), cost: -2+arg2P7 29: __init -> f74_0_loop_aux_LE : arg1'=0, arg3'=0, arg2'=3*arg2P7, arg4'=arg4P5, (arg1P7 > 0 /\ -1+arg2P7 <= 0 /\ -1+arg2P7 >= 0), cost: 2+arg2P7 Removed unreachable locations and irrelevant leafs Start location: __init Computing asymptotic complexity Proved the following lower bound Complexity: Unknown Cpx degree: ? Solved cost: 0 Rule cost: 0