NO ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l8 0: l0 -> l1 : ___rho_1_^0'=___rho_1_^post_1, ___rho_2_^0'=___rho_2_^post_1, c^0'=c^post_1, curr_serv^0'=curr_serv^post_1, resp^0'=resp^post_1, servers^0'=servers^post_1, [ ___rho_1_^0==___rho_1_^post_1 && ___rho_2_^0==___rho_2_^post_1 && c^0==c^post_1 && curr_serv^0==curr_serv^post_1 && resp^0==resp^post_1 && servers^0==servers^post_1 ], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, ___rho_2_^0'=___rho_2_^post_7, c^0'=c^post_7, curr_serv^0'=curr_serv^post_7, resp^0'=resp^post_7, servers^0'=servers^post_7, [ 1<=curr_serv^0 && ___rho_1_^post_7==___rho_1_^post_7 && ___rho_2_^0==___rho_2_^post_7 && c^0==c^post_7 && curr_serv^0==curr_serv^post_7 && resp^0==resp^post_7 && servers^0==servers^post_7 ], cost: 1 7: l1 -> l4 : ___rho_1_^0'=___rho_1_^post_8, ___rho_2_^0'=___rho_2_^post_8, c^0'=c^post_8, curr_serv^0'=curr_serv^post_8, resp^0'=resp^post_8, servers^0'=servers^post_8, [ curr_serv^0<=0 && ___rho_1_^0==___rho_1_^post_8 && ___rho_2_^0==___rho_2_^post_8 && c^0==c^post_8 && curr_serv^0==curr_serv^post_8 && resp^0==resp^post_8 && servers^0==servers^post_8 ], cost: 1 1: l2 -> l3 : ___rho_1_^0'=___rho_1_^post_2, ___rho_2_^0'=___rho_2_^post_2, c^0'=c^post_2, curr_serv^0'=curr_serv^post_2, resp^0'=resp^post_2, servers^0'=servers^post_2, [ ___rho_1_^0==___rho_1_^post_2 && ___rho_2_^0==___rho_2_^post_2 && c^0==c^post_2 && curr_serv^0==curr_serv^post_2 && resp^0==resp^post_2 && servers^0==servers^post_2 ], cost: 1 2: l4 -> l5 : ___rho_1_^0'=___rho_1_^post_3, ___rho_2_^0'=___rho_2_^post_3, c^0'=c^post_3, curr_serv^0'=curr_serv^post_3, resp^0'=resp^post_3, servers^0'=servers^post_3, [ ___rho_1_^0==___rho_1_^post_3 && ___rho_2_^0==___rho_2_^post_3 && c^0==c^post_3 && curr_serv^0==curr_serv^post_3 && resp^0==resp^post_3 && servers^0==servers^post_3 ], cost: 1 3: l5 -> l4 : ___rho_1_^0'=___rho_1_^post_4, ___rho_2_^0'=___rho_2_^post_4, c^0'=c^post_4, curr_serv^0'=curr_serv^post_4, resp^0'=resp^post_4, servers^0'=servers^post_4, [ ___rho_1_^0==___rho_1_^post_4 && ___rho_2_^0==___rho_2_^post_4 && c^0==c^post_4 && curr_serv^0==curr_serv^post_4 && resp^0==resp^post_4 && servers^0==servers^post_4 ], cost: 1 4: l6 -> l0 : ___rho_1_^0'=___rho_1_^post_5, ___rho_2_^0'=___rho_2_^post_5, c^0'=c^post_5, curr_serv^0'=curr_serv^post_5, resp^0'=resp^post_5, servers^0'=servers^post_5, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 && curr_serv^post_5==-2+curr_serv^0 && ___rho_1_^0==___rho_1_^post_5 && ___rho_2_^0==___rho_2_^post_5 && c^0==c^post_5 && resp^0==resp^post_5 && servers^0==servers^post_5 ], cost: 1 5: l6 -> l0 : ___rho_1_^0'=___rho_1_^post_6, ___rho_2_^0'=___rho_2_^post_6, c^0'=c^post_6, curr_serv^0'=curr_serv^post_6, resp^0'=resp^post_6, servers^0'=servers^post_6, [ 1<=___rho_1_^0 && c^post_6==-1+c^0 && curr_serv^post_6==-2+curr_serv^0 && resp^post_6==1+resp^0 && ___rho_1_^0==___rho_1_^post_6 && ___rho_2_^0==___rho_2_^post_6 && servers^0==servers^post_6 ], cost: 1 8: l7 -> l0 : ___rho_1_^0'=___rho_1_^post_9, ___rho_2_^0'=___rho_2_^post_9, c^0'=c^post_9, curr_serv^0'=curr_serv^post_9, resp^0'=resp^post_9, servers^0'=servers^post_9, [ ___rho_2_^post_9==___rho_2_^post_9 && c^post_9==___rho_2_^post_9 && 1<=c^post_9 && servers^post_9==4 && resp^post_9==0 && curr_serv^post_9==servers^post_9 && ___rho_1_^0==___rho_1_^post_9 ], cost: 1 9: l8 -> l7 : ___rho_1_^0'=___rho_1_^post_10, ___rho_2_^0'=___rho_2_^post_10, c^0'=c^post_10, curr_serv^0'=curr_serv^post_10, resp^0'=resp^post_10, servers^0'=servers^post_10, [ ___rho_1_^0==___rho_1_^post_10 && ___rho_2_^0==___rho_2_^post_10 && c^0==c^post_10 && curr_serv^0==curr_serv^post_10 && resp^0==resp^post_10 && servers^0==servers^post_10 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 9: l8 -> l7 : ___rho_1_^0'=___rho_1_^post_10, ___rho_2_^0'=___rho_2_^post_10, c^0'=c^post_10, curr_serv^0'=curr_serv^post_10, resp^0'=resp^post_10, servers^0'=servers^post_10, [ ___rho_1_^0==___rho_1_^post_10 && ___rho_2_^0==___rho_2_^post_10 && c^0==c^post_10 && curr_serv^0==curr_serv^post_10 && resp^0==resp^post_10 && servers^0==servers^post_10 ], cost: 1 Removed unreachable and leaf rules: Start location: l8 0: l0 -> l1 : ___rho_1_^0'=___rho_1_^post_1, ___rho_2_^0'=___rho_2_^post_1, c^0'=c^post_1, curr_serv^0'=curr_serv^post_1, resp^0'=resp^post_1, servers^0'=servers^post_1, [ ___rho_1_^0==___rho_1_^post_1 && ___rho_2_^0==___rho_2_^post_1 && c^0==c^post_1 && curr_serv^0==curr_serv^post_1 && resp^0==resp^post_1 && servers^0==servers^post_1 ], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, ___rho_2_^0'=___rho_2_^post_7, c^0'=c^post_7, curr_serv^0'=curr_serv^post_7, resp^0'=resp^post_7, servers^0'=servers^post_7, [ 1<=curr_serv^0 && ___rho_1_^post_7==___rho_1_^post_7 && ___rho_2_^0==___rho_2_^post_7 && c^0==c^post_7 && curr_serv^0==curr_serv^post_7 && resp^0==resp^post_7 && servers^0==servers^post_7 ], cost: 1 7: l1 -> l4 : ___rho_1_^0'=___rho_1_^post_8, ___rho_2_^0'=___rho_2_^post_8, c^0'=c^post_8, curr_serv^0'=curr_serv^post_8, resp^0'=resp^post_8, servers^0'=servers^post_8, [ curr_serv^0<=0 && ___rho_1_^0==___rho_1_^post_8 && ___rho_2_^0==___rho_2_^post_8 && c^0==c^post_8 && curr_serv^0==curr_serv^post_8 && resp^0==resp^post_8 && servers^0==servers^post_8 ], cost: 1 2: l4 -> l5 : ___rho_1_^0'=___rho_1_^post_3, ___rho_2_^0'=___rho_2_^post_3, c^0'=c^post_3, curr_serv^0'=curr_serv^post_3, resp^0'=resp^post_3, servers^0'=servers^post_3, [ ___rho_1_^0==___rho_1_^post_3 && ___rho_2_^0==___rho_2_^post_3 && c^0==c^post_3 && curr_serv^0==curr_serv^post_3 && resp^0==resp^post_3 && servers^0==servers^post_3 ], cost: 1 3: l5 -> l4 : ___rho_1_^0'=___rho_1_^post_4, ___rho_2_^0'=___rho_2_^post_4, c^0'=c^post_4, curr_serv^0'=curr_serv^post_4, resp^0'=resp^post_4, servers^0'=servers^post_4, [ ___rho_1_^0==___rho_1_^post_4 && ___rho_2_^0==___rho_2_^post_4 && c^0==c^post_4 && curr_serv^0==curr_serv^post_4 && resp^0==resp^post_4 && servers^0==servers^post_4 ], cost: 1 4: l6 -> l0 : ___rho_1_^0'=___rho_1_^post_5, ___rho_2_^0'=___rho_2_^post_5, c^0'=c^post_5, curr_serv^0'=curr_serv^post_5, resp^0'=resp^post_5, servers^0'=servers^post_5, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 && curr_serv^post_5==-2+curr_serv^0 && ___rho_1_^0==___rho_1_^post_5 && ___rho_2_^0==___rho_2_^post_5 && c^0==c^post_5 && resp^0==resp^post_5 && servers^0==servers^post_5 ], cost: 1 5: l6 -> l0 : ___rho_1_^0'=___rho_1_^post_6, ___rho_2_^0'=___rho_2_^post_6, c^0'=c^post_6, curr_serv^0'=curr_serv^post_6, resp^0'=resp^post_6, servers^0'=servers^post_6, [ 1<=___rho_1_^0 && c^post_6==-1+c^0 && curr_serv^post_6==-2+curr_serv^0 && resp^post_6==1+resp^0 && ___rho_1_^0==___rho_1_^post_6 && ___rho_2_^0==___rho_2_^post_6 && servers^0==servers^post_6 ], cost: 1 8: l7 -> l0 : ___rho_1_^0'=___rho_1_^post_9, ___rho_2_^0'=___rho_2_^post_9, c^0'=c^post_9, curr_serv^0'=curr_serv^post_9, resp^0'=resp^post_9, servers^0'=servers^post_9, [ ___rho_2_^post_9==___rho_2_^post_9 && c^post_9==___rho_2_^post_9 && 1<=c^post_9 && servers^post_9==4 && resp^post_9==0 && curr_serv^post_9==servers^post_9 && ___rho_1_^0==___rho_1_^post_9 ], cost: 1 9: l8 -> l7 : ___rho_1_^0'=___rho_1_^post_10, ___rho_2_^0'=___rho_2_^post_10, c^0'=c^post_10, curr_serv^0'=curr_serv^post_10, resp^0'=resp^post_10, servers^0'=servers^post_10, [ ___rho_1_^0==___rho_1_^post_10 && ___rho_2_^0==___rho_2_^post_10 && c^0==c^post_10 && curr_serv^0==curr_serv^post_10 && resp^0==resp^post_10 && servers^0==servers^post_10 ], cost: 1 Simplified all rules, resulting in: Start location: l8 0: l0 -> l1 : [], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 1 7: l1 -> l4 : [ curr_serv^0<=0 ], cost: 1 2: l4 -> l5 : [], cost: 1 3: l5 -> l4 : [], cost: 1 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 8: l7 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 1 9: l8 -> l7 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l8 0: l0 -> l1 : [], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 1 7: l1 -> l4 : [ curr_serv^0<=0 ], cost: 1 11: l4 -> l4 : [], cost: 2 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Accelerating simple loops of location 4. Accelerating the following rules: 11: l4 -> l4 : [], cost: 2 Accelerated rule 11 with non-termination, yielding the new rule 12. [accelerate] Nesting with 0 inner and 0 outer candidates Removing the simple loops: 11. Accelerated all simple loops using metering functions (where possible): Start location: l8 0: l0 -> l1 : [], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 1 7: l1 -> l4 : [ curr_serv^0<=0 ], cost: 1 12: l4 -> [9] : [], cost: NONTERM 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Chained accelerated rules (with incoming rules): Start location: l8 0: l0 -> l1 : [], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 1 7: l1 -> l4 : [ curr_serv^0<=0 ], cost: 1 13: l1 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: l8 0: l0 -> l1 : [], cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 1 13: l1 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l8 14: l0 -> l6 : ___rho_1_^0'=___rho_1_^post_7, [ 1<=curr_serv^0 ], cost: 2 15: l0 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 4: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, [ ___rho_1_^0<=0 && 1+c^0<=curr_serv^0 ], cost: 1 5: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=___rho_1_^0 ], cost: 1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l8 15: l0 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 16: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, curr_serv^0'=-2+curr_serv^0, [ 1<=curr_serv^0 && ___rho_1_^post_7<=0 && 1+c^0<=curr_serv^0 ], cost: 3 17: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=curr_serv^0 && 1<=___rho_1_^post_7 ], cost: 3 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Accelerating simple loops of location 0. Accelerating the following rules: 16: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, curr_serv^0'=-2+curr_serv^0, [ 1<=curr_serv^0 && ___rho_1_^post_7<=0 && 1+c^0<=curr_serv^0 ], cost: 3 17: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, [ 1<=curr_serv^0 && 1<=___rho_1_^post_7 ], cost: 3 Accelerated rule 16 with backward acceleration, yielding the new rule 18. Accelerated rule 17 with backward acceleration, yielding the new rule 19. [accelerate] Nesting with 2 inner and 2 outer candidates Removing the simple loops: 16 17. Accelerated all simple loops using metering functions (where possible): Start location: l8 15: l0 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 18: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, curr_serv^0'=-2*k+curr_serv^0, [ ___rho_1_^post_7<=0 && k>=1 && 1<=2-2*k+curr_serv^0 && 1+c^0<=2-2*k+curr_serv^0 ], cost: 3*k 19: l0 -> l0 : ___rho_1_^0'=___rho_1_^post_7, c^0'=c^0-k_1, curr_serv^0'=-2*k_1+curr_serv^0, resp^0'=resp^0+k_1, [ 1<=___rho_1_^post_7 && k_1>=1 && 1<=2-2*k_1+curr_serv^0 ], cost: 3*k_1 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 Chained accelerated rules (with incoming rules): Start location: l8 15: l0 -> [9] : [ curr_serv^0<=0 ], cost: NONTERM 10: l8 -> l0 : ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 ], cost: 2 20: l8 -> l0 : ___rho_1_^0'=___rho_1_^post_7, ___rho_2_^0'=___rho_2_^post_9, c^0'=___rho_2_^post_9, curr_serv^0'=4-2*k, resp^0'=0, servers^0'=4, [ 1<=___rho_2_^post_9 && ___rho_1_^post_7<=0 && k>=1 && 1<=6-2*k && 1+___rho_2_^post_9<=6-2*k ], cost: 2+3*k 21: l8 -> l0 : ___rho_1_^0'=___rho_1_^post_7, ___rho_2_^0'=___rho_2_^post_9, c^0'=-k_1+___rho_2_^post_9, curr_serv^0'=4-2*k_1, resp^0'=k_1, servers^0'=4, [ 1<=___rho_2_^post_9 && 1<=___rho_1_^post_7 && k_1>=1 && 1<=6-2*k_1 ], cost: 2+3*k_1 Eliminated locations (on tree-shaped paths): Start location: l8 22: l8 -> [9] : [ 1<=___rho_2_^post_9 && ___rho_1_^post_7<=0 && k>=1 && 1<=6-2*k && 1+___rho_2_^post_9<=6-2*k && 4-2*k<=0 ], cost: NONTERM 23: l8 -> [9] : [ 1<=___rho_2_^post_9 && 1<=___rho_1_^post_7 && k_1>=1 && 1<=6-2*k_1 && 4-2*k_1<=0 ], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l8 22: l8 -> [9] : [ 1<=___rho_2_^post_9 && ___rho_1_^post_7<=0 && k>=1 && 1<=6-2*k && 1+___rho_2_^post_9<=6-2*k && 4-2*k<=0 ], cost: NONTERM 23: l8 -> [9] : [ 1<=___rho_2_^post_9 && 1<=___rho_1_^post_7 && k_1>=1 && 1<=6-2*k_1 && 4-2*k_1<=0 ], cost: NONTERM Computing asymptotic complexity for rule 23 Simplified the guard: 23: l8 -> [9] : [ 1<=___rho_2_^post_9 && 1<=___rho_1_^post_7 && 1<=6-2*k_1 && 4-2*k_1<=0 ], cost: NONTERM Guard is satisfiable, yielding nontermination Resulting cost NONTERM has complexity: Nonterm Found new complexity Nonterm. Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: [ 1<=___rho_2_^post_9 && 1<=___rho_1_^post_7 && 1<=6-2*k_1 && 4-2*k_1<=0 ] NO