NO Initial ITS Start location: __init 0: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 2: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 4: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 6: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 1: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (arg1 > 0 /\ 1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ arg3 > 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ arg2 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg4 > 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 3: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 5: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ arg2 > 0 /\ 1+arg2P5-arg2 <= 0 /\ -2+arg1 > 0 /\ arg1P5 > 0), cost: 1 7: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 9: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ arg2 > 0 /\ -2+arg1 > 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 10: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ arg2 > 0 /\ 1-arg1+arg2P10 <= 0 /\ -2+arg1 > 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 14: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -2+arg1 > 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 13: f991_0_reverse_Return -> f1225_0_reverse_InvokeMethod : arg1'=arg1P13, arg3'=arg3P13, arg2'=arg2P13, arg4'=arg4P13, (4-arg1+arg2 <= 0 /\ -2+arg1 > 0 /\ -arg1+arg1P13 <= 0 /\ -2+arg1P13 > 0), cost: 1 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Removed unreachable rules and leafs Start location: __init 0: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 2: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 4: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 6: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 1: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (arg1 > 0 /\ 1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ arg3 > 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ arg2 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg4 > 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 3: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 5: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ arg2 > 0 /\ 1+arg2P5-arg2 <= 0 /\ -2+arg1 > 0 /\ arg1P5 > 0), cost: 1 7: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 9: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ arg2 > 0 /\ -2+arg1 > 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 10: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ arg2 > 0 /\ 1-arg1+arg2P10 <= 0 /\ -2+arg1 > 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 14: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -2+arg1 > 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Applied preprocessing Original rule: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (arg1 > 0 /\ 1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ arg3 > 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ arg2 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg4 > 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 New rule: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 Applied preprocessing Original rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 New rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 Applied preprocessing Original rule: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ arg2 > 0 /\ 1+arg2P5-arg2 <= 0 /\ -2+arg1 > 0 /\ arg1P5 > 0), cost: 1 New rule: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ 1+arg2P5-arg2 <= 0 /\ arg1P5 > 0), cost: 1 Applied preprocessing Original rule: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 New rule: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0), cost: 1 Applied preprocessing Original rule: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ arg2 > 0 /\ -2+arg1 > 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 New rule: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 Applied preprocessing Original rule: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ arg2 > 0 /\ 1-arg1+arg2P10 <= 0 /\ -2+arg1 > 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 New rule: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 Applied preprocessing Original rule: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -2+arg1 > 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 New rule: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 Simplified rules Start location: __init 0: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 2: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 4: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 6: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 16: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 17: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 18: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ 1+arg2P5-arg2 <= 0 /\ arg1P5 > 0), cost: 1 19: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0), cost: 1 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 20: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 21: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 22: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Applied acceleration Original rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 New rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 Applied unrolling Original rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0), cost: 1 New rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (0 <= 0 /\ 1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: 2 Applied non-termination processor Original rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (0 <= 0 /\ 1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: 2 New rule: f1096_0_append_NONNULL -> [10] : (0 <= 0 /\ 1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM Applied simplification Original rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 New rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg3 > 0 /\ -2+arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 Applied simplification Original rule: f1096_0_append_NONNULL -> [10] : (0 <= 0 /\ 1+arg3P3 > 0 /\ arg3 > 0 /\ -2+arg1P3 > 0 /\ arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM New rule: f1096_0_append_NONNULL -> [10] : (arg3 > 0 /\ -2+arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM Applied deletion Removed the following rules: 17 Accelerated simple loops Start location: __init 0: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 2: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 4: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 6: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 16: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 25: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg3 > 0 /\ -2+arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 26: f1096_0_append_NONNULL -> [10] : (arg3 > 0 /\ -2+arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM 18: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ 1+arg2P5-arg2 <= 0 /\ arg1P5 > 0), cost: 1 19: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0), cost: 1 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 20: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 21: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 22: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Applied chaining First rule: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 Second rule: f230_0_alternate_NONNULL -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1-arg3 <= 0 /\ arg2P1 > 0 /\ -1-arg3P1+arg2 >= 0 /\ 1-arg2+arg1P1 <= 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0 /\ -1-arg4P1+arg2 >= 0 /\ arg2P1-arg4 <= 0 /\ -arg1+arg2P1 <= 0), cost: 1 New rule: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1 > 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0), cost: 2 Applied deletion Removed the following rules: 16 Applied chaining First rule: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 Second rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg3 > 0 /\ -2+arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 New rule: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: 1+n2 Applied chaining First rule: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 Second rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg3 > 0 /\ -2+arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 New rule: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ -1-arg2+arg2P3 <= 0 /\ -2+arg2 >= 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0 /\ -4+arg1 >= 0 /\ 1-arg1+arg2P3 <= 0), cost: 1+n2 Applied chaining First rule: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 Second rule: f1096_0_append_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (arg3 > 0 /\ -2+arg1P3 > 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg2-arg2P3 >= 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: n2 New rule: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ -3+arg1 >= 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0 /\ 1-arg1+arg2P3 <= 0), cost: 1+n2 Applied chaining First rule: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 Second rule: f1096_0_append_NONNULL -> [10] : (arg3 > 0 /\ -2+arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM New rule: f1_0_main_New -> [10] : TRUE, cost: NONTERM Applied chaining First rule: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 Second rule: f1096_0_append_NONNULL -> [10] : (arg3 > 0 /\ -2+arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM New rule: f845_0_reverse_NONNULL -> [10] : (-2+arg2 >= 0 /\ -4+arg1 >= 0), cost: NONTERM Applied chaining First rule: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 Second rule: f1096_0_append_NONNULL -> [10] : (arg3 > 0 /\ -2+arg1P3 > 0 /\ -arg2+arg2P3 <= 0 /\ arg2P3 > 0 /\ -2+arg1 > 0 /\ arg3P3 > 0), cost: NONTERM New rule: f1225_0_reverse_InvokeMethod -> [10] : -3+arg1 >= 0, cost: NONTERM Applied deletion Removed the following rules: 25 26 Applied chaining First rule: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 Second rule: f565_0_iter_NULL -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (-arg2+arg1P5 <= 0 /\ 1+arg2P5 > 0 /\ 2-arg1+arg1P5 <= 0 /\ 3-arg1+arg2P5 <= 0 /\ 1+arg2P5-arg2 <= 0 /\ arg1P5 > 0), cost: 1 New rule: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (1+arg2P5 > 0 /\ arg1P5 > 0), cost: 2 Applied deletion Removed the following rules: 18 Applied chaining First rule: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 Second rule: f717_0_reverseAcc_NONNULL -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (arg1P7-arg2 <= 0 /\ 2-arg1+arg1P7 <= 0 /\ 1+arg2P7 > 0 /\ 3-arg1+arg2P7 <= 0 /\ 1-arg2+arg2P7 <= 0 /\ arg1P7 > 0), cost: 1 New rule: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 Applied deletion Removed the following rules: 19 Applied chaining First rule: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 Second rule: f845_0_reverse_NONNULL -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (-arg2+arg1P9 <= 0 /\ 2-arg1+arg1P9 <= 0 /\ 1+arg2P9 > 0 /\ 3-arg1+arg2P9 <= 0 /\ 1+arg2P9-arg2 <= 0 /\ arg1P9 > 0), cost: 1 New rule: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 2 Applied deletion Removed the following rules: 20 Chained accelerated rules with incoming rules Start location: __init 0: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P0, arg3'=arg3P0, arg2'=arg2P0, arg4'=arg4P0, (-3+arg4P0 > 0 /\ -3+arg3P0 > 0 /\ -3+arg2P0 > 0 /\ -3+arg1P0 > 0), cost: 1 2: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P2, arg3'=arg3P2, arg2'=arg2P2, arg4'=arg4P2, (1+arg3P2 > 0 /\ -4+arg2P2 > 0 /\ -3+arg1P2 > 0), cost: 1 4: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P4, arg3'=arg3P4, arg2'=arg2P4, arg4'=arg4P4, (-1+arg2P4 > 0 /\ -3+arg1P4 > 0), cost: 1 6: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P6, arg3'=arg3P6, arg2'=arg2P6, arg4'=arg4P6, (-1+arg2P6 > 0 /\ -3+arg1P6 > 0), cost: 1 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 27: f1_0_main_New -> f230_0_alternate_NONNULL : arg1'=arg1P1, arg3'=arg3P1, arg2'=arg2P1, arg4'=arg4P1, (1+arg1P1 > 0 /\ arg2P1 > 0 /\ 1+arg4P1 > 0 /\ 1+arg3P1 > 0), cost: 2 28: f1_0_main_New -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0), cost: 1+n2 31: f1_0_main_New -> [10] : TRUE, cost: NONTERM 34: f1_0_main_New -> f565_0_iter_NULL : arg1'=arg1P5, arg3'=arg3P5, arg2'=arg2P5, arg4'=arg4P5, (1+arg2P5 > 0 /\ arg1P5 > 0), cost: 2 35: f1_0_main_New -> f717_0_reverseAcc_NONNULL : arg1'=arg1P7, arg3'=arg3P7, arg2'=arg2P7, arg4'=arg4P7, (1+arg2P7 > 0 /\ arg1P7 > 0), cost: 2 36: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 2 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 21: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P10, arg3'=arg3P10, arg2'=arg2P10, arg4'=arg4P10, (-1+arg1P10 > 0 /\ -1+arg2P10-arg2 <= 0 /\ -1+arg2P10 > 0 /\ 1+arg3P10 > 0 /\ -1+arg1P10-arg2 <= 0 /\ 1-arg1+arg2P10 <= 0 /\ 1-arg1+arg1P10 <= 0), cost: 1 29: f845_0_reverse_NONNULL -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ -1-arg2+arg2P3 <= 0 /\ -2+arg2 >= 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0 /\ -4+arg1 >= 0 /\ 1-arg1+arg2P3 <= 0), cost: 1+n2 32: f845_0_reverse_NONNULL -> [10] : (-2+arg2 >= 0 /\ -4+arg1 >= 0), cost: NONTERM 22: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P14, arg3'=arg3P14, arg2'=arg2P14, arg4'=arg4P14, (-2+arg1P14 > 0 /\ -arg1+arg1P14 <= 0 /\ 1-arg1+arg2P14 <= 0 /\ -1+arg2P14 > 0 /\ 1+arg3P14 > 0), cost: 1 30: f1225_0_reverse_InvokeMethod -> f1096_0_append_NONNULL : arg1'=arg1P3, arg3'=arg3P3, arg2'=arg2P3, arg4'=arg4P3, (-2+arg1P3 > 0 /\ -3+arg1 >= 0 /\ arg2P3 > 0 /\ arg3P3 > 0 /\ -1+n2 >= 0 /\ 1-arg1+arg2P3 <= 0), cost: 1+n2 33: f1225_0_reverse_InvokeMethod -> [10] : -3+arg1 >= 0, cost: NONTERM 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Removed unreachable locations and irrelevant leafs Start location: __init 8: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 31: f1_0_main_New -> [10] : TRUE, cost: NONTERM 36: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 2 11: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 12: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 32: f845_0_reverse_NONNULL -> [10] : (-2+arg2 >= 0 /\ -4+arg1 >= 0), cost: NONTERM 33: f1225_0_reverse_InvokeMethod -> [10] : -3+arg1 >= 0, cost: NONTERM 15: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Eliminating location f1_0_main_New by chaining: Applied chaining First rule: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Second rule: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 1 New rule: __init -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 2 Applied chaining First rule: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Second rule: f1_0_main_New -> [10] : TRUE, cost: NONTERM New rule: __init -> [10] : TRUE, cost: NONTERM Applied chaining First rule: __init -> f1_0_main_New : arg1'=arg1P15, arg3'=arg3P15, arg2'=arg2P15, arg4'=arg4P15, TRUE, cost: 1 Second rule: f1_0_main_New -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 2 New rule: __init -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 3 Applied deletion Removed the following rules: 8 15 31 36 Eliminating location f1225_0_reverse_InvokeMethod by chaining: Applied chaining First rule: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P11, arg3'=arg3P11, arg2'=arg2P11, arg4'=arg4P11, (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: 1 Second rule: f1225_0_reverse_InvokeMethod -> [10] : -3+arg1 >= 0, cost: NONTERM New rule: f845_0_reverse_NONNULL -> [10] : (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0 /\ -3+arg1P11 >= 0), cost: NONTERM Applied simplification Original rule: f845_0_reverse_NONNULL -> [10] : (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0 /\ -3+arg1P11 >= 0), cost: NONTERM New rule: f845_0_reverse_NONNULL -> [10] : (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: NONTERM Applied chaining First rule: f845_0_reverse_NONNULL -> f1225_0_reverse_InvokeMethod : arg1'=arg1P12, arg3'=arg3P12, arg2'=arg2P12, arg4'=arg4P12, (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: 1 Second rule: f1225_0_reverse_InvokeMethod -> [10] : -3+arg1 >= 0, cost: NONTERM New rule: f845_0_reverse_NONNULL -> [10] : (-3+arg1P12 >= 0 /\ -2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: NONTERM Applied simplification Original rule: f845_0_reverse_NONNULL -> [10] : (-3+arg1P12 >= 0 /\ -2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: NONTERM New rule: f845_0_reverse_NONNULL -> [10] : (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: NONTERM Applied deletion Removed the following rules: 11 12 33 Eliminated locations on tree-shaped paths Start location: __init 32: f845_0_reverse_NONNULL -> [10] : (-2+arg2 >= 0 /\ -4+arg1 >= 0), cost: NONTERM 40: f845_0_reverse_NONNULL -> [10] : (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: NONTERM 41: f845_0_reverse_NONNULL -> [10] : (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: NONTERM 37: __init -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 2 38: __init -> [10] : TRUE, cost: NONTERM 39: __init -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 3 Applied merging first rule: f845_0_reverse_NONNULL -> [10] : (-2+arg2 >= 0 /\ -4+arg1 >= 0), cost: NONTERM second rule: f845_0_reverse_NONNULL -> [10] : (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0), cost: NONTERM new rule: f845_0_reverse_NONNULL -> [10] : ((arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM Applied merging first rule: f845_0_reverse_NONNULL -> [10] : (-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0), cost: NONTERM second rule: f845_0_reverse_NONNULL -> [10] : ((arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM new rule: f845_0_reverse_NONNULL -> [10] : ((-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0) \/ (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM Merged rules Start location: __init 43: f845_0_reverse_NONNULL -> [10] : ((-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0) \/ (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM 37: __init -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 2 38: __init -> [10] : TRUE, cost: NONTERM 39: __init -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 3 Eliminating location f845_0_reverse_NONNULL by chaining: Applied chaining First rule: __init -> f845_0_reverse_NONNULL : arg1'=arg1P8, arg3'=arg3P8, arg2'=arg2P8, arg4'=arg4P8, (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: 2 Second rule: f845_0_reverse_NONNULL -> [10] : ((-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0) \/ (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM New rule: __init -> [10] : (-1+arg2P8 > 0 /\ -3+arg1P8 > 0 /\ ((-2+arg2P8 >= 0 /\ -4+arg1P8 >= 0) \/ (arg2P8 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1P8 > 0) \/ (arg2P8 > 0 /\ -2+arg1P12 > 0 /\ -2+arg1P8 > 0))), cost: NONTERM Applied simplification Original rule: __init -> [10] : (-1+arg2P8 > 0 /\ -3+arg1P8 > 0 /\ ((-2+arg2P8 >= 0 /\ -4+arg1P8 >= 0) \/ (arg2P8 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1P8 > 0) \/ (arg2P8 > 0 /\ -2+arg1P12 > 0 /\ -2+arg1P8 > 0))), cost: NONTERM New rule: __init -> [10] : (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: NONTERM Applied chaining First rule: __init -> f845_0_reverse_NONNULL : arg1'=arg1P9, arg3'=arg3P9, arg2'=arg2P9, arg4'=arg4P9, (1+arg2P9 > 0 /\ arg1P9 > 0), cost: 3 Second rule: f845_0_reverse_NONNULL -> [10] : ((-2+arg1P12 > 0 /\ arg2 > 0 /\ -2+arg1 > 0) \/ (arg2 > 0 /\ -4+arg1P11 > 0 /\ -2+arg1 > 0) \/ (-2+arg2 >= 0 /\ -4+arg1 >= 0)), cost: NONTERM New rule: __init -> [10] : (1+arg2P9 > 0 /\ arg1P9 > 0 /\ ((arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -4+arg1P11 > 0) \/ (arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -2+arg1P12 > 0) \/ (-2+arg2P9 >= 0 /\ -4+arg1P9 >= 0))), cost: NONTERM Applied simplification Original rule: __init -> [10] : (1+arg2P9 > 0 /\ arg1P9 > 0 /\ ((arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -4+arg1P11 > 0) \/ (arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -2+arg1P12 > 0) \/ (-2+arg2P9 >= 0 /\ -4+arg1P9 >= 0))), cost: NONTERM New rule: __init -> [10] : ((arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -2+arg1P12 > 0) \/ (arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -4+arg1P11 > 0) \/ (-2+arg2P9 >= 0 /\ -4+arg1P9 >= 0)), cost: NONTERM Applied deletion Removed the following rules: 37 39 43 Eliminated locations on tree-shaped paths Start location: __init 38: __init -> [10] : TRUE, cost: NONTERM 44: __init -> [10] : (-1+arg2P8 > 0 /\ -3+arg1P8 > 0), cost: NONTERM 45: __init -> [10] : ((arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -2+arg1P12 > 0) \/ (arg2P9 > 0 /\ -2+arg1P9 > 0 /\ -4+arg1P11 > 0) \/ (-2+arg2P9 >= 0 /\ -4+arg1P9 >= 0)), cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 38 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: TRUE