WORST_CASE(INF,?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1_0_main_Load -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, [ x4_1>-1 && arg2>0 && -1+arg1P_1<=arg1 && -1+arg2P_1<=arg1 && arg1>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1==arg3P_1 ], cost: 1 1: f172_0_createList_LE -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, arg4'=arg4P_2, [ arg1P_2<=arg1 && arg3>0 && -2+arg2P_2<=arg2 && arg1>0 && arg2>0 && arg1P_2>0 && arg2P_2>2 && -1+arg3==arg3P_2 ], cost: 1 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 5: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && arg2P_6>0 ], cost: 1 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 9: f370_0_reverse_FieldAccess -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, [ arg3>0 && arg4>0 && arg4P_100 && arg2>2 && arg1P_10>2 && arg2P_10>0 && arg3==arg3P_10 ], cost: 1 10: f370_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x66_1>0 && x65_1>-1 && x66_10 && arg2>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1 11: f370_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ x73_1>-1 && x74_10 && arg2>2 && arg1P_12>2 && arg2P_12>0 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 12: __init -> f1_0_main_Load : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 12: __init -> f1_0_main_Load : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1_0_main_Load -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=-2+x4_1, arg4'=arg4P_1, [ x4_1>-1 && arg2>0 && -1+arg1P_1<=arg1 && -1+arg2P_1<=arg1 && arg1>0 && arg1P_1>1 && arg2P_1>1 ], cost: 1 1: f172_0_createList_LE -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=-1+arg3, arg4'=arg4P_2, [ arg1P_2<=arg1 && arg3>0 && -2+arg2P_2<=arg2 && arg1>0 && arg2>0 && arg1P_2>0 && arg2P_2>2 ], cost: 1 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 5: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && arg2P_6>0 ], cost: 1 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 9: f370_0_reverse_FieldAccess -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg4'=arg4P_10, [ arg3>0 && arg4>0 && arg4P_100 && arg2>2 && arg1P_10>2 && arg2P_10>0 ], cost: 1 10: f370_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ -2+arg3P_11<=arg1 && arg1>0 && arg2>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1 11: f370_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ -2+arg1P_12<=arg1 && arg1P_12<=arg2 && arg2P_12<=arg1 && arg1>0 && arg2>2 && arg1P_12>2 && arg2P_12>0 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 12: __init -> f1_0_main_Load : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 1. Accelerating the following rules: 1: f172_0_createList_LE -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=-1+arg3, arg4'=arg4P_2, [ arg1P_2<=arg1 && arg3>0 && -2+arg2P_2<=arg2 && arg1>0 && arg2>0 && arg1P_2>0 && arg2P_2>2 ], cost: 1 Accelerated rule 1 with metering function arg3, yielding the new rule 13. Removing the simple loops: 1. Accelerating simple loops of location 3. Accelerating the following rules: 9: f370_0_reverse_FieldAccess -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg4'=arg4P_10, [ arg3>0 && arg4>0 && arg4P_100 && arg2>2 && arg1P_10>2 && arg2P_10>0 ], cost: 1 During metering: Instantiating temporary variables by {arg4P_10==-1+arg4} Accelerated rule 9 with metering function -1+arg4 (after strengthening guard), yielding the new rule 14. Removing the simple loops:. Accelerated all simple loops using metering functions (where possible): Start location: __init 0: f1_0_main_Load -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=-2+x4_1, arg4'=arg4P_1, [ x4_1>-1 && arg2>0 && -1+arg1P_1<=arg1 && -1+arg2P_1<=arg1 && arg1>0 && arg1P_1>1 && arg2P_1>1 ], cost: 1 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 5: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && arg2P_6>0 ], cost: 1 13: f172_0_createList_LE -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=0, arg4'=arg4P_2, [ arg1P_2<=arg1 && arg3>0 && -2+arg2P_2<=arg2 && arg1>0 && arg2>0 && arg1P_2>0 && arg2P_2>2 ], cost: arg3 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 9: f370_0_reverse_FieldAccess -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg4'=arg4P_10, [ arg3>0 && arg4>0 && arg4P_100 && arg2>2 && arg1P_10>2 && arg2P_10>0 ], cost: 1 10: f370_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ -2+arg3P_11<=arg1 && arg1>0 && arg2>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1 11: f370_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ -2+arg1P_12<=arg1 && arg1P_12<=arg2 && arg2P_12<=arg1 && arg1>0 && arg2>2 && arg1P_12>2 && arg2P_12>0 ], cost: 1 14: f370_0_reverse_FieldAccess -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg4'=1, [ arg3>0 && -2+arg1P_10<=arg1 && arg1>0 && arg2>2 && arg1P_10>2 && arg2P_10>2 && -1+arg4>0 ], cost: -1+arg4 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 12: __init -> f1_0_main_Load : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [], cost: 1 Chained accelerated rules (with incoming rules): Start location: __init 0: f1_0_main_Load -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=-2+x4_1, arg4'=arg4P_1, [ x4_1>-1 && arg2>0 && -1+arg1P_1<=arg1 && -1+arg2P_1<=arg1 && arg1>0 && arg1P_1>1 && arg2P_1>1 ], cost: 1 15: f1_0_main_Load -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=0, arg4'=arg4P_2, [ arg2>0 && arg1>0 && -2+x4_1>0 && arg1P_2>0 && arg2P_2>2 && arg1P_2<=1+arg1 && -2+arg2P_2<=1+arg1 ], cost: -1+x4_1 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 5: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && arg2P_6>0 ], cost: 1 16: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_6, arg4'=arg4P_10, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 ], cost: 2 17: f172_0_createList_LE -> f370_0_reverse_FieldAccess : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_6, arg4'=1, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 ], cost: arg4P_6 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 10: f370_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ -2+arg3P_11<=arg1 && arg1>0 && arg2>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1 11: f370_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ -2+arg1P_12<=arg1 && arg1P_12<=arg2 && arg2P_12<=arg1 && arg1>0 && arg2>2 && arg1P_12>2 && arg2P_12>0 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 12: __init -> f1_0_main_Load : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: __init 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 20: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 2 21: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && -2+arg1P_12<=arg1P_6 && arg1P_12<=arg2P_6 && arg2P_12<=arg1P_6 && arg2P_6>2 && arg1P_12>2 && arg2P_12>0 ], cost: 2 22: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3 23: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg2P_10>2 && arg1P_12>2 && arg2P_12>0 ], cost: 3 24: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6 25: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 1+arg4P_6 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 18: __init -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=-2+x4_1, arg4'=arg4P_1, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 ], cost: 2 19: __init -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=0, arg4'=arg4P_2, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg1P_2>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 ], cost: x4_1 Applied pruning (of leafs and parallel rules): Start location: __init 2: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg1P_3<=arg1 && arg3<1 && arg1P_3<=arg2 && arg2P_3<=arg1 && arg2P_3<=arg2 && arg1>1 && arg2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1 3: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1P_4<=arg1 && arg3<1 && -1+arg1P_4<=arg2 && arg1>1 && arg2>0 && arg1P_4>1 && arg2P_4>-1 ], cost: 1 4: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1P_5<=arg1 && arg3<1 && -1+arg1P_5<=arg2 && arg1>1 && arg2>0 && arg1P_5>1 && arg2P_5>0 ], cost: 1 20: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 2 21: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg1P_6<=arg1 && arg3<1 && -1+arg1P_6<=arg2 && arg1>1 && arg2>0 && arg1P_6>1 && -2+arg1P_12<=arg1P_6 && arg1P_12<=arg2P_6 && arg2P_12<=arg1P_6 && arg2P_6>2 && arg1P_12>2 && arg2P_12>0 ], cost: 2 22: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3 24: f172_0_createList_LE -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6 25: f172_0_createList_LE -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg3<1 && arg1>1 && arg2>0 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1 && -2+arg1P_10<=1+arg2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 1+arg4P_6 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 18: __init -> f172_0_createList_LE : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=-2+x4_1, arg4'=arg4P_1, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 ], cost: 2 19: __init -> f172_0_createList_LE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=0, arg4'=arg4P_2, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg1P_2>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 ], cost: x4_1 Eliminated locations (on tree-shaped paths): Start location: __init 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 26: __init -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_3<=arg1P_1 && -2+x4_1<1 && arg1P_3<=arg2P_1 && arg2P_3<=arg1P_1 && arg2P_3<=arg2P_1 && arg1P_3>1 && arg2P_3>1 ], cost: 3 27: __init -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_4<=arg1P_1 && -2+x4_1<1 && -1+arg1P_4<=arg2P_1 && arg1P_4>1 && arg2P_4>-1 ], cost: 3 28: __init -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_5<=arg1P_1 && -2+x4_1<1 && -1+arg1P_5<=arg2P_1 && arg1P_5>1 && arg2P_5>0 ], cost: 3 29: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_6<=arg1P_1 && -2+x4_1<1 && -1+arg1P_6<=arg2P_1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 4 30: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_6<=arg1P_1 && -2+x4_1<1 && -1+arg1P_6<=arg2P_1 && arg1P_6>1 && -2+arg1P_12<=arg1P_6 && arg1P_12<=arg2P_6 && arg2P_12<=arg1P_6 && arg2P_6>2 && arg1P_12>2 && arg2P_12>0 ], cost: 4 31: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 5 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 33: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 3+arg4P_6 34: __init -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1+x4_1 35: __init -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_4<=arg1P_2 && -1+arg1P_4<=arg2P_2 && arg1P_2>1 && arg1P_4>1 && arg2P_4>-1 ], cost: 1+x4_1 36: __init -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_5<=arg1P_2 && -1+arg1P_5<=arg2P_2 && arg1P_2>1 && arg1P_5>1 && arg2P_5>0 ], cost: 1+x4_1 37: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_6<=arg1P_2 && -1+arg1P_6<=arg2P_2 && arg1P_2>1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 2+x4_1 38: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_6<=arg1P_2 && -1+arg1P_6<=arg2P_2 && arg1P_2>1 && arg1P_6>1 && -2+arg1P_12<=arg1P_6 && arg1P_12<=arg2P_6 && arg2P_12<=arg1P_6 && arg2P_6>2 && arg1P_12>2 && arg2P_12>0 ], cost: 2+x4_1 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 41: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 1+arg4P_6+x4_1 Applied pruning (of leafs and parallel rules): Start location: __init 6: f355_0_reverse_NULL -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ 1+arg1P_7<=arg2 && arg2P_7<=arg2 && arg3P_7<=arg1 && 1+arg4P_7<=arg2 && arg1>0 && arg2>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 1 7: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && arg2P_8>-1 ], cost: 1 8: f385_0_reverse_FieldAccess -> f355_0_reverse_NULL : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && arg2P_9>-1 ], cost: 1 29: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_6<=arg1P_1 && -2+x4_1<1 && -1+arg1P_6<=arg2P_1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 4 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 33: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 3+arg4P_6 34: __init -> f355_0_reverse_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 ], cost: 1+x4_1 35: __init -> f355_0_reverse_NULL : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_4<=arg1P_2 && -1+arg1P_4<=arg2P_2 && arg1P_2>1 && arg1P_4>1 && arg2P_4>-1 ], cost: 1+x4_1 36: __init -> f355_0_reverse_NULL : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_5<=arg1P_2 && -1+arg1P_5<=arg2P_2 && arg1P_2>1 && arg1P_5>1 && arg2P_5>0 ], cost: 1+x4_1 37: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_6<=arg1P_2 && -1+arg1P_6<=arg2P_2 && arg1P_2>1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 2+x4_1 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 41: __init -> f355_0_reverse_NULL : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 ], cost: 1+arg4P_6+x4_1 Eliminated location f355_0_reverse_NULL (as a last resort): Start location: __init 42: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && 1+arg1P_7<=arg2P_8 && arg2P_7<=arg2P_8 && arg3P_7<=arg1P_8 && 1+arg4P_7<=arg2P_8 && arg2P_8>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2 43: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && 1+arg1P_7<=arg2P_9 && arg2P_7<=arg2P_9 && arg3P_7<=arg1P_9 && 1+arg4P_7<=arg2P_9 && arg2P_9>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2 29: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && arg1P_6<=arg1P_1 && -2+x4_1<1 && -1+arg1P_6<=arg2P_1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 4 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 37: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_6<=arg1P_2 && -1+arg1P_6<=arg2P_2 && arg1P_2>1 && arg1P_6>1 && -2+arg3P_11<=arg1P_6 && arg2P_6>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 2+x4_1 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 44: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 4+arg4P_6 45: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 && 1+arg1P_7<=arg2P_3 && arg2P_7<=arg2P_3 && arg3P_7<=arg1P_3 && 1+arg4P_7<=arg2P_3 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 46: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_4<=arg1P_2 && -1+arg1P_4<=arg2P_2 && arg1P_2>1 && arg1P_4>1 && 1+arg1P_7<=arg2P_4 && arg2P_7<=arg2P_4 && arg3P_7<=arg1P_4 && 1+arg4P_7<=arg2P_4 && arg2P_4>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 47: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_5<=arg1P_2 && -1+arg1P_5<=arg2P_2 && arg1P_2>1 && arg1P_5>1 && arg2P_5>0 && 1+arg1P_7<=arg2P_5 && arg2P_7<=arg2P_5 && arg3P_7<=arg1P_5 && 1+arg4P_7<=arg2P_5 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 48: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+arg4P_6+x4_1 Applied pruning (of leafs and parallel rules): Start location: __init 42: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_8<=arg1 && 1+arg2P_8<=arg2 && arg2P_8<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_8>2 && 1+arg1P_7<=arg2P_8 && arg2P_7<=arg2P_8 && arg3P_7<=arg1P_8 && 1+arg4P_7<=arg2P_8 && arg2P_8>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2 43: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -3+arg1P_9<=arg1 && -2+arg1P_9<=arg2 && -2+arg1P_9<=arg3 && -3+arg1P_9<=arg4 && arg2P_9<=arg1 && 1+arg2P_9<=arg2 && 1+arg2P_9<=arg3 && arg2P_9<=arg4 && arg1>-1 && arg2>0 && arg3>0 && arg4>-1 && arg1P_9>2 && 1+arg1P_7<=arg2P_9 && arg2P_7<=arg2P_9 && arg3P_7<=arg1P_9 && 1+arg4P_7<=arg2P_9 && arg2P_9>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 45: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 && 1+arg1P_7<=arg2P_3 && arg2P_7<=arg2P_3 && arg3P_7<=arg1P_3 && 1+arg4P_7<=arg2P_3 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 48: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+arg4P_6+x4_1 Accelerating simple loops of location 4. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 42: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg3>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 && 1+arg1P_7<=arg1 && arg2P_7<=arg1 && 1+arg4P_7<=arg1 && 1<=arg1 && 1+arg1P_7<=-1+arg2 && arg2P_7<=-1+arg2 && 1+arg4P_7<=-1+arg2 && 1<=-1+arg2 && 1+arg1P_7<=arg4 && arg2P_7<=arg4 && 1+arg4P_7<=arg4 && 1<=arg4 ], cost: 2 43: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 && arg3P_7<=3+arg1 && arg3P_7<=2+arg2 && arg3P_7<=2+arg3 && arg3P_7<=3+arg4 && 1+arg1P_7<=arg1 && arg2P_7<=arg1 && 1+arg4P_7<=arg1 && 1<=arg1 && 1+arg1P_7<=-1+arg2 && arg2P_7<=-1+arg2 && 1+arg4P_7<=-1+arg2 && 1<=-1+arg2 && 1+arg1P_7<=-1+arg3 && arg2P_7<=-1+arg3 && 1+arg4P_7<=-1+arg3 && 1<=-1+arg3 && 1+arg1P_7<=arg4 && arg2P_7<=arg4 && 1+arg4P_7<=arg4 && 1<=arg4 ], cost: 2 During metering: Instantiating temporary variables by {arg2P_7==arg1,arg4P_7==-1+arg1,arg1P_7==-2+arg2} Found no metering function for rule 42 (rule is too complicated). During metering: Instantiating temporary variables by {arg2P_7==-1+arg2,arg3P_7==2+arg2,arg4P_7==-1+arg1,arg1P_7==-2+arg2} Accelerated rule 43 with metering function 1+2*arg1-arg2, yielding the new rule 49. Removing the simple loops: 43. Accelerated all simple loops using metering functions (where possible): Start location: __init 42: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg3>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 && 1+arg1P_7<=arg1 && arg2P_7<=arg1 && 1+arg4P_7<=arg1 && 1<=arg1 && 1+arg1P_7<=-1+arg2 && arg2P_7<=-1+arg2 && 1+arg4P_7<=-1+arg2 && 1<=-1+arg2 && 1+arg1P_7<=arg4 && arg2P_7<=arg4 && 1+arg4P_7<=arg4 && 1<=arg4 ], cost: 2 49: f385_0_reverse_FieldAccess -> f385_0_reverse_FieldAccess : arg1'=-2-2*arg1+2*arg2, arg2'=-1-2*arg1+2*arg2, arg3'=2-2*arg1+2*arg2, arg4'=-2-2*arg1+2*arg2, [ -2+arg2>-1 && -1+arg1>-1 && 2+arg2<=3+arg1 && 2+arg2<=2+arg3 && 2+arg2<=3+arg4 && arg1<=-1+arg2 && arg1<=-1+arg3 && 1<=-1+arg3 && arg1<=arg4 && 1<=arg4 && 1+2*arg1-arg2>=1 ], cost: 2+4*arg1-2*arg2 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 45: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 && 1+arg1P_7<=arg2P_3 && arg2P_7<=arg2P_3 && arg3P_7<=arg1P_3 && 1+arg4P_7<=arg2P_3 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 48: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+arg4P_6+x4_1 Chained accelerated rules (with incoming rules): Start location: __init 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 45: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 && 1+arg1P_7<=arg2P_3 && arg2P_7<=arg2P_3 && arg3P_7<=arg1P_3 && 1+arg4P_7<=arg2P_3 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 48: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+arg4P_6+x4_1 50: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -1+arg4P_6>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 5+arg4P_6 51: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -2+x4_1>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 5+x4_1 52: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -2+x4_1>0 && -1+arg4P_6>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 3+arg4P_6+x4_1 53: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -1+arg4P_6>0 && -1+arg1P_11>-1 ], cost: 3+arg4P_6+2*arg1P_11 54: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg1P_11>-1 ], cost: 3+x4_1+2*arg1P_11 55: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg4P_6>0 && -1+arg1P_11>-1 ], cost: 1+arg4P_6+x4_1+2*arg1P_11 56: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg1P_7>-1 ], cost: 2+x4_1+2*arg1P_7 57: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg4P_6>0 && -1+arg1P_7>-1 ], cost: 2+arg4P_6+x4_1+2*arg1P_7 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 32: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+arg4P_6 39: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg2P_10>2 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 3+x4_1 40: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ], cost: 1+arg4P_6+x4_1 45: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_3<=arg1P_2 && arg1P_3<=arg2P_2 && arg2P_3<=arg1P_2 && arg2P_3<=arg2P_2 && arg1P_2>1 && arg1P_3>1 && arg2P_3>1 && 1+arg1P_7<=arg2P_3 && arg2P_7<=arg2P_3 && arg3P_7<=arg1P_3 && 1+arg4P_7<=arg2P_3 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+x4_1 48: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg2P_13>0 && arg1P_13>0 && -2+x4_1>0 && arg2P_2>2 && arg1P_2<=1+arg1P_13 && -2+arg2P_2<=1+arg1P_13 && arg1P_2>1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_2 && -2+arg1P_10<=1+arg2P_2 && -2+arg1P_12<=arg1P_10 && arg1P_12<=arg2P_10 && arg2P_12<=arg1P_10 && arg1P_12>2 && arg2P_12>0 && 1+arg1P_7<=arg2P_12 && arg2P_7<=arg2P_12 && arg3P_7<=arg1P_12 && 1+arg4P_7<=arg2P_12 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 2+arg4P_6+x4_1 50: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -1+arg4P_6>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 5+arg4P_6 51: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -2+x4_1>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 5+x4_1 52: __init -> f385_0_reverse_FieldAccess : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ -2+x4_1>0 && -1+arg4P_6>0 && arg1P_7>-1 && arg2P_7>0 && arg3P_7>0 && arg4P_7>-1 ], cost: 3+arg4P_6+x4_1 53: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -1+arg4P_6>0 && -1+arg1P_11>-1 ], cost: 3+arg4P_6+2*arg1P_11 54: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg1P_11>-1 ], cost: 3+x4_1+2*arg1P_11 55: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg4P_6>0 && -1+arg1P_11>-1 ], cost: 1+arg4P_6+x4_1+2*arg1P_11 56: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg1P_7>-1 ], cost: 2+x4_1+2*arg1P_7 57: __init -> f385_0_reverse_FieldAccess : arg1'=0, arg2'=1, arg3'=4, arg4'=0, [ -2+x4_1>0 && -1+arg4P_6>0 && -1+arg1P_7>-1 ], cost: 2+arg4P_6+x4_1+2*arg1P_7 Computing asymptotic complexity for rule 32 Solved the limit problem by the following transformations: Created initial limit problem: -2+arg2P_10 (+/+!), -2+arg3P_11 (+/+!), -1+arg2P_1 (+/+!), 2-arg1P_1+arg1P_13 (+/+!), arg3P_6 (+/+!), -2+arg1P_10 (+/+!), 1+arg4P_11 (+/+!), -1+arg4P_6 (+/+!), 1+x4_1 (+/+!), arg2P_11 (+/+!), 3+arg1P_1-arg1P_10 (+/+!), 4+arg2P_1-arg1P_10 (+/+!), 3-x4_1 (+/+!), 3+arg4P_6 (+), arg1P_13 (+/+!), 2-arg2P_1+arg1P_13 (+/+!), 1+arg1P_11 (+/+!), arg2P_13 (+/+!), -1+arg1P_1 (+/+!), 3-arg3P_11+arg1P_10 (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {arg3P_6==1,arg3P_11==n,arg1P_1==3*n,arg2P_1==4*n,arg4P_6==n,arg4P_11==0,x4_1==0,arg2P_11==1,arg1P_10==2*n,arg2P_10==3,arg1P_11==n,arg1P_13==4*n,arg2P_13==n} resulting limit problem: [solved] Solution: arg3P_6 / 1 arg3P_11 / n arg1P_1 / 3*n arg2P_1 / 4*n arg4P_6 / n arg4P_11 / 0 x4_1 / 0 arg2P_11 / 1 arg1P_10 / 2*n arg2P_10 / 3 arg1P_11 / n arg1P_13 / 4*n arg2P_13 / n Resulting cost 3+n has complexity: Unbounded Found new complexity Unbounded. Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Unbounded Cpx degree: Unbounded Solved cost: 3+n Rule cost: 3+arg4P_6 Rule guard: [ x4_1>-1 && arg2P_13>0 && -1+arg1P_1<=arg1P_13 && -1+arg2P_1<=arg1P_13 && arg1P_13>0 && arg1P_1>1 && arg2P_1>1 && -2+x4_1<1 && arg3P_6>0 && arg1P_10>2 && arg2P_10>2 && -1+arg4P_6>0 && -2+arg1P_10<=arg1P_1 && -2+arg1P_10<=1+arg2P_1 && -2+arg3P_11<=arg1P_10 && arg1P_11>-1 && arg2P_11>0 && arg3P_11>2 && arg4P_11>-1 ] WORST_CASE(INF,?)