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 Failed to prove monotonicity of the guard of rule 11. Failed to prove monotonicity of the guard of rule 12. Failed to prove monotonicity of the guard of rule 14. Failed to prove monotonicity of the guard of rule 17. [accelerate] Nesting with 4 inner and 4 outer candidates 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 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 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 28: f1_0_main_Load -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1>0 && 0==arg2 ], cost: 2 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 19: 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 20: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg40 && arg1<3 && 0==arg3 ], cost: 2 25: 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 29: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg4>arg3 && arg1>3 && 0==arg3 ], cost: 2 30: f564_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg43 && 0==arg3 ], cost: 2 35: 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 38: 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 39: 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 47: f564_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg4>arg3 && 3==arg1 && 0==arg3 ], cost: 2 48: f564_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg4 f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg3==arg4 && 3==-1+arg1 && 0==arg3 ], cost: 2 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 21: 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 22: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg30 && arg1<3 && 0==arg2 ], cost: 2 26: 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 31: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg3>arg2 && arg1>3 && 0==arg2 ], cost: 2 32: f565_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg33 && 0==arg2 ], cost: 2 36: 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 40: 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 41: 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 49: f565_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg3>arg2 && 3==arg1 && 0==arg2 ], cost: 2 50: f565_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg3 f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg2==arg3 && 3==-1+arg1 && 0==arg2 ], cost: 2 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 23: 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 24: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg30 && arg1<3 && 0==arg2 ], cost: 2 27: 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 33: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg3>arg2 && arg1>3 && 0==arg2 ], cost: 2 34: f573_0_loop_NE -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg33 && 0==arg2 ], cost: 2 37: 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 42: 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 43: 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 51: f573_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg3>arg2 && 3==arg1 && 0==arg2 ], cost: 2 52: f573_0_loop_NE -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg3 f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ arg2==arg3 && 3==-1+arg1 && 0==arg2 ], cost: 2 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 58: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 59: 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 61: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -2+arg1>1+arg3 ], cost: 2 62: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_7, [ arg3>0 && arg30 && -2+arg1<1+arg3 ], cost: 2 63: 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 64: 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 65: 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 66: 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: 3 67: 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: 3 68: f490_0_loop_GT -> f490_0_loop_GT : arg1'=2, arg2'=1, arg3'=1, arg4'=arg4P_18, [ 0==arg2 && -2+arg1>-1+arg3 && 3==arg1 && 0==-1+arg3 ], cost: 3 69: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=-1+arg1, arg4'=arg4P_11, [ arg1>0 && arg1==arg3 ], cost: 2 70: f490_0_loop_GT -> f490_0_loop_GT : arg2'=1, arg3'=1, arg4'=arg4P_12, [ arg1==arg3 && 0==-1+arg1 ], cost: 3 56: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 57: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3 Applied pruning (of leafs and parallel rules): Start location: __init 58: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 59: 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 64: 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 65: 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 56: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 57: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3 Accelerating simple loops of location 1. Accelerating the following rules: 58: f490_0_loop_GT -> f490_0_loop_GT : arg3'=1+arg3, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -2+arg1>1+arg3 ], cost: 2 59: 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 64: 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 65: 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 Accelerated rule 58 with backward acceleration, yielding the new rule 71. Accelerated rule 59 with backward acceleration, yielding the new rule 72. Accelerated rule 61 with backward acceleration, yielding the new rule 73. Accelerated rule 64 with backward acceleration, yielding the new rule 74. Accelerated rule 65 with backward acceleration, yielding the new rule 75. [accelerate] Nesting with 5 inner and 5 outer candidates Removing the simple loops: 58 59 61 64 65. Accelerated all simple loops using metering functions (where possible): Start location: __init 71: f490_0_loop_GT -> f490_0_loop_GT : arg3'=-3+arg1, arg4'=arg4P_6, [ arg3>0 && arg2<0 && -3-arg3+arg1>=1 ], cost: -6-2*arg3+2*arg1 72: f490_0_loop_GT -> f490_0_loop_GT : arg3'=arg1, arg4'=arg4P_7, [ arg3>0 && arg2<0 && -2+arg1<1+arg3 && -arg3+arg1>=1 ], cost: -2*arg3+2*arg1 73: f490_0_loop_GT -> f490_0_loop_GT : arg3'=-3+arg1, arg4'=arg4P_6, [ arg3>0 && arg2>0 && -3-arg3+arg1>=1 ], cost: -6-2*arg3+2*arg1 74: f490_0_loop_GT -> f490_0_loop_GT : arg2'=0, arg3'=0, arg4'=arg4P_8, [ 0==arg2 && -2+arg1>-1+arg3 && arg3>=1 ], cost: 2*arg3 75: f490_0_loop_GT -> f490_0_loop_GT : arg1'=-arg3+arg1, arg2'=0, arg3'=0, arg4'=arg4P_16, [ 0==arg2 && -1+arg3==-2+arg1 && arg3>=1 ], cost: 2*arg3 56: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 57: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3 Chained accelerated rules (with incoming rules): Start location: __init 56: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=arg2P_19, arg4'=arg4P_1, [ arg1P_19>0 && arg2P_19>-1 ], cost: 2 57: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=1, arg4'=arg4P_13, [ arg1P_19>0 && 0==arg2P_19 ], cost: 3 76: __init -> f490_0_loop_GT : arg1'=20, arg2'=1, arg3'=17, arg4'=arg4P_6, [], cost: 35 77: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ 18>-1+arg2P_19 && arg2P_19>=1 ], cost: 2+2*arg2P_19 78: __init -> f490_0_loop_GT : arg1'=1, arg2'=0, arg3'=0, arg4'=arg4P_16, [], cost: 40 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 77: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ 18>-1+arg2P_19 && arg2P_19>=1 ], cost: 2+2*arg2P_19 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 77: __init -> f490_0_loop_GT : arg1'=20, arg2'=0, arg3'=0, arg4'=arg4P_8, [ 18>-1+arg2P_19 && arg2P_19>=1 ], cost: 2+2*arg2P_19 Computing asymptotic complexity for rule 77 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),?)