NO ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l9 0: l0 -> l1 : A^0'=A^post_1, R^0'=R^post_1, __rho_1_^0'=__rho_1_^post_1, __rho_2_^0'=__rho_2_^post_1, dobreak^0'=dobreak^post_1, n^0'=n^post_1, [ A^0==A^post_1 && R^0==R^post_1 && __rho_1_^0==__rho_1_^post_1 && __rho_2_^0==__rho_2_^post_1 && dobreak^0==dobreak^post_1 && n^0==n^post_1 ], cost: 1 7: l1 -> l2 : A^0'=A^post_8, R^0'=R^post_8, __rho_1_^0'=__rho_1_^post_8, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=dobreak^post_8, n^0'=n^post_8, [ dobreak^0<=0 && A^1_1==1 && A^post_8==0 && __rho_2_^post_8==__rho_2_^post_8 && n^post_8==__rho_2_^post_8 && R^0==R^post_8 && __rho_1_^0==__rho_1_^post_8 && dobreak^0==dobreak^post_8 ], cost: 1 8: l1 -> l6 : A^0'=A^post_9, R^0'=R^post_9, __rho_1_^0'=__rho_1_^post_9, __rho_2_^0'=__rho_2_^post_9, dobreak^0'=dobreak^post_9, n^0'=n^post_9, [ 1<=dobreak^0 && A^0==A^post_9 && R^0==R^post_9 && __rho_1_^0==__rho_1_^post_9 && __rho_2_^0==__rho_2_^post_9 && dobreak^0==dobreak^post_9 && n^0==n^post_9 ], cost: 1 1: l2 -> l3 : A^0'=A^post_2, R^0'=R^post_2, __rho_1_^0'=__rho_1_^post_2, __rho_2_^0'=__rho_2_^post_2, dobreak^0'=dobreak^post_2, n^0'=n^post_2, [ A^0==A^post_2 && R^0==R^post_2 && __rho_1_^0==__rho_1_^post_2 && __rho_2_^0==__rho_2_^post_2 && dobreak^0==dobreak^post_2 && n^0==n^post_2 ], cost: 1 5: l3 -> l2 : A^0'=A^post_6, R^0'=R^post_6, __rho_1_^0'=__rho_1_^post_6, __rho_2_^0'=__rho_2_^post_6, dobreak^0'=dobreak^post_6, n^0'=n^post_6, [ 1<=n^0 && A^0==A^post_6 && R^0==R^post_6 && __rho_1_^0==__rho_1_^post_6 && __rho_2_^0==__rho_2_^post_6 && dobreak^0==dobreak^post_6 && n^0==n^post_6 ], cost: 1 6: l3 -> l0 : A^0'=A^post_7, R^0'=R^post_7, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_7, dobreak^0'=dobreak^post_7, n^0'=n^post_7, [ n^0<=0 && R^1_1==1 && R^post_7==0 && __rho_1_^post_7==__rho_1_^post_7 && dobreak^post_7==__rho_1_^post_7 && A^0==A^post_7 && __rho_2_^0==__rho_2_^post_7 && n^0==n^post_7 ], cost: 1 2: l4 -> l5 : A^0'=A^post_3, R^0'=R^post_3, __rho_1_^0'=__rho_1_^post_3, __rho_2_^0'=__rho_2_^post_3, dobreak^0'=dobreak^post_3, n^0'=n^post_3, [ A^0==A^post_3 && R^0==R^post_3 && __rho_1_^0==__rho_1_^post_3 && __rho_2_^0==__rho_2_^post_3 && dobreak^0==dobreak^post_3 && n^0==n^post_3 ], cost: 1 3: l6 -> l7 : A^0'=A^post_4, R^0'=R^post_4, __rho_1_^0'=__rho_1_^post_4, __rho_2_^0'=__rho_2_^post_4, dobreak^0'=dobreak^post_4, n^0'=n^post_4, [ A^0==A^post_4 && R^0==R^post_4 && __rho_1_^0==__rho_1_^post_4 && __rho_2_^0==__rho_2_^post_4 && dobreak^0==dobreak^post_4 && n^0==n^post_4 ], cost: 1 4: l7 -> l6 : A^0'=A^post_5, R^0'=R^post_5, __rho_1_^0'=__rho_1_^post_5, __rho_2_^0'=__rho_2_^post_5, dobreak^0'=dobreak^post_5, n^0'=n^post_5, [ A^0==A^post_5 && R^0==R^post_5 && __rho_1_^0==__rho_1_^post_5 && __rho_2_^0==__rho_2_^post_5 && dobreak^0==dobreak^post_5 && n^0==n^post_5 ], cost: 1 9: l8 -> l0 : A^0'=A^post_10, R^0'=R^post_10, __rho_1_^0'=__rho_1_^post_10, __rho_2_^0'=__rho_2_^post_10, dobreak^0'=dobreak^post_10, n^0'=n^post_10, [ A^post_10==0 && R^post_10==0 && __rho_1_^post_10==__rho_1_^post_10 && dobreak^post_10==__rho_1_^post_10 && __rho_2_^0==__rho_2_^post_10 && n^0==n^post_10 ], cost: 1 10: l9 -> l8 : A^0'=A^post_11, R^0'=R^post_11, __rho_1_^0'=__rho_1_^post_11, __rho_2_^0'=__rho_2_^post_11, dobreak^0'=dobreak^post_11, n^0'=n^post_11, [ A^0==A^post_11 && R^0==R^post_11 && __rho_1_^0==__rho_1_^post_11 && __rho_2_^0==__rho_2_^post_11 && dobreak^0==dobreak^post_11 && n^0==n^post_11 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 10: l9 -> l8 : A^0'=A^post_11, R^0'=R^post_11, __rho_1_^0'=__rho_1_^post_11, __rho_2_^0'=__rho_2_^post_11, dobreak^0'=dobreak^post_11, n^0'=n^post_11, [ A^0==A^post_11 && R^0==R^post_11 && __rho_1_^0==__rho_1_^post_11 && __rho_2_^0==__rho_2_^post_11 && dobreak^0==dobreak^post_11 && n^0==n^post_11 ], cost: 1 Removed unreachable and leaf rules: Start location: l9 0: l0 -> l1 : A^0'=A^post_1, R^0'=R^post_1, __rho_1_^0'=__rho_1_^post_1, __rho_2_^0'=__rho_2_^post_1, dobreak^0'=dobreak^post_1, n^0'=n^post_1, [ A^0==A^post_1 && R^0==R^post_1 && __rho_1_^0==__rho_1_^post_1 && __rho_2_^0==__rho_2_^post_1 && dobreak^0==dobreak^post_1 && n^0==n^post_1 ], cost: 1 7: l1 -> l2 : A^0'=A^post_8, R^0'=R^post_8, __rho_1_^0'=__rho_1_^post_8, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=dobreak^post_8, n^0'=n^post_8, [ dobreak^0<=0 && A^1_1==1 && A^post_8==0 && __rho_2_^post_8==__rho_2_^post_8 && n^post_8==__rho_2_^post_8 && R^0==R^post_8 && __rho_1_^0==__rho_1_^post_8 && dobreak^0==dobreak^post_8 ], cost: 1 8: l1 -> l6 : A^0'=A^post_9, R^0'=R^post_9, __rho_1_^0'=__rho_1_^post_9, __rho_2_^0'=__rho_2_^post_9, dobreak^0'=dobreak^post_9, n^0'=n^post_9, [ 1<=dobreak^0 && A^0==A^post_9 && R^0==R^post_9 && __rho_1_^0==__rho_1_^post_9 && __rho_2_^0==__rho_2_^post_9 && dobreak^0==dobreak^post_9 && n^0==n^post_9 ], cost: 1 1: l2 -> l3 : A^0'=A^post_2, R^0'=R^post_2, __rho_1_^0'=__rho_1_^post_2, __rho_2_^0'=__rho_2_^post_2, dobreak^0'=dobreak^post_2, n^0'=n^post_2, [ A^0==A^post_2 && R^0==R^post_2 && __rho_1_^0==__rho_1_^post_2 && __rho_2_^0==__rho_2_^post_2 && dobreak^0==dobreak^post_2 && n^0==n^post_2 ], cost: 1 5: l3 -> l2 : A^0'=A^post_6, R^0'=R^post_6, __rho_1_^0'=__rho_1_^post_6, __rho_2_^0'=__rho_2_^post_6, dobreak^0'=dobreak^post_6, n^0'=n^post_6, [ 1<=n^0 && A^0==A^post_6 && R^0==R^post_6 && __rho_1_^0==__rho_1_^post_6 && __rho_2_^0==__rho_2_^post_6 && dobreak^0==dobreak^post_6 && n^0==n^post_6 ], cost: 1 6: l3 -> l0 : A^0'=A^post_7, R^0'=R^post_7, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_7, dobreak^0'=dobreak^post_7, n^0'=n^post_7, [ n^0<=0 && R^1_1==1 && R^post_7==0 && __rho_1_^post_7==__rho_1_^post_7 && dobreak^post_7==__rho_1_^post_7 && A^0==A^post_7 && __rho_2_^0==__rho_2_^post_7 && n^0==n^post_7 ], cost: 1 3: l6 -> l7 : A^0'=A^post_4, R^0'=R^post_4, __rho_1_^0'=__rho_1_^post_4, __rho_2_^0'=__rho_2_^post_4, dobreak^0'=dobreak^post_4, n^0'=n^post_4, [ A^0==A^post_4 && R^0==R^post_4 && __rho_1_^0==__rho_1_^post_4 && __rho_2_^0==__rho_2_^post_4 && dobreak^0==dobreak^post_4 && n^0==n^post_4 ], cost: 1 4: l7 -> l6 : A^0'=A^post_5, R^0'=R^post_5, __rho_1_^0'=__rho_1_^post_5, __rho_2_^0'=__rho_2_^post_5, dobreak^0'=dobreak^post_5, n^0'=n^post_5, [ A^0==A^post_5 && R^0==R^post_5 && __rho_1_^0==__rho_1_^post_5 && __rho_2_^0==__rho_2_^post_5 && dobreak^0==dobreak^post_5 && n^0==n^post_5 ], cost: 1 9: l8 -> l0 : A^0'=A^post_10, R^0'=R^post_10, __rho_1_^0'=__rho_1_^post_10, __rho_2_^0'=__rho_2_^post_10, dobreak^0'=dobreak^post_10, n^0'=n^post_10, [ A^post_10==0 && R^post_10==0 && __rho_1_^post_10==__rho_1_^post_10 && dobreak^post_10==__rho_1_^post_10 && __rho_2_^0==__rho_2_^post_10 && n^0==n^post_10 ], cost: 1 10: l9 -> l8 : A^0'=A^post_11, R^0'=R^post_11, __rho_1_^0'=__rho_1_^post_11, __rho_2_^0'=__rho_2_^post_11, dobreak^0'=dobreak^post_11, n^0'=n^post_11, [ A^0==A^post_11 && R^0==R^post_11 && __rho_1_^0==__rho_1_^post_11 && __rho_2_^0==__rho_2_^post_11 && dobreak^0==dobreak^post_11 && n^0==n^post_11 ], cost: 1 Simplified all rules, resulting in: Start location: l9 0: l0 -> l1 : [], cost: 1 7: l1 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 1 8: l1 -> l6 : [ 1<=dobreak^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 5: l3 -> l2 : [ 1<=n^0 ], cost: 1 6: l3 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 1 3: l6 -> l7 : [], cost: 1 4: l7 -> l6 : [], cost: 1 9: l8 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 1 10: l9 -> l8 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l9 0: l0 -> l1 : [], cost: 1 7: l1 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 1 8: l1 -> l6 : [ 1<=dobreak^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 5: l3 -> l2 : [ 1<=n^0 ], cost: 1 6: l3 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 1 12: l6 -> l6 : [], cost: 2 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Accelerating simple loops of location 6. Accelerating the following rules: 12: l6 -> l6 : [], cost: 2 Accelerated rule 12 with non-termination, yielding the new rule 13. [accelerate] Nesting with 0 inner and 0 outer candidates Removing the simple loops: 12. Accelerated all simple loops using metering functions (where possible): Start location: l9 0: l0 -> l1 : [], cost: 1 7: l1 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 1 8: l1 -> l6 : [ 1<=dobreak^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 5: l3 -> l2 : [ 1<=n^0 ], cost: 1 6: l3 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 1 13: l6 -> [10] : [], cost: NONTERM 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l9 0: l0 -> l1 : [], cost: 1 7: l1 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 1 8: l1 -> l6 : [ 1<=dobreak^0 ], cost: 1 14: l1 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 1: l2 -> l3 : [], cost: 1 5: l3 -> l2 : [ 1<=n^0 ], cost: 1 6: l3 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 1 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: l9 0: l0 -> l1 : [], cost: 1 7: l1 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 1 14: l1 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 1: l2 -> l3 : [], cost: 1 5: l3 -> l2 : [ 1<=n^0 ], cost: 1 6: l3 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 1 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l9 15: l0 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 2 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 17: l2 -> l2 : [ 1<=n^0 ], cost: 2 18: l2 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 2 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Accelerating simple loops of location 2. Accelerating the following rules: 17: l2 -> l2 : [ 1<=n^0 ], cost: 2 Accelerated rule 17 with non-termination, yielding the new rule 19. [accelerate] Nesting with 0 inner and 0 outer candidates Removing the simple loops: 17. Accelerated all simple loops using metering functions (where possible): Start location: l9 15: l0 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 2 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 18: l2 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 2 19: l2 -> [11] : [ 1<=n^0 ], cost: NONTERM 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l9 15: l0 -> l2 : A^0'=0, __rho_2_^0'=__rho_2_^post_8, n^0'=__rho_2_^post_8, [ dobreak^0<=0 ], cost: 2 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 20: l0 -> [11] : [ dobreak^0<=0 ], cost: NONTERM 18: l2 -> l0 : R^0'=0, __rho_1_^0'=__rho_1_^post_7, dobreak^0'=__rho_1_^post_7, [ n^0<=0 ], cost: 2 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Eliminated locations (on linear paths): Start location: l9 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 20: l0 -> [11] : [ dobreak^0<=0 ], cost: NONTERM 21: l0 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=__rho_1_^post_7, n^0'=__rho_2_^post_8, [ dobreak^0<=0 && __rho_2_^post_8<=0 ], cost: 4 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Accelerating simple loops of location 0. Accelerating the following rules: 21: l0 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=__rho_1_^post_7, n^0'=__rho_2_^post_8, [ dobreak^0<=0 && __rho_2_^post_8<=0 ], cost: 4 [test] deduced pseudo-invariant -dobreak^0+__rho_1_^post_7<=0, also trying dobreak^0-__rho_1_^post_7<=-1 Accelerated rule 21 with non-termination, yielding the new rule 22. Accelerated rule 21 with non-termination, yielding the new rule 23. Accelerated rule 21 with backward acceleration, yielding the new rule 24. [accelerate] Nesting with 0 inner and 1 outer candidates Also removing duplicate rules: 23. Accelerated all simple loops using metering functions (where possible): Start location: l9 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 20: l0 -> [11] : [ dobreak^0<=0 ], cost: NONTERM 21: l0 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=__rho_1_^post_7, n^0'=__rho_2_^post_8, [ dobreak^0<=0 && __rho_2_^post_8<=0 ], cost: 4 22: l0 -> [12] : [ dobreak^0<=0 && __rho_2_^post_8<=0 && __rho_1_^post_7<=0 ], cost: NONTERM 24: l0 -> [12] : [ dobreak^0<=0 && __rho_2_^post_8<=0 && -dobreak^0+__rho_1_^post_7<=0 ], cost: NONTERM 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l9 16: l0 -> [10] : [ 1<=dobreak^0 ], cost: NONTERM 20: l0 -> [11] : [ dobreak^0<=0 ], cost: NONTERM 11: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_10, dobreak^0'=__rho_1_^post_10, [], cost: 2 25: l9 -> l0 : A^0'=0, R^0'=0, __rho_1_^0'=__rho_1_^post_7, __rho_2_^0'=__rho_2_^post_8, dobreak^0'=__rho_1_^post_7, n^0'=__rho_2_^post_8, [ __rho_2_^post_8<=0 ], cost: 6 26: l9 -> [12] : [], cost: NONTERM 27: l9 -> [12] : [], cost: NONTERM Eliminated locations (on tree-shaped paths): Start location: l9 26: l9 -> [12] : [], cost: NONTERM 27: l9 -> [12] : [], cost: NONTERM 28: l9 -> [10] : [ 1<=__rho_1_^post_10 ], cost: NONTERM 29: l9 -> [11] : [ __rho_1_^post_10<=0 ], cost: NONTERM 30: l9 -> [10] : [ __rho_2_^post_8<=0 && 1<=__rho_1_^post_7 ], cost: NONTERM 31: l9 -> [11] : [ __rho_2_^post_8<=0 && __rho_1_^post_7<=0 ], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l9 27: l9 -> [12] : [], cost: NONTERM 28: l9 -> [10] : [ 1<=__rho_1_^post_10 ], cost: NONTERM 29: l9 -> [11] : [ __rho_1_^post_10<=0 ], cost: NONTERM 30: l9 -> [10] : [ __rho_2_^post_8<=0 && 1<=__rho_1_^post_7 ], cost: NONTERM 31: l9 -> [11] : [ __rho_2_^post_8<=0 && __rho_1_^post_7<=0 ], cost: NONTERM Computing asymptotic complexity for rule 27 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: [] NO