WORST_CASE(Omega(1),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1 -> f2 : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, arg6'=arg6P_1, [ arg2==arg2P_1 && arg3==arg3P_1 && arg4==arg4P_1 && arg5==arg5P_1 && arg6==arg6P_1 ], cost: 1 1: f2 -> f3 : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, arg4'=arg4P_2, arg5'=arg5P_2, arg6'=arg6P_2, [ arg1==arg1P_2 && arg3==arg3P_2 && arg4==arg4P_2 && arg5==arg5P_2 && arg6==arg6P_2 ], cost: 1 2: f3 -> f4 : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, arg6'=arg6P_3, [ arg1==arg1P_3 && arg2==arg2P_3 && arg4==arg4P_3 && arg5==arg5P_3 && arg6==arg6P_3 ], cost: 1 3: f4 -> f5 : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, arg5'=arg5P_4, arg6'=arg6P_4, [ arg1==arg1P_4 && arg2==arg2P_4 && arg3==arg3P_4 && arg4==arg4P_4 && arg6==arg6P_4 ], cost: 1 4: f5 -> f6 : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, arg5'=arg5P_5, arg6'=arg6P_5, [ arg1==arg1P_5 && arg2==arg2P_5 && arg3==arg3P_5 && arg5==arg5P_5 && arg6==arg6P_5 ], cost: 1 5: f6 -> f7 : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, arg5'=arg5P_6, arg6'=arg6P_6, [ arg1==arg1P_6 && arg2==arg2P_6 && arg3==arg3P_6 && arg4==arg4P_6 && arg5==arg5P_6 ], cost: 1 22: f7 -> f8 : arg1'=arg1P_23, arg2'=arg2P_23, arg3'=arg3P_23, arg4'=arg4P_23, arg5'=arg5P_23, arg6'=arg6P_23, [ 0<=arg5 && 0<=arg4 && 0<=arg6 && arg1==arg1P_23 && arg2==arg2P_23 && arg3==arg3P_23 && arg4==arg4P_23 && arg5==arg5P_23 && arg6==arg6P_23 ], cost: 1 23: f7 -> f9 : arg1'=arg1P_24, arg2'=arg2P_24, arg3'=arg3P_24, arg4'=arg4P_24, arg5'=arg5P_24, arg6'=arg6P_24, [ 0>arg6 && arg1==arg1P_24 && arg2==arg2P_24 && arg3==arg3P_24 && arg4==arg4P_24 && arg5==arg5P_24 && arg6==arg6P_24 ], cost: 1 24: f7 -> f9 : arg1'=arg1P_25, arg2'=arg2P_25, arg3'=arg3P_25, arg4'=arg4P_25, arg5'=arg5P_25, arg6'=arg6P_25, [ 0>arg5 && arg1==arg1P_25 && arg2==arg2P_25 && arg3==arg3P_25 && arg4==arg4P_25 && arg5==arg5P_25 && arg6==arg6P_25 ], cost: 1 25: f7 -> f9 : arg1'=arg1P_26, arg2'=arg2P_26, arg3'=arg3P_26, arg4'=arg4P_26, arg5'=arg5P_26, arg6'=arg6P_26, [ 0>arg4 && arg1==arg1P_26 && arg2==arg2P_26 && arg3==arg3P_26 && arg4==arg4P_26 && arg5==arg5P_26 && arg6==arg6P_26 ], cost: 1 6: f8 -> f11 : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, arg5'=arg5P_7, arg6'=arg6P_7, [ 0==arg1P_7 && arg2==arg2P_7 && arg3==arg3P_7 && arg4==arg4P_7 && arg5==arg5P_7 && arg6==arg6P_7 ], cost: 1 19: f11 -> f12 : arg1'=arg1P_20, arg2'=arg2P_20, arg3'=arg3P_20, arg4'=arg4P_20, arg5'=arg5P_20, arg6'=arg6P_20, [ arg1 f23 : arg1'=arg1P_22, arg2'=arg2P_22, arg3'=arg3P_22, arg4'=arg4P_22, arg5'=arg5P_22, arg6'=arg6P_22, [ arg1>=arg5 && arg1==arg1P_22 && arg2==arg2P_22 && arg3==arg3P_22 && arg4==arg4P_22 && arg5==arg5P_22 && arg6==arg6P_22 ], cost: 1 7: f12 -> f13 : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, arg5'=arg5P_8, arg6'=arg6P_8, [ arg1==arg1P_8 && 0==arg2P_8 && arg3==arg3P_8 && arg4==arg4P_8 && arg5==arg5P_8 && arg6==arg6P_8 ], cost: 1 15: f13 -> f14 : arg1'=arg1P_16, arg2'=arg2P_16, arg3'=arg3P_16, arg4'=arg4P_16, arg5'=arg5P_16, arg6'=arg6P_16, [ arg2 f21 : arg1'=arg1P_18, arg2'=arg2P_18, arg3'=arg3P_18, arg4'=arg4P_18, arg5'=arg5P_18, arg6'=arg6P_18, [ arg2>=arg4 && arg1==arg1P_18 && arg2==arg2P_18 && arg3==arg3P_18 && arg4==arg4P_18 && arg5==arg5P_18 && arg6==arg6P_18 ], cost: 1 8: f14 -> f15 : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, arg5'=arg5P_9, arg6'=arg6P_9, [ arg2P_9==1+arg2 && arg1==arg1P_9 && arg3==arg3P_9 && arg4==arg4P_9 && arg5==arg5P_9 && arg6==arg6P_9 ], cost: 1 9: f15 -> f16 : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, arg5'=arg5P_10, arg6'=arg6P_10, [ arg1==arg1P_10 && arg2==arg2P_10 && arg1==arg3P_10 && arg4==arg4P_10 && arg5==arg5P_10 && arg6==arg6P_10 ], cost: 1 11: f16 -> f17 : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, arg5'=arg5P_12, arg6'=arg6P_12, [ arg3 f19 : arg1'=arg1P_14, arg2'=arg2P_14, arg3'=arg3P_14, arg4'=arg4P_14, arg5'=arg5P_14, arg6'=arg6P_14, [ arg3>=arg6 && arg1==arg1P_14 && arg2==arg2P_14 && arg3==arg3P_14 && arg4==arg4P_14 && arg5==arg5P_14 && arg6==arg6P_14 ], cost: 1 10: f17 -> f18 : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, arg6'=arg6P_11, [ arg3P_11==1+arg3 && arg1==arg1P_11 && arg2==arg2P_11 && arg4==arg4P_11 && arg5==arg5P_11 && arg6==arg6P_11 ], cost: 1 12: f18 -> f16 : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, arg5'=arg5P_13, arg6'=arg6P_13, [ arg1==arg1P_13 && arg2==arg2P_13 && arg3==arg3P_13 && arg4==arg4P_13 && arg5==arg5P_13 && arg6==arg6P_13 ], cost: 1 14: f19 -> f20 : arg1'=arg1P_15, arg2'=arg2P_15, arg3'=arg3P_15, arg4'=arg4P_15, arg5'=arg5P_15, arg6'=arg6P_15, [ arg3==arg1P_15 && arg2==arg2P_15 && arg3==arg3P_15 && arg4==arg4P_15 && arg5==arg5P_15 && arg6==arg6P_15 ], cost: 1 16: f20 -> f13 : arg1'=arg1P_17, arg2'=arg2P_17, arg3'=arg3P_17, arg4'=arg4P_17, arg5'=arg5P_17, arg6'=arg6P_17, [ arg1==arg1P_17 && arg2==arg2P_17 && arg3==arg3P_17 && arg4==arg4P_17 && arg5==arg5P_17 && arg6==arg6P_17 ], cost: 1 18: f21 -> f22 : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, arg5'=arg5P_19, arg6'=arg6P_19, [ arg1P_19==1+arg1 && arg2==arg2P_19 && arg3==arg3P_19 && arg4==arg4P_19 && arg5==arg5P_19 && arg6==arg6P_19 ], cost: 1 20: f22 -> f11 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, arg4'=arg4P_21, arg5'=arg5P_21, arg6'=arg6P_21, [ arg1==arg1P_21 && arg2==arg2P_21 && arg3==arg3P_21 && arg4==arg4P_21 && arg5==arg5P_21 && arg6==arg6P_21 ], cost: 1 26: f23 -> f10 : arg1'=arg1P_27, arg2'=arg2P_27, arg3'=arg3P_27, arg4'=arg4P_27, arg5'=arg5P_27, arg6'=arg6P_27, [ arg1==arg1P_27 && arg2==arg2P_27 && arg3==arg3P_27 && arg4==arg4P_27 && arg5==arg5P_27 && arg6==arg6P_27 ], cost: 1 27: f9 -> f10 : arg1'=arg1P_28, arg2'=arg2P_28, arg3'=arg3P_28, arg4'=arg4P_28, arg5'=arg5P_28, arg6'=arg6P_28, [ arg1==arg1P_28 && arg2==arg2P_28 && arg3==arg3P_28 && arg4==arg4P_28 && arg5==arg5P_28 && arg6==arg6P_28 ], cost: 1 28: __init -> f1 : arg1'=arg1P_29, arg2'=arg2P_29, arg3'=arg3P_29, arg4'=arg4P_29, arg5'=arg5P_29, arg6'=arg6P_29, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 28: __init -> f1 : arg1'=arg1P_29, arg2'=arg2P_29, arg3'=arg3P_29, arg4'=arg4P_29, arg5'=arg5P_29, arg6'=arg6P_29, [], cost: 1 Removed unreachable and leaf rules: Start location: __init 0: f1 -> f2 : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, arg4'=arg4P_1, arg5'=arg5P_1, arg6'=arg6P_1, [ arg2==arg2P_1 && arg3==arg3P_1 && arg4==arg4P_1 && arg5==arg5P_1 && arg6==arg6P_1 ], cost: 1 1: f2 -> f3 : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, arg4'=arg4P_2, arg5'=arg5P_2, arg6'=arg6P_2, [ arg1==arg1P_2 && arg3==arg3P_2 && arg4==arg4P_2 && arg5==arg5P_2 && arg6==arg6P_2 ], cost: 1 2: f3 -> f4 : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, arg4'=arg4P_3, arg5'=arg5P_3, arg6'=arg6P_3, [ arg1==arg1P_3 && arg2==arg2P_3 && arg4==arg4P_3 && arg5==arg5P_3 && arg6==arg6P_3 ], cost: 1 3: f4 -> f5 : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, arg4'=arg4P_4, arg5'=arg5P_4, arg6'=arg6P_4, [ arg1==arg1P_4 && arg2==arg2P_4 && arg3==arg3P_4 && arg4==arg4P_4 && arg6==arg6P_4 ], cost: 1 4: f5 -> f6 : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, arg4'=arg4P_5, arg5'=arg5P_5, arg6'=arg6P_5, [ arg1==arg1P_5 && arg2==arg2P_5 && arg3==arg3P_5 && arg5==arg5P_5 && arg6==arg6P_5 ], cost: 1 5: f6 -> f7 : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, arg4'=arg4P_6, arg5'=arg5P_6, arg6'=arg6P_6, [ arg1==arg1P_6 && arg2==arg2P_6 && arg3==arg3P_6 && arg4==arg4P_6 && arg5==arg5P_6 ], cost: 1 22: f7 -> f8 : arg1'=arg1P_23, arg2'=arg2P_23, arg3'=arg3P_23, arg4'=arg4P_23, arg5'=arg5P_23, arg6'=arg6P_23, [ 0<=arg5 && 0<=arg4 && 0<=arg6 && arg1==arg1P_23 && arg2==arg2P_23 && arg3==arg3P_23 && arg4==arg4P_23 && arg5==arg5P_23 && arg6==arg6P_23 ], cost: 1 6: f8 -> f11 : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, arg4'=arg4P_7, arg5'=arg5P_7, arg6'=arg6P_7, [ 0==arg1P_7 && arg2==arg2P_7 && arg3==arg3P_7 && arg4==arg4P_7 && arg5==arg5P_7 && arg6==arg6P_7 ], cost: 1 19: f11 -> f12 : arg1'=arg1P_20, arg2'=arg2P_20, arg3'=arg3P_20, arg4'=arg4P_20, arg5'=arg5P_20, arg6'=arg6P_20, [ arg1 f13 : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, arg4'=arg4P_8, arg5'=arg5P_8, arg6'=arg6P_8, [ arg1==arg1P_8 && 0==arg2P_8 && arg3==arg3P_8 && arg4==arg4P_8 && arg5==arg5P_8 && arg6==arg6P_8 ], cost: 1 15: f13 -> f14 : arg1'=arg1P_16, arg2'=arg2P_16, arg3'=arg3P_16, arg4'=arg4P_16, arg5'=arg5P_16, arg6'=arg6P_16, [ arg2 f21 : arg1'=arg1P_18, arg2'=arg2P_18, arg3'=arg3P_18, arg4'=arg4P_18, arg5'=arg5P_18, arg6'=arg6P_18, [ arg2>=arg4 && arg1==arg1P_18 && arg2==arg2P_18 && arg3==arg3P_18 && arg4==arg4P_18 && arg5==arg5P_18 && arg6==arg6P_18 ], cost: 1 8: f14 -> f15 : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, arg4'=arg4P_9, arg5'=arg5P_9, arg6'=arg6P_9, [ arg2P_9==1+arg2 && arg1==arg1P_9 && arg3==arg3P_9 && arg4==arg4P_9 && arg5==arg5P_9 && arg6==arg6P_9 ], cost: 1 9: f15 -> f16 : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, arg4'=arg4P_10, arg5'=arg5P_10, arg6'=arg6P_10, [ arg1==arg1P_10 && arg2==arg2P_10 && arg1==arg3P_10 && arg4==arg4P_10 && arg5==arg5P_10 && arg6==arg6P_10 ], cost: 1 11: f16 -> f17 : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, arg4'=arg4P_12, arg5'=arg5P_12, arg6'=arg6P_12, [ arg3 f19 : arg1'=arg1P_14, arg2'=arg2P_14, arg3'=arg3P_14, arg4'=arg4P_14, arg5'=arg5P_14, arg6'=arg6P_14, [ arg3>=arg6 && arg1==arg1P_14 && arg2==arg2P_14 && arg3==arg3P_14 && arg4==arg4P_14 && arg5==arg5P_14 && arg6==arg6P_14 ], cost: 1 10: f17 -> f18 : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, arg4'=arg4P_11, arg5'=arg5P_11, arg6'=arg6P_11, [ arg3P_11==1+arg3 && arg1==arg1P_11 && arg2==arg2P_11 && arg4==arg4P_11 && arg5==arg5P_11 && arg6==arg6P_11 ], cost: 1 12: f18 -> f16 : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, arg4'=arg4P_13, arg5'=arg5P_13, arg6'=arg6P_13, [ arg1==arg1P_13 && arg2==arg2P_13 && arg3==arg3P_13 && arg4==arg4P_13 && arg5==arg5P_13 && arg6==arg6P_13 ], cost: 1 14: f19 -> f20 : arg1'=arg1P_15, arg2'=arg2P_15, arg3'=arg3P_15, arg4'=arg4P_15, arg5'=arg5P_15, arg6'=arg6P_15, [ arg3==arg1P_15 && arg2==arg2P_15 && arg3==arg3P_15 && arg4==arg4P_15 && arg5==arg5P_15 && arg6==arg6P_15 ], cost: 1 16: f20 -> f13 : arg1'=arg1P_17, arg2'=arg2P_17, arg3'=arg3P_17, arg4'=arg4P_17, arg5'=arg5P_17, arg6'=arg6P_17, [ arg1==arg1P_17 && arg2==arg2P_17 && arg3==arg3P_17 && arg4==arg4P_17 && arg5==arg5P_17 && arg6==arg6P_17 ], cost: 1 18: f21 -> f22 : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, arg4'=arg4P_19, arg5'=arg5P_19, arg6'=arg6P_19, [ arg1P_19==1+arg1 && arg2==arg2P_19 && arg3==arg3P_19 && arg4==arg4P_19 && arg5==arg5P_19 && arg6==arg6P_19 ], cost: 1 20: f22 -> f11 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, arg4'=arg4P_21, arg5'=arg5P_21, arg6'=arg6P_21, [ arg1==arg1P_21 && arg2==arg2P_21 && arg3==arg3P_21 && arg4==arg4P_21 && arg5==arg5P_21 && arg6==arg6P_21 ], cost: 1 28: __init -> f1 : arg1'=arg1P_29, arg2'=arg2P_29, arg3'=arg3P_29, arg4'=arg4P_29, arg5'=arg5P_29, arg6'=arg6P_29, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1 -> f2 : arg1'=arg1P_1, [], cost: 1 1: f2 -> f3 : arg2'=arg2P_2, [], cost: 1 2: f3 -> f4 : arg3'=arg3P_3, [], cost: 1 3: f4 -> f5 : arg5'=arg5P_4, [], cost: 1 4: f5 -> f6 : arg4'=arg4P_5, [], cost: 1 5: f6 -> f7 : arg6'=arg6P_6, [], cost: 1 22: f7 -> f8 : [ 0<=arg5 && 0<=arg4 && 0<=arg6 ], cost: 1 6: f8 -> f11 : arg1'=0, [], cost: 1 19: f11 -> f12 : [ arg1 f13 : arg2'=0, [], cost: 1 15: f13 -> f14 : [ arg2 f21 : [ arg2>=arg4 ], cost: 1 8: f14 -> f15 : arg2'=1+arg2, [], cost: 1 9: f15 -> f16 : arg3'=arg1, [], cost: 1 11: f16 -> f17 : [ arg3 f19 : [ arg3>=arg6 ], cost: 1 10: f17 -> f18 : arg3'=1+arg3, [], cost: 1 12: f18 -> f16 : [], cost: 1 14: f19 -> f20 : arg1'=arg3, [], cost: 1 16: f20 -> f13 : [], cost: 1 18: f21 -> f22 : arg1'=1+arg1, [], cost: 1 20: f22 -> f11 : [], cost: 1 28: __init -> f1 : arg1'=arg1P_29, arg2'=arg2P_29, arg3'=arg3P_29, arg4'=arg4P_29, arg5'=arg5P_29, arg6'=arg6P_29, [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: __init 37: f11 -> f13 : arg2'=0, [ arg1 f16 : arg2'=1+arg2, arg3'=arg1, [ arg2 f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 44: f16 -> f16 : arg3'=1+arg3, [ arg3 f13 : arg1'=arg3, [ arg3>=arg6 ], cost: 3 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Accelerating simple loops of location 13. Accelerating the following rules: 44: f16 -> f16 : arg3'=1+arg3, [ arg3 f13 : arg2'=0, [ arg1 f16 : arg2'=1+arg2, arg3'=arg1, [ arg2 f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 45: f16 -> f13 : arg1'=arg3, [ arg3>=arg6 ], cost: 3 46: f16 -> f16 : arg3'=arg6, [ arg6-arg3>=0 ], cost: 3*arg6-3*arg3 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Chained accelerated rules (with incoming rules): Start location: __init 37: f11 -> f13 : arg2'=0, [ arg1 f16 : arg2'=1+arg2, arg3'=arg1, [ arg2 f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 47: f13 -> f16 : arg2'=1+arg2, arg3'=arg6, [ arg2=0 ], cost: 3+3*arg6-3*arg1 45: f16 -> f13 : arg1'=arg3, [ arg3>=arg6 ], cost: 3 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Eliminated locations (on tree-shaped paths): Start location: __init 37: f11 -> f13 : arg2'=0, [ arg1 f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 48: f13 -> f13 : arg1'=arg1, arg2'=1+arg2, arg3'=arg1, [ arg2=arg6 ], cost: 6 49: f13 -> f13 : arg1'=arg6, arg2'=1+arg2, arg3'=arg6, [ arg2=0 ], cost: 6+3*arg6-3*arg1 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Accelerating simple loops of location 10. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 48: f13 -> f13 : arg2'=1+arg2, arg3'=arg1, [ arg2=arg6 ], cost: 6 49: f13 -> f13 : arg1'=arg6, arg2'=1+arg2, arg3'=arg6, [ arg2=0 ], cost: 6+3*arg6-3*arg1 Accelerated rule 48 with backward acceleration, yielding the new rule 50. Accelerated rule 49 with backward acceleration, yielding the new rule 51. [accelerate] Nesting with 2 inner and 2 outer candidates Removing the simple loops: 48 49. Accelerated all simple loops using metering functions (where possible): Start location: __init 37: f11 -> f13 : arg2'=0, [ arg1 f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 50: f13 -> f13 : arg2'=arg4, arg3'=arg1, [ arg1>=arg6 && -arg2+arg4>=1 ], cost: -6*arg2+6*arg4 51: f13 -> f13 : arg1'=arg6, arg2'=arg4, arg3'=arg6, [ arg6-arg1>=0 && -arg2+arg4>=1 ], cost: -6*arg2+6*arg4 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Chained accelerated rules (with incoming rules): Start location: __init 37: f11 -> f13 : arg2'=0, [ arg1 f13 : arg2'=arg4, arg3'=arg1, [ arg1=arg6 && arg4>=1 ], cost: 2+6*arg4 53: f11 -> f13 : arg1'=arg6, arg2'=arg4, arg3'=arg6, [ arg1=0 && arg4>=1 ], cost: 2+6*arg4 41: f13 -> f11 : arg1'=1+arg1, [ arg2>=arg4 ], cost: 3 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Eliminated locations (on tree-shaped paths): Start location: __init 54: f11 -> f11 : arg1'=1+arg1, arg2'=0, [ arg1=arg4 ], cost: 5 55: f11 -> f11 : arg1'=1+arg1, arg2'=arg4, arg3'=arg1, [ arg1=arg6 && arg4>=1 ], cost: 5+6*arg4 56: f11 -> f11 : arg1'=1+arg6, arg2'=arg4, arg3'=arg6, [ arg1=0 && arg4>=1 ], cost: 5+6*arg4 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Accelerating simple loops of location 8. Accelerating the following rules: 54: f11 -> f11 : arg1'=1+arg1, arg2'=0, [ arg1=arg4 ], cost: 5 55: f11 -> f11 : arg1'=1+arg1, arg2'=arg4, arg3'=arg1, [ arg1=arg6 && arg4>=1 ], cost: 5+6*arg4 56: f11 -> f11 : arg1'=1+arg6, arg2'=arg4, arg3'=arg6, [ arg1=0 && arg4>=1 ], cost: 5+6*arg4 Accelerated rule 54 with backward acceleration, yielding the new rule 57. Accelerated rule 55 with backward acceleration, yielding the new rule 58. Failed to prove monotonicity of the guard of rule 56. [accelerate] Nesting with 3 inner and 3 outer candidates Removing the simple loops: 54 55. Accelerated all simple loops using metering functions (where possible): Start location: __init 56: f11 -> f11 : arg1'=1+arg6, arg2'=arg4, arg3'=arg6, [ arg1=0 && arg4>=1 ], cost: 5+6*arg4 57: f11 -> f11 : arg1'=arg5, arg2'=0, [ 0>=arg4 && arg5-arg1>=1 ], cost: 5*arg5-5*arg1 58: f11 -> f11 : arg1'=arg5, arg2'=arg4, arg3'=-1+arg5, [ arg1>=arg6 && arg4>=1 && arg5-arg1>=1 ], cost: 6*arg4*(arg5-arg1)+5*arg5-5*arg1 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 Chained accelerated rules (with incoming rules): Start location: __init 36: __init -> f11 : arg1'=0, arg2'=arg2P_2, arg3'=arg3P_3, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg5P_4 && 0<=arg4P_5 && 0<=arg6P_6 ], cost: 9 59: __init -> f11 : arg1'=1+arg6P_6, arg2'=arg4P_5, arg3'=arg6P_6, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && 0=1 ], cost: 14+6*arg4P_5 60: __init -> f11 : arg1'=arg5P_4, arg2'=0, arg3'=arg3P_3, arg4'=0, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && arg5P_4>=1 ], cost: 9+5*arg5P_4 61: __init -> f11 : arg1'=arg5P_4, arg2'=arg4P_5, arg3'=-1+arg5P_4, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=0, [ arg4P_5>=1 && arg5P_4>=1 ], cost: 9+6*arg4P_5*arg5P_4+5*arg5P_4 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 59: __init -> f11 : arg1'=1+arg6P_6, arg2'=arg4P_5, arg3'=arg6P_6, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && 0=1 ], cost: 14+6*arg4P_5 60: __init -> f11 : arg1'=arg5P_4, arg2'=0, arg3'=arg3P_3, arg4'=0, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && arg5P_4>=1 ], cost: 9+5*arg5P_4 61: __init -> f11 : arg1'=arg5P_4, arg2'=arg4P_5, arg3'=-1+arg5P_4, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=0, [ arg4P_5>=1 && arg5P_4>=1 ], cost: 9+6*arg4P_5*arg5P_4+5*arg5P_4 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 59: __init -> f11 : arg1'=1+arg6P_6, arg2'=arg4P_5, arg3'=arg6P_6, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && 0=1 ], cost: 14+6*arg4P_5 60: __init -> f11 : arg1'=arg5P_4, arg2'=0, arg3'=arg3P_3, arg4'=0, arg5'=arg5P_4, arg6'=arg6P_6, [ 0<=arg6P_6 && arg5P_4>=1 ], cost: 9+5*arg5P_4 61: __init -> f11 : arg1'=arg5P_4, arg2'=arg4P_5, arg3'=-1+arg5P_4, arg4'=arg4P_5, arg5'=arg5P_4, arg6'=0, [ arg4P_5>=1 && arg5P_4>=1 ], cost: 9+6*arg4P_5*arg5P_4+5*arg5P_4 Computing asymptotic complexity for rule 61 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 60 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 59 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),?)