WORST_CASE(Omega(1),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1_0_main_Load -> f490_0_loop_GT : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, [ arg1>0 && arg2>-1 && 20==arg1P_1 && 0==arg2P_1 && arg2==arg3P_1 ], cost: 1 1: f490_0_loop_GT -> f564_0_loop_NE : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, arg4'=arg4P_2, [ arg3>0 && arg3-1 && arg2<0 && arg1==arg1P_2 && arg2==arg2P_2 && 1+arg3==arg3P_2 && -2+arg1==arg4P_2 ], cost: 1 2: f490_0_loop_GT -> f564_0_loop_NE : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, [ arg3>0 && arg3-1 && arg2>0 && arg1==arg1P_3 && arg2==arg2P_3 && 1+arg3==arg3P_3 && -2+arg1==arg4P_3 ], cost: 1 3: f490_0_loop_GT -> f565_0_loop_NE : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, [ arg1>-1 && arg3>0 && arg3 f573_0_loop_NE : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, [ arg1>0 && arg1==arg3 && arg1==arg1P_5 && -1+arg1==arg2P_5 && -2+arg1==arg3P_5 ], cost: 1 11: f490_0_loop_GT -> f490_0_loop_GT : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, [ arg1>0 && arg1<3 && 0==arg3 && arg1==arg1P_12 && 1==arg2P_12 && 1==arg3P_12 ], cost: 1 12: f490_0_loop_GT -> f490_0_loop_GT : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, [ arg1>3 && 0==arg3 && arg1==arg1P_13 && 1==arg2P_13 && 1==arg3P_13 ], cost: 1 14: f490_0_loop_GT -> f490_0_loop_GT : arg1'=arg1P_15, arg2'=arg2P_15, arg3'=arg3P_15, arg4'=arg4P_15, [ 0==arg1 && 0==arg3 && 0==arg1P_15 && 0==arg2P_15 && -1==arg3P_15 ], cost: 1 17: f490_0_loop_GT -> f490_0_loop_GT : arg1'=arg1P_18, arg2'=arg2P_18, arg3'=arg3P_18, arg4'=arg4P_18, [ 3==arg1 && 0==arg3 && 2==arg1P_18 && 1==arg2P_18 && 1==arg3P_18 ], cost: 1 5: f564_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, [ arg4>arg3 && arg1==arg1P_6 && arg2==arg2P_6 && arg3==arg3P_6 ], cost: 1 6: f564_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, [ arg4 f490_0_loop_GT : arg1'=arg1P_14, arg2'=arg2P_14, arg3'=arg3P_14, arg4'=arg4P_14, [ arg3==arg4 && -1+arg1==arg1P_14 && arg2==arg2P_14 && arg3==arg3P_14 ], cost: 1 7: f565_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, [ arg3>arg2 && arg1==arg1P_8 && 0==arg2P_8 && arg2==arg3P_8 ], cost: 1 8: f565_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, [ arg3 f490_0_loop_GT : arg1'=arg1P_16, arg2'=arg2P_16, arg3'=arg3P_16, arg4'=arg4P_16, [ arg2==arg3 && -1+arg1==arg1P_16 && 0==arg2P_16 && arg2==arg3P_16 ], cost: 1 9: f573_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, [ arg3>arg2 && arg1==arg1P_10 && 0==arg2P_10 && arg2==arg3P_10 ], cost: 1 10: f573_0_loop_NE -> f490_0_loop_GT : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, [ arg3 f490_0_loop_GT : arg1'=arg1P_17, arg2'=arg2P_17, arg3'=arg3P_17, arg4'=arg4P_17, [ arg2==arg3 && -1+arg1==arg1P_17 && 0==arg2P_17 && arg2==arg3P_17 ], cost: 1 18: __init -> f1_0_main_Load : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 18: __init -> f1_0_main_Load : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1_0_main_Load -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2, arg4'=arg4P_1, [ arg1>0 && arg2>-1 ], cost: 1 1: f490_0_loop_GT -> f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg3 f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg30 ], cost: 1 3: f490_0_loop_GT -> f565_0_loop_NE : arg2'=-1+arg3, arg3'=-2+arg1, arg4'=arg4P_4, [ arg3>0 && arg3 f573_0_loop_NE : arg2'=-1+arg1, arg3'=-2+arg1, arg4'=arg4P_5, [ arg1>0 && arg1==arg3 ], cost: 1 11: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg1>0 && arg1<3 && 0==arg3 ], cost: 1 12: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1>3 && 0==arg3 ], cost: 1 14: f490_0_loop_GT -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ 0==arg1 && 0==arg3 ], cost: 1 17: f490_0_loop_GT -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ 3==arg1 && 0==arg3 ], cost: 1 5: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_6, [ arg4>arg3 ], cost: 1 6: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_7, [ arg4 f490_0_loop_GT : arg1'=-1+arg1, arg4'=arg4P_14, [ arg3==arg4 ], cost: 1 7: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_8, [ arg3>arg2 ], cost: 1 8: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_9, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_16, [ arg2==arg3 ], cost: 1 9: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_10, [ arg3>arg2 ], cost: 1 10: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_11, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_17, [ arg2==arg3 ], cost: 1 18: __init -> f1_0_main_Load : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 1. Accelerating the following rules: 11: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg1>0 && arg1<3 && 0==arg3 ], cost: 1 12: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1>3 && 0==arg3 ], cost: 1 14: f490_0_loop_GT -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ 0==arg1 && 0==arg3 ], cost: 1 17: f490_0_loop_GT -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ 3==arg1 && 0==arg3 ], cost: 1 Accelerated rule 11 with metering function 1-arg3, yielding the new rule 19. Accelerated rule 12 with metering function 1-arg3, yielding the new rule 20. Accelerated rule 14 with metering function 1+arg3, yielding the new rule 21. Accelerated rule 17 with metering function meter (where 2*meter==-3-arg3+arg1), yielding the new rule 22. Removing the simple loops: 11 12 14 17. Accelerated all simple loops using metering functions (where possible): Start location: __init 0: f1_0_main_Load -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2, arg4'=arg4P_1, [ arg1>0 && arg2>-1 ], cost: 1 1: f490_0_loop_GT -> f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg3 f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg30 ], cost: 1 3: f490_0_loop_GT -> f565_0_loop_NE : arg2'=-1+arg3, arg3'=-2+arg1, arg4'=arg4P_4, [ arg3>0 && arg3 f573_0_loop_NE : arg2'=-1+arg1, arg3'=-2+arg1, arg4'=arg4P_5, [ arg1>0 && arg1==arg3 ], cost: 1 19: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg1>0 && arg1<3 && 0==arg3 ], cost: 1-arg3 20: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1>3 && 0==arg3 ], cost: 1-arg3 21: f490_0_loop_GT -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ 0==arg1 && 0==arg3 ], cost: 1+arg3 22: f490_0_loop_GT -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ 3==arg1 && 0==arg3 && 2*meter==-3-arg3+arg1 && meter>=1 ], cost: meter 5: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_6, [ arg4>arg3 ], cost: 1 6: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_7, [ arg4 f490_0_loop_GT : arg1'=-1+arg1, arg4'=arg4P_14, [ arg3==arg4 ], cost: 1 7: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_8, [ arg3>arg2 ], cost: 1 8: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_9, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_16, [ arg2==arg3 ], cost: 1 9: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_10, [ arg3>arg2 ], cost: 1 10: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_11, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_17, [ arg2==arg3 ], cost: 1 18: __init -> f1_0_main_Load : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, [], cost: 1 Chained accelerated rules (with incoming rules): Start location: __init 0: f1_0_main_Load -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2, arg4'=arg4P_1, [ arg1>0 && arg2>-1 ], cost: 1 32: f1_0_main_Load -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1>0 && 0==arg2 ], cost: 2-arg2 1: f490_0_loop_GT -> f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg3 f564_0_loop_NE : arg3'=1+arg3, arg4'=-2+arg1, [ arg3>0 && arg30 ], cost: 1 3: f490_0_loop_GT -> f565_0_loop_NE : arg2'=-1+arg3, arg3'=-2+arg1, arg4'=arg4P_4, [ arg3>0 && arg3 f573_0_loop_NE : arg2'=-1+arg1, arg3'=-2+arg1, arg4'=arg4P_5, [ arg1>0 && arg1==arg3 ], cost: 1 5: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_6, [ arg4>arg3 ], cost: 1 6: f564_0_loop_NE -> f490_0_loop_GT : arg4'=arg4P_7, [ arg4 f490_0_loop_GT : arg1'=-1+arg1, arg4'=arg4P_14, [ arg3==arg4 ], cost: 1 23: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg4>arg3 && arg1>0 && arg1<3 && 0==arg3 ], cost: 2-arg3 24: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg40 && arg1<3 && 0==arg3 ], cost: 2-arg3 29: f564_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg3==arg4 && -1+arg1>0 && -1+arg1<3 && 0==arg3 ], cost: 2-arg3 33: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg4>arg3 && arg1>3 && 0==arg3 ], cost: 2-arg3 34: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg43 && 0==arg3 ], cost: 2-arg3 39: f564_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg3==arg4 && -1+arg1>3 && 0==arg3 ], cost: 2-arg3 42: f564_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg4>arg3 && 0==arg1 && 0==arg3 ], cost: 2+arg3 43: f564_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg4 f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg3==arg4 && 0==-1+arg1 && 0==arg3 ], cost: 2+arg3 7: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_8, [ arg3>arg2 ], cost: 1 8: f565_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_9, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_16, [ arg2==arg3 ], cost: 1 25: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg3>arg2 && arg1>0 && arg1<3 && 0==arg2 ], cost: 2-arg2 26: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg30 && arg1<3 && 0==arg2 ], cost: 2-arg2 30: f565_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg2==arg3 && -1+arg1>0 && -1+arg1<3 && 0==arg2 ], cost: 2-arg2 35: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg3>arg2 && arg1>3 && 0==arg2 ], cost: 2-arg2 36: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg33 && 0==arg2 ], cost: 2-arg2 40: f565_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg2==arg3 && -1+arg1>3 && 0==arg2 ], cost: 2-arg2 44: f565_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg3>arg2 && 0==arg1 && 0==arg2 ], cost: 2+arg2 45: f565_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg3 f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg2==arg3 && 0==-1+arg1 && 0==arg2 ], cost: 2+arg2 9: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_10, [ arg3>arg2 ], cost: 1 10: f573_0_loop_NE -> f490_0_loop_GT : arg2'=0, arg3'=arg2, arg4'=arg4P_11, [ arg3 f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=arg2, arg4'=arg4P_17, [ arg2==arg3 ], cost: 1 27: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg3>arg2 && arg1>0 && arg1<3 && 0==arg2 ], cost: 2-arg2 28: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg30 && arg1<3 && 0==arg2 ], cost: 2-arg2 31: f573_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg2==arg3 && -1+arg1>0 && -1+arg1<3 && 0==arg2 ], cost: 2-arg2 37: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg3>arg2 && arg1>3 && 0==arg2 ], cost: 2-arg2 38: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg33 && 0==arg2 ], cost: 2-arg2 41: f573_0_loop_NE -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg2==arg3 && -1+arg1>3 && 0==arg2 ], cost: 2-arg2 46: f573_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg3>arg2 && 0==arg1 && 0==arg2 ], cost: 2+arg2 47: f573_0_loop_NE -> f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg3 f490_0_loop_GT : arg1'=0, arg2'=0, arg3'=-1, arg4'=arg4P_15, [ arg2==arg3 && 0==-1+arg1 && 0==arg2 ], cost: 2+arg2 18: __init -> f1_0_main_Load : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: __init 53: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 54: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_7, [ arg3>0 && arg3 f490_0_loop_GT : arg1'=-1+arg1, arg3'=1+arg3, arg4'=arg4P_14, [ arg3>0 && arg2<0 && 1+arg3==-2+arg1 ], cost: 2 56: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -2+arg1>1+arg3 ], cost: 2 57: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_7, [ arg3>0 && arg30 && -2+arg1<1+arg3 ], cost: 2 58: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-1+arg1, arg3'=1+arg3, arg4'=arg4P_14, [ arg3>0 && arg2>0 && 1+arg3==-2+arg1 ], cost: 2 59: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=-1+arg3, arg4'=arg4P_8, [ arg3>0 && 0==arg2 && -2+arg1>-1+arg3 ], cost: 2 60: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=0, arg3'=-1+arg3, arg4'=arg4P_16, [ arg3>0 && 0==arg2 && -1+arg3==-2+arg1 ], cost: 2 61: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-1+arg1, arg2'=1, arg3'=1, arg4'=arg4P_12, [ 0==arg2 && -1+arg3==-2+arg1 && -1+arg1>0 && -1+arg1<3 && 0==-1+arg3 ], cost: 4-arg3 62: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ 0==arg2 && -2+arg1>-1+arg3 && arg1>3 && 0==-1+arg3 ], cost: 4-arg3 63: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=-1+arg1, arg4'=arg4P_11, [ arg1>0 && arg1==arg3 ], cost: 2 64: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg1==arg3 && 0==-1+arg1 ], cost: 4-arg1 51: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 Applied pruning (of leafs and parallel rules): Start location: __init 53: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 54: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_7, [ arg3>0 && arg3 f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -2+arg1>1+arg3 ], cost: 2 58: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-1+arg1, arg3'=1+arg3, arg4'=arg4P_14, [ arg3>0 && arg2>0 && 1+arg3==-2+arg1 ], cost: 2 59: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=-1+arg3, arg4'=arg4P_8, [ arg3>0 && 0==arg2 && -2+arg1>-1+arg3 ], cost: 2 51: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 Accelerating simple loops of location 1. Accelerating the following rules: 53: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 54: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_7, [ arg3>0 && arg3 f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -2+arg1>1+arg3 ], cost: 2 58: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-1+arg1, arg3'=1+arg3, arg4'=arg4P_14, [ arg3>0 && arg2>0 && 1+arg3==-2+arg1 ], cost: 2 59: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=-1+arg3, arg4'=arg4P_8, [ arg3>0 && 0==arg2 && -2+arg1>-1+arg3 ], cost: 2 Accelerated rule 53 with metering function -3-arg3+arg1, yielding the new rule 65. Accelerated rule 54 with metering function -arg3+arg1, yielding the new rule 66. Accelerated rule 56 with metering function -3-arg3+arg1, yielding the new rule 67. Accelerated rule 58 with metering function meter_1 (where 2*meter_1==-2-arg3+arg1), yielding the new rule 68. Accelerated rule 59 with metering function arg3, yielding the new rule 69. Removing the simple loops: 53 54 56 58 59. Accelerated all simple loops using metering functions (where possible): Start location: __init 65: f490_0_loop_GT -> f490_0_loop_GT : arg3'=-3+arg1, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: -6-2*arg3+2*arg1 66: f490_0_loop_GT -> f490_0_loop_GT : arg3'=arg1, arg4'=arg4P_7, [ arg3>0 && arg3 f490_0_loop_GT : arg3'=-3+arg1, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -2+arg1>1+arg3 ], cost: -6-2*arg3+2*arg1 68: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-meter_1+arg1, arg3'=meter_1+arg3, arg4'=arg4P_14, [ arg3>0 && arg2>0 && 1+arg3==-2+arg1 && 2*meter_1==-2-arg3+arg1 && meter_1>=1 ], cost: 2*meter_1 69: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=0, arg4'=arg4P_8, [ arg3>0 && 0==arg2 && -2+arg1>-1+arg3 ], cost: 2*arg3 51: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 Chained accelerated rules (with incoming rules): Start location: __init 51: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 70: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=17, arg4'=arg4P_6, [], cost: 35 71: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ arg2P_19>0 && 18>-1+arg2P_19 ], cost: 2+2*arg2P_19 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 71: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ arg2P_19>0 && 18>-1+arg2P_19 ], cost: 2+2*arg2P_19 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 52: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3-arg2P_19 71: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ arg2P_19>0 && 18>-1+arg2P_19 ], cost: 2+2*arg2P_19 Computing asymptotic complexity for rule 52 Could not solve the limit problem. Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 71 Could not solve the limit problem. Resulting cost 0 has complexity: Unknown Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Constant Cpx degree: 0 Solved cost: 1 Rule cost: 1 Rule guard: [] WORST_CASE(Omega(1),?)