NO Initial ITS Start location: __init 0: f93_0_mk_Return -> f148_0_main_InvokeMethod : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, (arg1 > 0 /\ -arg1+arg1P0 <= 0 /\ arg1P0 > 0 /\ -arg2P0+arg2 == 0 /\ 1+arg2 > 0), cost: 1 2: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ -arg1P2 == 0 /\ 1+arg2 > 0), cost: 1 7: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, (arg1 > 0 /\ -1-arg1P7+arg2 == 0 /\ arg2-arg2P7 == 0), cost: 1 8: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, (arg1 > 0 /\ 1+arg2 > 0 /\ -1+arg2-arg1P8 == 0 /\ arg2-arg2P8 == 0), cost: 1 1: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, (arg1 > 0 /\ -arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ arg2-arg2P1 == 0 /\ 1+arg2 > 0), cost: 1 6: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, (arg1 > 0 /\ arg2-arg2P6 == 0 /\ -1-arg1P6+arg2 == 0 /\ 1+arg2 > 0), cost: 1 3: f341_0_main_GE -> f475_0_main_GE : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, (-3+arg1 < 0 /\ -arg2P3 == 0 /\ arg1-arg1P3 == 0), cost: 1 10: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (1+arg1P10 > 0 /\ 1+arg2P10 > 0 /\ -3+arg1 < 0), cost: 1 4: f475_0_main_GE -> f341_0_main_GE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, (arg3-arg2 <= 0 /\ 1+arg1-arg1P4 == 0), cost: 1 5: f475_0_main_GE -> f475_0_main_GE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, (arg3-arg2 > 0 /\ arg3 > 0 /\ arg1-arg1P5 == 0 /\ -3+arg1 < 0 /\ arg3-arg3P5 == 0 /\ 1+arg2-arg2P5 == 0), cost: 1 12: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ -3+arg1 < 0 /\ 1+arg1P12 > 0), cost: 1 9: f165_0_mk_LE -> f165_0_mk_LE : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, (arg2 > 0 /\ arg1-arg2P9 == 0 /\ -1+arg1-arg1P9 == 0), cost: 1 11: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (arg1 > 0 /\ 1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0 /\ arg2 > 0), cost: 1 13: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ -2+arg2 > 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ -2+arg1 > 0 /\ -x400+x410 >= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 14: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0 /\ x470-x460 < 0), cost: 1 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Removed unreachable rules and leafs Start location: __init 2: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ -arg1P2 == 0 /\ 1+arg2 > 0), cost: 1 7: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, (arg1 > 0 /\ -1-arg1P7+arg2 == 0 /\ arg2-arg2P7 == 0), cost: 1 8: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, (arg1 > 0 /\ 1+arg2 > 0 /\ -1+arg2-arg1P8 == 0 /\ arg2-arg2P8 == 0), cost: 1 1: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, (arg1 > 0 /\ -arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ arg2-arg2P1 == 0 /\ 1+arg2 > 0), cost: 1 6: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, (arg1 > 0 /\ arg2-arg2P6 == 0 /\ -1-arg1P6+arg2 == 0 /\ 1+arg2 > 0), cost: 1 3: f341_0_main_GE -> f475_0_main_GE : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, (-3+arg1 < 0 /\ -arg2P3 == 0 /\ arg1-arg1P3 == 0), cost: 1 10: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (1+arg1P10 > 0 /\ 1+arg2P10 > 0 /\ -3+arg1 < 0), cost: 1 4: f475_0_main_GE -> f341_0_main_GE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, (arg3-arg2 <= 0 /\ 1+arg1-arg1P4 == 0), cost: 1 5: f475_0_main_GE -> f475_0_main_GE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, (arg3-arg2 > 0 /\ arg3 > 0 /\ arg1-arg1P5 == 0 /\ -3+arg1 < 0 /\ arg3-arg3P5 == 0 /\ 1+arg2-arg2P5 == 0), cost: 1 12: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ -3+arg1 < 0 /\ 1+arg1P12 > 0), cost: 1 9: f165_0_mk_LE -> f165_0_mk_LE : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, (arg2 > 0 /\ arg1-arg2P9 == 0 /\ -1+arg1-arg1P9 == 0), cost: 1 11: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (arg1 > 0 /\ 1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0 /\ arg2 > 0), cost: 1 13: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ -2+arg2 > 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ -2+arg1 > 0 /\ -x400+x410 >= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 14: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0 /\ x470-x460 < 0), cost: 1 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Applied preprocessing Original rule: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, (arg1 > 0 /\ -arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ arg2-arg2P1 == 0 /\ 1+arg2 > 0), cost: 1 New rule: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ -arg1P2 == 0 /\ 1+arg2 > 0), cost: 1 New rule: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f341_0_main_GE -> f475_0_main_GE : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, (-3+arg1 < 0 /\ -arg2P3 == 0 /\ arg1-arg1P3 == 0), cost: 1 New rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 Applied preprocessing Original rule: f475_0_main_GE -> f341_0_main_GE : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, (arg3-arg2 <= 0 /\ 1+arg1-arg1P4 == 0), cost: 1 New rule: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 Applied preprocessing Original rule: f475_0_main_GE -> f475_0_main_GE : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, (arg3-arg2 > 0 /\ arg3 > 0 /\ arg1-arg1P5 == 0 /\ -3+arg1 < 0 /\ arg3-arg3P5 == 0 /\ 1+arg2-arg2P5 == 0), cost: 1 New rule: f475_0_main_GE -> f475_0_main_GE : arg2'=1+arg2, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: 1 Applied preprocessing Original rule: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, (arg1 > 0 /\ arg2-arg2P6 == 0 /\ -1-arg1P6+arg2 == 0 /\ 1+arg2 > 0), cost: 1 New rule: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P6, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, (arg1 > 0 /\ -1-arg1P7+arg2 == 0 /\ arg2-arg2P7 == 0), cost: 1 New rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P7, arg1 > 0, cost: 1 Applied preprocessing Original rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, (arg1 > 0 /\ 1+arg2 > 0 /\ -1+arg2-arg1P8 == 0 /\ arg2-arg2P8 == 0), cost: 1 New rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P8, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Applied preprocessing Original rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, (arg2 > 0 /\ arg1-arg2P9 == 0 /\ -1+arg1-arg1P9 == 0), cost: 1 New rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1+arg1, arg3'=arg3P9, arg2'=arg1, arg2 > 0, cost: 1 Applied preprocessing Original rule: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (1+arg1P10 > 0 /\ 1+arg2P10 > 0 /\ -3+arg1 < 0), cost: 1 New rule: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (3-arg1 > 0 /\ 1+arg1P10 > 0 /\ 1+arg2P10 > 0), cost: 1 Applied preprocessing Original rule: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (arg1 > 0 /\ 1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0 /\ arg2 > 0), cost: 1 New rule: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0), cost: 1 Applied preprocessing Original rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ -3+arg1 < 0 /\ 1+arg1P12 > 0), cost: 1 New rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 Applied preprocessing Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ -2+arg2 > 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ -2+arg1 > 0 /\ -x400+x410 >= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 New rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 Applied preprocessing Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0 /\ x470-x460 < 0), cost: 1 New rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 1 Simplified rules Start location: __init 17: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 22: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P7, arg1 > 0, cost: 1 23: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P8, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 16: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 21: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P6, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 18: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 25: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (3-arg1 > 0 /\ 1+arg1P10 > 0 /\ 1+arg2P10 > 0), cost: 1 19: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 20: f475_0_main_GE -> f475_0_main_GE : arg2'=1+arg2, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: 1 27: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 24: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1+arg1, arg3'=arg3P9, arg2'=arg1, arg2 > 0, cost: 1 26: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0), cost: 1 28: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 29: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 1 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Applied acceleration Original rule: f475_0_main_GE -> f475_0_main_GE : arg2'=1+arg2, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: 1 New rule: f475_0_main_GE -> f475_0_main_GE : arg2'=n0+arg2, (3-arg1 > 0 /\ arg3 > 0 /\ 1+arg3-n0-arg2 > 0 /\ n0 >= 0), cost: n0 Applied instantiation Original rule: f475_0_main_GE -> f475_0_main_GE : arg2'=n0+arg2, (3-arg1 > 0 /\ arg3 > 0 /\ 1+arg3-n0-arg2 > 0 /\ n0 >= 0), cost: n0 New rule: f475_0_main_GE -> f475_0_main_GE : arg2'=arg3, (1 > 0 /\ 3-arg1 > 0 /\ arg3-arg2 >= 0 /\ arg3 > 0), cost: arg3-arg2 Applied simplification Original rule: f475_0_main_GE -> f475_0_main_GE : arg2'=arg3, (1 > 0 /\ 3-arg1 > 0 /\ arg3-arg2 >= 0 /\ arg3 > 0), cost: arg3-arg2 New rule: f475_0_main_GE -> f475_0_main_GE : arg2'=arg3, (3-arg1 > 0 /\ arg3-arg2 >= 0 /\ arg3 > 0), cost: arg3-arg2 Applied deletion Removed the following rules: 20 Applied acceleration Original rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1+arg1, arg3'=arg3P9, arg2'=arg1, arg2 > 0, cost: 1 New rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=arg1-n3, arg3'=arg3P9, arg2'=1+arg1-n3, (2+arg1-n3 > 0 /\ -1+n3 >= 0 /\ arg2 > 0), cost: n3 Applied instantiation Original rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=arg1-n3, arg3'=arg3P9, arg2'=1+arg1-n3, (2+arg1-n3 > 0 /\ -1+n3 >= 0 /\ arg2 > 0), cost: n3 New rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ 1 > 0 /\ arg2 > 0), cost: 1+arg1 Applied simplification Original rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ 1 > 0 /\ arg2 > 0), cost: 1+arg1 New rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ arg2 > 0), cost: 1+arg1 Applied deletion Removed the following rules: 24 Applied acceleration Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 1 New rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ -arg2P14+arg2 >= 0 /\ arg2P14 > 0 /\ -1+n10 >= 0 /\ arg1-arg1P14 >= 0 /\ ((-2+arg1P14 > 0 /\ -2+arg1 > 0) \/ (-2+arg1P14 > 0 /\ arg1-arg1P14 >= 0)) /\ ((-arg2P14+arg2 >= 0 /\ -arg1P14+arg2P14 >= 0) \/ (-arg1P14+arg2P14 >= 0 /\ -arg1P14+arg2 >= 0)) /\ ((-arg2P14+arg2 >= 0 /\ -2+arg2P14 > 0) \/ (-2+arg2P14 > 0 /\ -2+arg2 > 0)) /\ ((arg1P14-arg2P14 >= 0 /\ arg1-arg1P14 >= 0) \/ (arg1-arg2P14 >= 0 /\ arg1P14-arg2P14 >= 0))), cost: n10 Applied unrolling Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 1 New rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (0 <= 0 /\ arg1P14 > 0 /\ arg1P14-arg2P14 <= 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -2+arg2P14 > 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 2 Applied non-termination processor Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (0 <= 0 /\ arg1P14 > 0 /\ arg1P14-arg2P14 <= 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -2+arg2P14 > 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: 2 New rule: f541_0_bubble_NULL -> [12] : (0 <= 0 /\ arg1P14 > 0 /\ arg1P14-arg2P14 <= 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -2+arg2P14 > 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: NONTERM Applied simplification Original rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1P14 > 0 /\ -arg2P14+arg2 >= 0 /\ arg2P14 > 0 /\ -1+n10 >= 0 /\ arg1-arg1P14 >= 0 /\ ((-2+arg1P14 > 0 /\ -2+arg1 > 0) \/ (-2+arg1P14 > 0 /\ arg1-arg1P14 >= 0)) /\ ((-arg2P14+arg2 >= 0 /\ -arg1P14+arg2P14 >= 0) \/ (-arg1P14+arg2P14 >= 0 /\ -arg1P14+arg2 >= 0)) /\ ((-arg2P14+arg2 >= 0 /\ -2+arg2P14 > 0) \/ (-2+arg2P14 > 0 /\ -2+arg2 > 0)) /\ ((arg1P14-arg2P14 >= 0 /\ arg1-arg1P14 >= 0) \/ (arg1-arg2P14 >= 0 /\ arg1P14-arg2P14 >= 0))), cost: n10 New rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1-arg2P14 >= 0 /\ arg1P14-arg2P14 >= 0 /\ -arg1P14+arg2P14 >= 0 /\ -2+arg2P14 > 0 /\ -arg1P14+arg2 >= 0 /\ -1+n10 >= 0), cost: n10 Applied simplification Original rule: f541_0_bubble_NULL -> [12] : (0 <= 0 /\ arg1P14 > 0 /\ arg1P14-arg2P14 <= 0 /\ arg2P14-arg2 <= 0 /\ arg2P14 > 0 /\ -arg1+arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -2+arg2P14 > 0 /\ -2+arg2 > 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ -2+arg1 > 0 /\ arg1P14-arg2 <= 0), cost: NONTERM New rule: f541_0_bubble_NULL -> [12] : (arg1P14-arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ arg1P14-arg2 <= 0), cost: NONTERM Applied deletion Removed the following rules: 29 Accelerated simple loops Start location: __init 17: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 22: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P7, arg1 > 0, cost: 1 23: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P8, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 16: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 21: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P6, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 18: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 25: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (3-arg1 > 0 /\ 1+arg1P10 > 0 /\ 1+arg2P10 > 0), cost: 1 19: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 27: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 31: f475_0_main_GE -> f475_0_main_GE : arg2'=arg3, (3-arg1 > 0 /\ arg3-arg2 >= 0 /\ arg3 > 0), cost: arg3-arg2 33: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ arg2 > 0), cost: 1+arg1 26: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0), cost: 1 28: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 36: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1-arg2P14 >= 0 /\ arg1P14-arg2P14 >= 0 /\ -arg1P14+arg2P14 >= 0 /\ -2+arg2P14 > 0 /\ -arg1P14+arg2 >= 0 /\ -1+n10 >= 0), cost: n10 37: f541_0_bubble_NULL -> [12] : (arg1P14-arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ arg1P14-arg2 <= 0), cost: NONTERM 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Applied chaining First rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 Second rule: f475_0_main_GE -> f475_0_main_GE : arg2'=arg3, (3-arg1 > 0 /\ arg3-arg2 >= 0 /\ arg3 > 0), cost: arg3-arg2 New rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 Applied deletion Removed the following rules: 31 Applied chaining First rule: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P6, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Second rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ arg2 > 0), cost: 1+arg1 New rule: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 Applied chaining First rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P7, arg1 > 0, cost: 1 Second rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ arg2 > 0), cost: 1+arg1 New rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 Applied chaining First rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P8, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 Second rule: f165_0_mk_LE -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 >= 0 /\ arg2 > 0), cost: 1+arg1 New rule: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 Applied deletion Removed the following rules: 33 Applied chaining First rule: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (3-arg1 > 0 /\ 1+arg1P10 > 0 /\ 1+arg2P10 > 0), cost: 1 Second rule: f291_0_length_NULL -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg2P11-arg2 <= 0 /\ 1+arg1P11 > 0 /\ 1-arg1+arg1P11 <= 0 /\ 1-arg2+arg1P11 <= 0 /\ 1-arg1+arg2P11 <= 0 /\ 1+arg2P11 > 0), cost: 1 New rule: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg1P11 > 0 /\ 3-arg1 > 0 /\ 1+arg2P11 > 0), cost: 2 Applied deletion Removed the following rules: 26 Applied chaining First rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 Second rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (arg1P13 > 0 /\ 2+arg1P13-arg2 <= 0 /\ 2-arg1+arg1P13 <= 0 /\ arg2P13 > 0 /\ 2+arg2P13-arg2 <= 0 /\ 2-arg1+arg2P13 <= 0), cost: 1 New rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg1P13 > 0 /\ arg3 > 0 /\ arg2P13 > 0), cost: 2 Applied chaining First rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 Second rule: f541_0_bubble_NULL -> f541_0_bubble_NULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, (arg1-arg2P14 >= 0 /\ arg1P14-arg2P14 >= 0 /\ -arg1P14+arg2P14 >= 0 /\ -2+arg2P14 > 0 /\ -arg1P14+arg2 >= 0 /\ -1+n10 >= 0), cost: n10 New rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg2P14, arg3'=arg3P14, arg2'=arg2P14, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0 /\ -2+arg2P14 > 0 /\ -1+n10 >= 0), cost: 1+n10 Applied chaining First rule: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 Second rule: f541_0_bubble_NULL -> [12] : (arg1P14-arg2P14 <= 0 /\ -arg1P14+arg2P14 <= 0 /\ -arg1+arg1P14 <= 0 /\ -2+arg1P14 > 0 /\ arg1P14-arg2 <= 0), cost: NONTERM New rule: f475_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: NONTERM Applied deletion Removed the following rules: 28 36 37 Chained accelerated rules with incoming rules Start location: __init 17: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 22: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P7, arg1 > 0, cost: 1 23: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P8, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 40: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 41: f148_0_main_InvokeMethod -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 16: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 21: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1+arg2, arg3'=arg3P6, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 39: f1_0_main_ConstantStackPush -> f165_0_mk_LE : arg1'=-1, arg3'=arg3P9, arg2'=0, (arg1 > 0 /\ arg2 > 0), cost: 1+arg2 18: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 25: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, (3-arg1 > 0 /\ 1+arg1P10 > 0 /\ 1+arg2P10 > 0), cost: 1 38: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 42: f341_0_main_GE -> f291_0_length_NULL : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, (1+arg1P11 > 0 /\ 3-arg1 > 0 /\ 1+arg2P11 > 0), cost: 2 19: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 27: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ 1+arg2P12 > 0 /\ arg3 > 0 /\ 1+arg1P12 > 0), cost: 1 43: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg1P13 > 0 /\ arg3 > 0 /\ arg2P13 > 0), cost: 2 44: f475_0_main_GE -> f541_0_bubble_NULL : arg1'=arg2P14, arg3'=arg3P14, arg2'=arg2P14, (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0 /\ -2+arg2P14 > 0 /\ -1+n10 >= 0), cost: 1+n10 45: f475_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: NONTERM 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Removed unreachable locations and irrelevant leafs Start location: __init 17: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 16: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 18: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 38: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 19: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 45: f475_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: NONTERM 15: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Eliminating location f1_0_main_ConstantStackPush by chaining: Applied chaining First rule: __init -> f1_0_main_ConstantStackPush : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, TRUE, cost: 1 Second rule: f1_0_main_ConstantStackPush -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, (-arg1+arg1P1 <= 0 /\ arg1P1 > 0 /\ 1+arg2 > 0), cost: 1 New rule: __init -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P15, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 2 Applied deletion Removed the following rules: 15 16 Eliminating location f148_0_main_InvokeMethod by chaining: Applied chaining First rule: __init -> f148_0_main_InvokeMethod : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P15, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 2 Second rule: f148_0_main_InvokeMethod -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1 > 0 /\ 1+arg2 > 0), cost: 1 New rule: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Applied deletion Removed the following rules: 17 46 Eliminated locations on linear paths Start location: __init 18: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 38: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 19: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 45: f475_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: NONTERM 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Eliminating location f475_0_main_GE by chaining: Applied chaining First rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 Second rule: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 <= 0), cost: 2 Applied chaining First rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=0, 3-arg1 > 0, cost: 1 Second rule: f475_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3-arg2 > 0 /\ arg3 > 0), cost: NONTERM New rule: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM Applied chaining First rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 Second rule: f475_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, arg3-arg2 <= 0, cost: 1 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (0 <= 0 /\ 3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 Applied simplification Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (0 <= 0 /\ 3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 Applied partial deletion Original rule: f341_0_main_GE -> f475_0_main_GE : arg3'=arg3P3, arg2'=arg3P3, (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 New rule: f341_0_main_GE -> [13] : (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 Applied deletion Removed the following rules: 18 19 38 45 Eliminated locations on tree-shaped paths Start location: __init 48: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 <= 0), cost: 2 49: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 50: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 51: f341_0_main_GE -> [13] : (3-arg1 > 0 /\ arg3P3 > 0), cost: 1+arg3P3 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Applied pruning (of leafs and parallel rules): Start location: __init 48: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 <= 0), cost: 2 49: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 50: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Applied simplification Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 <= 0), cost: 2 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, 3-arg1 > 0, cost: 2 Simplified simple loops Start location: __init 49: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 50: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 52: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, 3-arg1 > 0, cost: 2 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Applied acceleration Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, (3-arg1 > 0 /\ arg3P3 > 0), cost: 2+arg3P3 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=arg1+n16, arg3'=arg3P4, arg2'=arg2P4, (-1+n16 >= 0 /\ arg3P3 > 0 /\ 4-arg1-n16 > 0), cost: 2*n16+n16*arg3P3 Applied instantiation Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=arg1+n16, arg3'=arg3P4, arg2'=arg2P4, (-1+n16 >= 0 /\ arg3P3 > 0 /\ 4-arg1-n16 > 0), cost: 2*n16+n16*arg3P3 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (1 > 0 /\ 2-arg1 >= 0 /\ arg3P3 > 0), cost: 6-2*arg1-arg3P3*(-3+arg1) Applied acceleration Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=1+arg1, arg3'=arg3P4, arg2'=arg2P4, 3-arg1 > 0, cost: 2 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=arg1+n18, arg3'=arg3P4, arg2'=arg2P4, (-1+n18 >= 0 /\ 4-arg1-n18 > 0), cost: 2*n18 Applied instantiation Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=arg1+n18, arg3'=arg3P4, arg2'=arg2P4, (-1+n18 >= 0 /\ 4-arg1-n18 > 0), cost: 2*n18 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (1 > 0 /\ 2-arg1 >= 0), cost: 6-2*arg1 Applied simplification Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (1 > 0 /\ 2-arg1 >= 0 /\ arg3P3 > 0), cost: 6-2*arg1-arg3P3*(-3+arg1) New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (arg3P3 > 0 /\ -2+arg1 <= 0), cost: 6-2*arg1-arg3P3*(-3+arg1) Applied simplification Original rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (1 > 0 /\ 2-arg1 >= 0), cost: 6-2*arg1 New rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, -2+arg1 <= 0, cost: 6-2*arg1 Applied deletion Removed the following rules: 50 52 Accelerated simple loops Start location: __init 49: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 55: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (arg3P3 > 0 /\ -2+arg1 <= 0), cost: 6-2*arg1-arg3P3*(-3+arg1) 56: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, -2+arg1 <= 0, cost: 6-2*arg1 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Applied chaining First rule: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Second rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, (arg3P3 > 0 /\ -2+arg1 <= 0), cost: 6-2*arg1-arg3P3*(-3+arg1) New rule: __init -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, arg3P3 > 0, cost: 9+3*arg3P3 Applied chaining First rule: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Second rule: f341_0_main_GE -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, -2+arg1 <= 0, cost: 6-2*arg1 New rule: __init -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, -2 <= 0, cost: 9 Applied deletion Removed the following rules: 55 56 Chained accelerated rules with incoming rules Start location: __init 49: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 47: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 57: __init -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, arg3P3 > 0, cost: 9+3*arg3P3 58: __init -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, -2 <= 0, cost: 9 Eliminating location f341_0_main_GE by chaining: Applied chaining First rule: __init -> f341_0_main_GE : arg1'=0, arg3'=arg3P2, arg2'=arg2P2, (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 1+arg2P15 > 0), cost: 3 Second rule: f341_0_main_GE -> [12] : (3-arg1 > 0 /\ arg3P3 > 0), cost: NONTERM New rule: __init -> [12] : (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 3 > 0 /\ arg3P3 > 0 /\ 1+arg2P15 > 0), cost: NONTERM Applied simplification Original rule: __init -> [12] : (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ 3 > 0 /\ arg3P3 > 0 /\ 1+arg2P15 > 0), cost: NONTERM New rule: __init -> [12] : (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ arg3P3 > 0 /\ 1+arg2P15 > 0), cost: NONTERM Applied partial deletion Original rule: __init -> f341_0_main_GE : arg1'=3, arg3'=arg3P4, arg2'=arg2P4, arg3P3 > 0, cost: 9+3*arg3P3 New rule: __init -> [15] : arg3P3 > 0, cost: 9+3*arg3P3 Applied deletion Removed the following rules: 47 49 57 58 Eliminated locations on tree-shaped paths Start location: __init 59: __init -> [12] : (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ arg3P3 > 0 /\ 1+arg2P15 > 0), cost: NONTERM 60: __init -> [15] : arg3P3 > 0, cost: 9+3*arg3P3 Computing asymptotic complexity Proved nontermination of rule 59 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: (arg1P1-arg1P15 <= 0 /\ arg1P1 > 0 /\ arg3P3 > 0 /\ 1+arg2P15 > 0)