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, [ arg2==arg2P_1 && arg3==arg3P_1 ], cost: 1 1: f2 -> f3 : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, [ arg1==arg1P_2 && arg3==arg3P_2 ], cost: 1 2: f3 -> f4 : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, [ arg1==arg1P_3 && arg2==arg2P_3 && 0==arg3P_3 ], cost: 1 5: f4 -> f5 : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, [ arg1>0 && arg2>0 && arg1==arg1P_6 && arg2==arg2P_6 && arg3==arg3P_6 ], cost: 1 7: f4 -> f8 : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, [ arg1<=0 && arg1==arg1P_8 && arg2==arg2P_8 && arg3==arg3P_8 ], cost: 1 8: f4 -> f8 : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, [ arg2<=0 && arg1==arg1P_9 && arg2==arg2P_9 && arg3==arg3P_9 ], cost: 1 3: f5 -> f6 : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, [ arg1P_4==-1+arg1 && arg2==arg2P_4 && arg3==arg3P_4 ], cost: 1 4: f6 -> f7 : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, [ arg2P_5==-1+arg2 && arg1==arg1P_5 && arg3==arg3P_5 ], cost: 1 6: f7 -> f4 : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, [ arg1==arg1P_7 && arg2==arg2P_7 && arg3==arg3P_7 ], cost: 1 17: f8 -> f9 : arg1'=arg1P_18, arg2'=arg2P_18, arg3'=arg3P_18, [ arg1>0 && arg1==arg1P_18 && arg2==arg2P_18 && arg3==arg3P_18 ], cost: 1 19: f8 -> f16 : arg1'=arg1P_20, arg2'=arg2P_20, arg3'=arg3P_20, [ arg1<=0 && arg1==arg1P_20 && arg2==arg2P_20 && arg3==arg3P_20 ], cost: 1 9: f9 -> f10 : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, [ arg2P_10==1+arg2 && arg1==arg1P_10 && arg3==arg3P_10 ], cost: 1 10: f10 -> f11 : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, [ arg3P_11==1+arg3 && arg1==arg1P_11 && arg2==arg2P_11 ], cost: 1 13: f11 -> f12 : arg1'=arg1P_14, arg2'=arg2P_14, arg3'=arg3P_14, [ arg1>0 && arg2>0 && arg1==arg1P_14 && arg2==arg2P_14 && arg3==arg3P_14 ], cost: 1 15: f11 -> f15 : arg1'=arg1P_16, arg2'=arg2P_16, arg3'=arg3P_16, [ arg1<=0 && arg1==arg1P_16 && arg2==arg2P_16 && arg3==arg3P_16 ], cost: 1 16: f11 -> f15 : arg1'=arg1P_17, arg2'=arg2P_17, arg3'=arg3P_17, [ arg2<=0 && arg1==arg1P_17 && arg2==arg2P_17 && arg3==arg3P_17 ], cost: 1 11: f12 -> f13 : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, [ arg1P_12==-1+arg1 && arg2==arg2P_12 && arg3==arg3P_12 ], cost: 1 12: f13 -> f14 : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, [ arg2P_13==-1+arg2 && arg1==arg1P_13 && arg3==arg3P_13 ], cost: 1 14: f14 -> f11 : arg1'=arg1P_15, arg2'=arg2P_15, arg3'=arg3P_15, [ arg1==arg1P_15 && arg2==arg2P_15 && arg3==arg3P_15 ], cost: 1 18: f15 -> f8 : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, [ arg1==arg1P_19 && arg2==arg2P_19 && arg3==arg3P_19 ], cost: 1 20: __init -> f1 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 20: __init -> f1 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, [], cost: 1 Removed unreachable and leaf rules: Start location: __init 0: f1 -> f2 : arg1'=arg1P_1, arg2'=arg2P_1, arg3'=arg3P_1, [ arg2==arg2P_1 && arg3==arg3P_1 ], cost: 1 1: f2 -> f3 : arg1'=arg1P_2, arg2'=arg2P_2, arg3'=arg3P_2, [ arg1==arg1P_2 && arg3==arg3P_2 ], cost: 1 2: f3 -> f4 : arg1'=arg1P_3, arg2'=arg2P_3, arg3'=arg3P_3, [ arg1==arg1P_3 && arg2==arg2P_3 && 0==arg3P_3 ], cost: 1 5: f4 -> f5 : arg1'=arg1P_6, arg2'=arg2P_6, arg3'=arg3P_6, [ arg1>0 && arg2>0 && arg1==arg1P_6 && arg2==arg2P_6 && arg3==arg3P_6 ], cost: 1 7: f4 -> f8 : arg1'=arg1P_8, arg2'=arg2P_8, arg3'=arg3P_8, [ arg1<=0 && arg1==arg1P_8 && arg2==arg2P_8 && arg3==arg3P_8 ], cost: 1 8: f4 -> f8 : arg1'=arg1P_9, arg2'=arg2P_9, arg3'=arg3P_9, [ arg2<=0 && arg1==arg1P_9 && arg2==arg2P_9 && arg3==arg3P_9 ], cost: 1 3: f5 -> f6 : arg1'=arg1P_4, arg2'=arg2P_4, arg3'=arg3P_4, [ arg1P_4==-1+arg1 && arg2==arg2P_4 && arg3==arg3P_4 ], cost: 1 4: f6 -> f7 : arg1'=arg1P_5, arg2'=arg2P_5, arg3'=arg3P_5, [ arg2P_5==-1+arg2 && arg1==arg1P_5 && arg3==arg3P_5 ], cost: 1 6: f7 -> f4 : arg1'=arg1P_7, arg2'=arg2P_7, arg3'=arg3P_7, [ arg1==arg1P_7 && arg2==arg2P_7 && arg3==arg3P_7 ], cost: 1 17: f8 -> f9 : arg1'=arg1P_18, arg2'=arg2P_18, arg3'=arg3P_18, [ arg1>0 && arg1==arg1P_18 && arg2==arg2P_18 && arg3==arg3P_18 ], cost: 1 9: f9 -> f10 : arg1'=arg1P_10, arg2'=arg2P_10, arg3'=arg3P_10, [ arg2P_10==1+arg2 && arg1==arg1P_10 && arg3==arg3P_10 ], cost: 1 10: f10 -> f11 : arg1'=arg1P_11, arg2'=arg2P_11, arg3'=arg3P_11, [ arg3P_11==1+arg3 && arg1==arg1P_11 && arg2==arg2P_11 ], cost: 1 13: f11 -> f12 : arg1'=arg1P_14, arg2'=arg2P_14, arg3'=arg3P_14, [ arg1>0 && arg2>0 && arg1==arg1P_14 && arg2==arg2P_14 && arg3==arg3P_14 ], cost: 1 15: f11 -> f15 : arg1'=arg1P_16, arg2'=arg2P_16, arg3'=arg3P_16, [ arg1<=0 && arg1==arg1P_16 && arg2==arg2P_16 && arg3==arg3P_16 ], cost: 1 16: f11 -> f15 : arg1'=arg1P_17, arg2'=arg2P_17, arg3'=arg3P_17, [ arg2<=0 && arg1==arg1P_17 && arg2==arg2P_17 && arg3==arg3P_17 ], cost: 1 11: f12 -> f13 : arg1'=arg1P_12, arg2'=arg2P_12, arg3'=arg3P_12, [ arg1P_12==-1+arg1 && arg2==arg2P_12 && arg3==arg3P_12 ], cost: 1 12: f13 -> f14 : arg1'=arg1P_13, arg2'=arg2P_13, arg3'=arg3P_13, [ arg2P_13==-1+arg2 && arg1==arg1P_13 && arg3==arg3P_13 ], cost: 1 14: f14 -> f11 : arg1'=arg1P_15, arg2'=arg2P_15, arg3'=arg3P_15, [ arg1==arg1P_15 && arg2==arg2P_15 && arg3==arg3P_15 ], cost: 1 18: f15 -> f8 : arg1'=arg1P_19, arg2'=arg2P_19, arg3'=arg3P_19, [ arg1==arg1P_19 && arg2==arg2P_19 && arg3==arg3P_19 ], cost: 1 20: __init -> f1 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, [], 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'=0, [], cost: 1 5: f4 -> f5 : [ arg1>0 && arg2>0 ], cost: 1 7: f4 -> f8 : [ arg1<=0 ], cost: 1 8: f4 -> f8 : [ arg2<=0 ], cost: 1 3: f5 -> f6 : arg1'=-1+arg1, [], cost: 1 4: f6 -> f7 : arg2'=-1+arg2, [], cost: 1 6: f7 -> f4 : [], cost: 1 17: f8 -> f9 : [ arg1>0 ], cost: 1 9: f9 -> f10 : arg2'=1+arg2, [], cost: 1 10: f10 -> f11 : arg3'=1+arg3, [], cost: 1 13: f11 -> f12 : [ arg1>0 && arg2>0 ], cost: 1 15: f11 -> f15 : [ arg1<=0 ], cost: 1 16: f11 -> f15 : [ arg2<=0 ], cost: 1 11: f12 -> f13 : arg1'=-1+arg1, [], cost: 1 12: f13 -> f14 : arg2'=-1+arg2, [], cost: 1 14: f14 -> f11 : [], cost: 1 18: f15 -> f8 : [], cost: 1 20: __init -> f1 : arg1'=arg1P_21, arg2'=arg2P_21, arg3'=arg3P_21, [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: __init 7: f4 -> f8 : [ arg1<=0 ], cost: 1 8: f4 -> f8 : [ arg2<=0 ], cost: 1 26: f4 -> f4 : arg1'=-1+arg1, arg2'=-1+arg2, [ arg1>0 && arg2>0 ], cost: 4 28: f8 -> f11 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 ], cost: 3 15: f11 -> f15 : [ arg1<=0 ], cost: 1 16: f11 -> f15 : [ arg2<=0 ], cost: 1 31: f11 -> f11 : arg1'=-1+arg1, arg2'=-1+arg2, [ arg1>0 && arg2>0 ], cost: 4 18: f15 -> f8 : [], cost: 1 23: __init -> f4 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [], cost: 4 Accelerating simple loops of location 3. Accelerating the following rules: 26: f4 -> f4 : arg1'=-1+arg1, arg2'=-1+arg2, [ arg1>0 && arg2>0 ], cost: 4 Accelerated rule 26 with backward acceleration, yielding the new rule 32. Accelerated rule 26 with backward acceleration, yielding the new rule 33. [accelerate] Nesting with 2 inner and 1 outer candidates Removing the simple loops: 26. Accelerating simple loops of location 10. Accelerating the following rules: 31: f11 -> f11 : arg1'=-1+arg1, arg2'=-1+arg2, [ arg1>0 && arg2>0 ], cost: 4 Accelerated rule 31 with backward acceleration, yielding the new rule 34. Accelerated rule 31 with backward acceleration, yielding the new rule 35. [accelerate] Nesting with 2 inner and 1 outer candidates Removing the simple loops: 31. Accelerated all simple loops using metering functions (where possible): Start location: __init 7: f4 -> f8 : [ arg1<=0 ], cost: 1 8: f4 -> f8 : [ arg2<=0 ], cost: 1 32: f4 -> f4 : arg1'=0, arg2'=arg2-arg1, [ arg1>=0 && 1+arg2-arg1>0 ], cost: 4*arg1 33: f4 -> f4 : arg1'=-arg2+arg1, arg2'=0, [ arg2>=0 && 1-arg2+arg1>0 ], cost: 4*arg2 28: f8 -> f11 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 ], cost: 3 15: f11 -> f15 : [ arg1<=0 ], cost: 1 16: f11 -> f15 : [ arg2<=0 ], cost: 1 34: f11 -> f11 : arg1'=0, arg2'=arg2-arg1, [ arg1>=0 && 1+arg2-arg1>0 ], cost: 4*arg1 35: f11 -> f11 : arg1'=-arg2+arg1, arg2'=0, [ arg2>=0 && 1-arg2+arg1>0 ], cost: 4*arg2 18: f15 -> f8 : [], cost: 1 23: __init -> f4 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [], cost: 4 Chained accelerated rules (with incoming rules): Start location: __init 7: f4 -> f8 : [ arg1<=0 ], cost: 1 8: f4 -> f8 : [ arg2<=0 ], cost: 1 28: f8 -> f11 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 ], cost: 3 38: f8 -> f11 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 3+4*arg1 39: f8 -> f11 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 ], cost: 7+4*arg2 15: f11 -> f15 : [ arg1<=0 ], cost: 1 16: f11 -> f15 : [ arg2<=0 ], cost: 1 18: f15 -> f8 : [], cost: 1 23: __init -> f4 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [], cost: 4 36: __init -> f4 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 4+4*arg1P_1 37: __init -> f4 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 4+4*arg2P_2 Eliminated locations (on tree-shaped paths): Start location: __init 46: f8 -> f15 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 && 1+arg2<=0 ], cost: 4 47: f8 -> f15 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 4+4*arg1 48: f8 -> f15 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 && 1+arg2-arg1<=0 ], cost: 4+4*arg1 49: f8 -> f15 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 && -1-arg2+arg1<=0 ], cost: 8+4*arg2 50: f8 -> f15 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 ], cost: 8+4*arg2 18: f15 -> f8 : [], cost: 1 40: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg1P_1<=0 ], cost: 5 41: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg2P_2<=0 ], cost: 5 42: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 43: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 && -arg1P_1+arg2P_2<=0 ], cost: 5+4*arg1P_1 44: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 && arg1P_1-arg2P_2<=0 ], cost: 5+4*arg2P_2 45: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 Merged rules: Start location: __init 46: f8 -> f15 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 && 1+arg2<=0 ], cost: 4 51: f8 -> f15 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 4+4*arg1 52: f8 -> f15 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 ], cost: 8+4*arg2 18: f15 -> f8 : [], cost: 1 40: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg1P_1<=0 ], cost: 5 41: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg2P_2<=0 ], cost: 5 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 Eliminated locations (on tree-shaped paths): Start location: __init 55: f8 -> f8 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 && 1+arg2<=0 ], cost: 5 56: f8 -> f8 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 5+4*arg1 57: f8 -> f8 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 ], cost: 9+4*arg2 40: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg1P_1<=0 ], cost: 5 41: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg2P_2<=0 ], cost: 5 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 Accelerating simple loops of location 7. Accelerating the following rules: 55: f8 -> f8 : arg2'=1+arg2, arg3'=1+arg3, [ arg1>0 && 1+arg2<=0 ], cost: 5 56: f8 -> f8 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 5+4*arg1 57: f8 -> f8 : arg1'=-1-arg2+arg1, arg2'=0, arg3'=1+arg3, [ arg1>0 && 1+arg2>=0 && -arg2+arg1>0 ], cost: 9+4*arg2 Accelerated rule 55 with backward acceleration, yielding the new rule 58. Failed to prove monotonicity of the guard of rule 56. Accelerated rule 57 with backward acceleration, yielding the new rule 59. Accelerated rule 57 with backward acceleration, yielding the new rule 60. [accelerate] Nesting with 4 inner and 3 outer candidates Removing the simple loops: 55 57. Also removing duplicate rules: 59. Accelerated all simple loops using metering functions (where possible): Start location: __init 56: f8 -> f8 : arg1'=0, arg2'=1+arg2-arg1, arg3'=1+arg3, [ arg1>0 && 2+arg2-arg1>0 ], cost: 5+4*arg1 58: f8 -> f8 : arg2'=0, arg3'=-arg2+arg3, [ arg1>0 && -arg2>=0 ], cost: -5*arg2 60: f8 -> f8 : arg1'=0, arg2'=0, arg3'=arg3+arg1, [ 1+arg2>=0 && arg1>=1 ], cost: 9*arg1 40: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg1P_1<=0 ], cost: 5 41: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg2P_2<=0 ], cost: 5 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 Chained accelerated rules (with incoming rules): Start location: __init 40: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg1P_1<=0 ], cost: 5 41: __init -> f8 : arg1'=arg1P_1, arg2'=arg2P_2, arg3'=0, [ arg2P_2<=0 ], cost: 5 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 61: __init -> f8 : arg1'=0, arg2'=1-arg1P_1+arg2P_2, arg3'=1, [ arg2P_2<=0 && arg1P_1>0 && 2-arg1P_1+arg2P_2>0 ], cost: 10+4*arg1P_1 62: __init -> f8 : arg1'=0, arg2'=0, arg3'=1, [ arg2P_2>=0 ], cost: 14+4*arg2P_2 63: __init -> f8 : arg1'=arg1P_1, arg2'=0, arg3'=-arg2P_2, [ arg2P_2<=0 && arg1P_1>0 ], cost: 5-5*arg2P_2 64: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 65: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1, [ arg1P_1>=1 ], cost: 5+9*arg1P_1 66: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1-arg2P_2, [ arg2P_2>=0 && arg1P_1-arg2P_2>=1 ], cost: 5+9*arg1P_1-5*arg2P_2 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 61: __init -> f8 : arg1'=0, arg2'=1-arg1P_1+arg2P_2, arg3'=1, [ arg2P_2<=0 && arg1P_1>0 && 2-arg1P_1+arg2P_2>0 ], cost: 10+4*arg1P_1 62: __init -> f8 : arg1'=0, arg2'=0, arg3'=1, [ arg2P_2>=0 ], cost: 14+4*arg2P_2 63: __init -> f8 : arg1'=arg1P_1, arg2'=0, arg3'=-arg2P_2, [ arg2P_2<=0 && arg1P_1>0 ], cost: 5-5*arg2P_2 64: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 65: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1, [ arg1P_1>=1 ], cost: 5+9*arg1P_1 66: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1-arg2P_2, [ arg2P_2>=0 && arg1P_1-arg2P_2>=1 ], cost: 5+9*arg1P_1-5*arg2P_2 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 53: __init -> f8 : arg1'=0, arg2'=-arg1P_1+arg2P_2, arg3'=0, [ arg1P_1>=0 && 1-arg1P_1+arg2P_2>0 ], cost: 5+4*arg1P_1 54: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && 1+arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 61: __init -> f8 : arg1'=0, arg2'=1-arg1P_1+arg2P_2, arg3'=1, [ arg2P_2<=0 && arg1P_1>0 && 2-arg1P_1+arg2P_2>0 ], cost: 10+4*arg1P_1 62: __init -> f8 : arg1'=0, arg2'=0, arg3'=1, [ arg2P_2>=0 ], cost: 14+4*arg2P_2 63: __init -> f8 : arg1'=arg1P_1, arg2'=0, arg3'=-arg2P_2, [ arg2P_2<=0 && arg1P_1>0 ], cost: 5-5*arg2P_2 64: __init -> f8 : arg1'=arg1P_1-arg2P_2, arg2'=0, arg3'=0, [ arg2P_2>=0 && arg1P_1-arg2P_2>0 ], cost: 5+4*arg2P_2 65: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1, [ arg1P_1>=1 ], cost: 5+9*arg1P_1 66: __init -> f8 : arg1'=0, arg2'=0, arg3'=arg1P_1-arg2P_2, [ arg2P_2>=0 && arg1P_1-arg2P_2>=1 ], cost: 5+9*arg1P_1-5*arg2P_2 Computing asymptotic complexity for rule 62 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 65 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 53 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 54 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 63 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 64 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 66 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 61 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),?)