WORST_CASE(INF,?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1_0_main_Load -> f1602_0_main_NULL : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, [ arg1>0 && arg1P_1>2 && arg2P_1>-1 ], cost: 1 3: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, arg5'=arg5P_4, [ arg2>0 && arg3P_4>0 && -2+arg1P_4<=arg1 && -2+arg2P_4<=arg1 && arg1>0 && arg1P_4>2 && arg2P_4>2 && arg2==arg4P_4 && 1==arg5P_4 ], cost: 1 2: f1602_0_main_NULL -> f1602_0_main_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>=-2+arg1P_3 && arg1>=3+arg2P_3 && arg2>=1+arg2P_3 && arg1>2 && arg2>0 && arg1P_3>2 && arg2P_3>-1 ], cost: 1 1: f408_0_createTree_Return -> f1602_0_main_NULL : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, arg4'=arg4P_2, arg5'=arg5P_2, [ arg1P_2<=arg1 && 3+arg2P_2<=arg1 && arg1>2 && arg1P_2>2 && arg2P_2>-1 && 2+arg2<=arg1 ], cost: 1 4: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, arg5'=arg5P_5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_5>2 && arg2P_5>0 && -1+arg3==arg3P_5 && arg4==arg4P_5 && 1+arg5==arg5P_5 ], cost: 1 5: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, arg5'=arg5P_6, [ arg5>-1 && x31_1>0 && arg3>0 && arg52 && arg2>2 && arg1P_6>2 && arg2P_6>0 && -1+arg3==arg3P_6 && arg4==arg4P_6 && 1+arg5==arg5P_6 ], cost: 1 6: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, arg5'=arg5P_7, [ arg5>-1 && x39_1>0 && arg3>0 && arg52 && arg2>1 && arg1P_7>2 && arg2P_7>2 && -1+arg3==arg3P_7 && arg4==arg4P_7 && 1+arg5==arg5P_7 ], cost: 1 7: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, arg5'=arg5P_8, [ arg3>0 && arg5>-1 && arg52 && arg2>1 && arg1P_8>2 && arg2P_8>2 && -1+arg3==arg3P_8 && arg4==arg4P_8 && 1+arg5==arg5P_8 ], cost: 1 8: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, arg5'=arg5P_9, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_9>4 && arg2P_9>4 && -1+arg3==arg3P_9 && arg4==arg4P_9 && 1+arg5==arg5P_9 ], cost: 1 9: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, arg5'=arg5P_10, [ arg5>-1 && x61_1>0 && arg3>0 && arg52 && arg2>2 && arg1P_10>4 && arg2P_10>4 && -1+arg3==arg3P_10 && arg4==arg4P_10 && 1+arg5==arg5P_10 ], cost: 1 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Removed unreachable and leaf rules: Start location: __init 0: f1_0_main_Load -> f1602_0_main_NULL : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, [ arg1>0 && arg1P_1>2 && arg2P_1>-1 ], cost: 1 3: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, arg5'=arg5P_4, [ arg2>0 && arg3P_4>0 && -2+arg1P_4<=arg1 && -2+arg2P_4<=arg1 && arg1>0 && arg1P_4>2 && arg2P_4>2 && arg2==arg4P_4 && 1==arg5P_4 ], cost: 1 2: f1602_0_main_NULL -> f1602_0_main_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>=-2+arg1P_3 && arg1>=3+arg2P_3 && arg2>=1+arg2P_3 && arg1>2 && arg2>0 && arg1P_3>2 && arg2P_3>-1 ], cost: 1 4: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, arg5'=arg5P_5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_5>2 && arg2P_5>0 && -1+arg3==arg3P_5 && arg4==arg4P_5 && 1+arg5==arg5P_5 ], cost: 1 5: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, arg5'=arg5P_6, [ arg5>-1 && x31_1>0 && arg3>0 && arg52 && arg2>2 && arg1P_6>2 && arg2P_6>0 && -1+arg3==arg3P_6 && arg4==arg4P_6 && 1+arg5==arg5P_6 ], cost: 1 6: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, arg5'=arg5P_7, [ arg5>-1 && x39_1>0 && arg3>0 && arg52 && arg2>1 && arg1P_7>2 && arg2P_7>2 && -1+arg3==arg3P_7 && arg4==arg4P_7 && 1+arg5==arg5P_7 ], cost: 1 7: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, arg5'=arg5P_8, [ arg3>0 && arg5>-1 && arg52 && arg2>1 && arg1P_8>2 && arg2P_8>2 && -1+arg3==arg3P_8 && arg4==arg4P_8 && 1+arg5==arg5P_8 ], cost: 1 8: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, arg5'=arg5P_9, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_9>4 && arg2P_9>4 && -1+arg3==arg3P_9 && arg4==arg4P_9 && 1+arg5==arg5P_9 ], cost: 1 9: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, arg5'=arg5P_10, [ arg5>-1 && x61_1>0 && arg3>0 && arg52 && arg2>2 && arg1P_10>4 && arg2P_10>4 && -1+arg3==arg3P_10 && arg4==arg4P_10 && 1+arg5==arg5P_10 ], cost: 1 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1_0_main_Load -> f1602_0_main_NULL : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, [ arg1>0 && arg1P_1>2 && arg2P_1>-1 ], cost: 1 3: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg2, arg5'=1, [ arg2>0 && arg3P_4>0 && -2+arg1P_4<=arg1 && -2+arg2P_4<=arg1 && arg1>0 && arg1P_4>2 && arg2P_4>2 ], cost: 1 2: f1602_0_main_NULL -> f1602_0_main_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>=-2+arg1P_3 && arg1>=3+arg2P_3 && arg2>=1+arg2P_3 && arg1>2 && arg2>0 && arg1P_3>2 && arg2P_3>-1 ], cost: 1 4: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_5>2 && arg2P_5>0 ], cost: 1 5: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_6>2 && arg2P_6>0 ], cost: 1 6: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>1 && arg1P_7>2 && arg2P_7>2 ], cost: 1 7: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>1 && arg1P_8>2 && arg2P_8>2 ], cost: 1 8: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_9>4 && arg2P_9>4 ], cost: 1 9: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_10>4 && arg2P_10>4 ], cost: 1 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 1. Accelerating the following rules: 2: f1602_0_main_NULL -> f1602_0_main_NULL : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>=-2+arg1P_3 && arg1>=3+arg2P_3 && arg2>=1+arg2P_3 && arg1>2 && arg2>0 && arg1P_3>2 && arg2P_3>-1 ], cost: 1 During metering: Instantiating temporary variables by {arg2P_3==-1+arg2,arg1P_3==2+arg1} Accelerated rule 2 with metering function arg2, yielding the new rule 11. Removing the simple loops: 2. Accelerating simple loops of location 3. Accelerating the following rules: 4: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_5>2 && arg2P_5>0 ], cost: 1 5: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_6>2 && arg2P_6>0 ], cost: 1 6: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>1 && arg1P_7>2 && arg2P_7>2 ], cost: 1 7: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>1 && arg1P_8>2 && arg2P_8>2 ], cost: 1 8: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_9>4 && arg2P_9>4 ], cost: 1 9: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_10>4 && arg2P_10>4 ], cost: 1 Found no metering function for rule 4. Found no metering function for rule 5. Found no metering function for rule 6. Found no metering function for rule 7. Found no metering function for rule 8. Found no metering function for rule 9. Removing the simple loops:. Accelerated all simple loops using metering functions (where possible): Start location: __init 0: f1_0_main_Load -> f1602_0_main_NULL : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, [ arg1>0 && arg1P_1>2 && arg2P_1>-1 ], cost: 1 3: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg2, arg5'=1, [ arg2>0 && arg3P_4>0 && -2+arg1P_4<=arg1 && -2+arg2P_4<=arg1 && arg1>0 && arg1P_4>2 && arg2P_4>2 ], cost: 1 11: f1602_0_main_NULL -> f1602_0_main_NULL : arg1'=arg1+2*arg2, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>=2+arg2 && arg1>2 && arg2>0 ], cost: arg2 4: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_5>2 && arg2P_5>0 ], cost: 1 5: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_6>2 && arg2P_6>0 ], cost: 1 6: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>1 && arg1P_7>2 && arg2P_7>2 ], cost: 1 7: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>1 && arg1P_8>2 && arg2P_8>2 ], cost: 1 8: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=-1+arg3, arg5'=1+arg5, [ arg3>0 && arg5>-1 && arg52 && arg2>2 && arg1P_9>4 && arg2P_9>4 ], cost: 1 9: f1295_0_createTree_LE -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=-1+arg3, arg5'=1+arg5, [ arg5>-1 && arg3>0 && arg52 && arg2>2 && arg1P_10>4 && arg2P_10>4 ], cost: 1 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Chained accelerated rules (with incoming rules): Start location: __init 0: f1_0_main_Load -> f1602_0_main_NULL : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, [ arg1>0 && arg1P_1>2 && arg2P_1>-1 ], cost: 1 3: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg2, arg5'=1, [ arg2>0 && arg3P_4>0 && -2+arg1P_4<=arg1 && -2+arg2P_4<=arg1 && arg1>0 && arg1P_4>2 && arg2P_4>2 ], cost: 1 12: f1_0_main_Load -> f1602_0_main_NULL : arg1'=2*arg2P_1+arg1P_1, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>0 && arg1P_1>2 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ], cost: 1+arg2P_1 13: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 12 && arg2P_5>0 && arg1P_5<=2+arg1 && 2+arg2P_5<=2+arg1 ], cost: 2 14: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 12 && arg2P_6>0 && arg1P_6<=2+arg1 && 2+arg2P_6<=2+arg1 ], cost: 2 15: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 12 && arg2P_7>2 ], cost: 2 16: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 12 && arg2P_8>2 ], cost: 2 17: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 14 && arg2P_9>4 && -2+arg1P_9<=2+arg1 && -2+arg2P_9<=2+arg1 ], cost: 2 18: f1_0_main_Load -> f1295_0_createTree_LE : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=-1+arg3P_4, arg4'=arg2, arg5'=2, [ arg3P_4>0 && arg1>0 && 14 && arg2P_10>4 && -2+arg1P_10<=2+arg1 && -2+arg2P_10<=2+arg1 ], cost: 2 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 12: f1_0_main_Load -> f1602_0_main_NULL : arg1'=2*arg2P_1+arg1P_1, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1>0 && arg1P_1>2 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ], cost: 1+arg2P_1 10: __init -> f1_0_main_Load : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, [], cost: 1 Eliminated locations (on linear paths): Start location: __init 19: __init -> f1602_0_main_NULL : arg1'=2*arg2P_1+arg1P_1, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1P_11>0 && arg1P_1>2 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ], cost: 2+arg2P_1 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 19: __init -> f1602_0_main_NULL : arg1'=2*arg2P_1+arg1P_1, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1P_11>0 && arg1P_1>2 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ], cost: 2+arg2P_1 Computing asymptotic complexity for rule 19 Simplified the guard: 19: __init -> f1602_0_main_NULL : arg1'=2*arg2P_1+arg1P_1, arg2'=0, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, [ arg1P_11>0 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ], cost: 2+arg2P_1 Solved the limit problem by the following transformations: Created initial limit problem: arg2P_1 (+/+!), -1-arg2P_1+arg1P_1 (+/+!), 2+arg2P_1 (+), arg1P_11 (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {arg2P_1==n,arg1P_1==2+n,arg1P_11==n} resulting limit problem: [solved] Solution: arg2P_1 / n arg1P_1 / 2+n arg1P_11 / n Resulting cost 2+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: 2+n Rule cost: 2+arg2P_1 Rule guard: [ arg1P_11>0 && arg1P_1>=2+arg2P_1 && arg2P_1>0 ] WORST_CASE(INF,?)