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