WORST_CASE(Omega(1),?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: l12 0: l0 -> l1 : N6^0'=N6^post_1, N^0'=N^post_1, i8^0'=i8^post_1, i^0'=i^post_1, j7^0'=j7^post_1, min9^0'=min9^post_1, t10^0'=t10^post_1, tmp^0'=tmp^post_1, [ N^0==N^post_1 && N6^0==N6^post_1 && i^0==i^post_1 && i8^0==i8^post_1 && j7^0==j7^post_1 && min9^0==min9^post_1 && t10^0==t10^post_1 && tmp^0==tmp^post_1 ], cost: 1 13: l1 -> l2 : N6^0'=N6^post_14, N^0'=N^post_14, i8^0'=i8^post_14, i^0'=i^post_14, j7^0'=j7^post_14, min9^0'=min9^post_14, t10^0'=t10^post_14, tmp^0'=tmp^post_14, [ N^0<=i^0 && N6^post_14==N^0 && j7^post_14==0 && N^0==N^post_14 && i^0==i^post_14 && i8^0==i8^post_14 && min9^0==min9^post_14 && t10^0==t10^post_14 && tmp^0==tmp^post_14 ], cost: 1 14: l1 -> l0 : N6^0'=N6^post_15, N^0'=N^post_15, i8^0'=i8^post_15, i^0'=i^post_15, j7^0'=j7^post_15, min9^0'=min9^post_15, t10^0'=t10^post_15, tmp^0'=tmp^post_15, [ 1+i^0<=N^0 && i^post_15==1+i^0 && N^0==N^post_15 && N6^0==N6^post_15 && i8^0==i8^post_15 && j7^0==j7^post_15 && min9^0==min9^post_15 && t10^0==t10^post_15 && tmp^0==tmp^post_15 ], cost: 1 1: l2 -> l3 : N6^0'=N6^post_2, N^0'=N^post_2, i8^0'=i8^post_2, i^0'=i^post_2, j7^0'=j7^post_2, min9^0'=min9^post_2, t10^0'=t10^post_2, tmp^0'=tmp^post_2, [ N^0==N^post_2 && N6^0==N6^post_2 && i^0==i^post_2 && i8^0==i8^post_2 && j7^0==j7^post_2 && min9^0==min9^post_2 && t10^0==t10^post_2 && tmp^0==tmp^post_2 ], cost: 1 11: l3 -> l6 : N6^0'=N6^post_12, N^0'=N^post_12, i8^0'=i8^post_12, i^0'=i^post_12, j7^0'=j7^post_12, min9^0'=min9^post_12, t10^0'=t10^post_12, tmp^0'=tmp^post_12, [ -1+N6^0<=j7^0 && j7^post_12==0 && N^0==N^post_12 && N6^0==N6^post_12 && i^0==i^post_12 && i8^0==i8^post_12 && min9^0==min9^post_12 && t10^0==t10^post_12 && tmp^0==tmp^post_12 ], cost: 1 12: l3 -> l7 : N6^0'=N6^post_13, N^0'=N^post_13, i8^0'=i8^post_13, i^0'=i^post_13, j7^0'=j7^post_13, min9^0'=min9^post_13, t10^0'=t10^post_13, tmp^0'=tmp^post_13, [ 1+j7^0<=-1+N6^0 && min9^post_13==j7^0 && i8^post_13==1+j7^0 && N^0==N^post_13 && N6^0==N6^post_13 && i^0==i^post_13 && j7^0==j7^post_13 && t10^0==t10^post_13 && tmp^0==tmp^post_13 ], cost: 1 2: l4 -> l5 : N6^0'=N6^post_3, N^0'=N^post_3, i8^0'=i8^post_3, i^0'=i^post_3, j7^0'=j7^post_3, min9^0'=min9^post_3, t10^0'=t10^post_3, tmp^0'=tmp^post_3, [ -1+N6^0<=j7^0 && N^0==N^post_3 && N6^0==N6^post_3 && i^0==i^post_3 && i8^0==i8^post_3 && j7^0==j7^post_3 && min9^0==min9^post_3 && t10^0==t10^post_3 && tmp^0==tmp^post_3 ], cost: 1 3: l4 -> l6 : N6^0'=N6^post_4, N^0'=N^post_4, i8^0'=i8^post_4, i^0'=i^post_4, j7^0'=j7^post_4, min9^0'=min9^post_4, t10^0'=t10^post_4, tmp^0'=tmp^post_4, [ 1+j7^0<=-1+N6^0 && j7^post_4==1+j7^0 && N^0==N^post_4 && N6^0==N6^post_4 && i^0==i^post_4 && i8^0==i8^post_4 && min9^0==min9^post_4 && t10^0==t10^post_4 && tmp^0==tmp^post_4 ], cost: 1 10: l6 -> l4 : N6^0'=N6^post_11, N^0'=N^post_11, i8^0'=i8^post_11, i^0'=i^post_11, j7^0'=j7^post_11, min9^0'=min9^post_11, t10^0'=t10^post_11, tmp^0'=tmp^post_11, [ N^0==N^post_11 && N6^0==N6^post_11 && i^0==i^post_11 && i8^0==i8^post_11 && j7^0==j7^post_11 && min9^0==min9^post_11 && t10^0==t10^post_11 && tmp^0==tmp^post_11 ], cost: 1 4: l7 -> l8 : N6^0'=N6^post_5, N^0'=N^post_5, i8^0'=i8^post_5, i^0'=i^post_5, j7^0'=j7^post_5, min9^0'=min9^post_5, t10^0'=t10^post_5, tmp^0'=tmp^post_5, [ N^0==N^post_5 && N6^0==N6^post_5 && i^0==i^post_5 && i8^0==i8^post_5 && j7^0==j7^post_5 && min9^0==min9^post_5 && t10^0==t10^post_5 && tmp^0==tmp^post_5 ], cost: 1 8: l8 -> l2 : N6^0'=N6^post_9, N^0'=N^post_9, i8^0'=i8^post_9, i^0'=i^post_9, j7^0'=j7^post_9, min9^0'=min9^post_9, t10^0'=t10^post_9, tmp^0'=tmp^post_9, [ N6^0<=i8^0 && t10^post_9==t10^post_9 && j7^post_9==1+j7^0 && N^0==N^post_9 && N6^0==N6^post_9 && i^0==i^post_9 && i8^0==i8^post_9 && min9^0==min9^post_9 && tmp^0==tmp^post_9 ], cost: 1 9: l8 -> l10 : N6^0'=N6^post_10, N^0'=N^post_10, i8^0'=i8^post_10, i^0'=i^post_10, j7^0'=j7^post_10, min9^0'=min9^post_10, t10^0'=t10^post_10, tmp^0'=tmp^post_10, [ 1+i8^0<=N6^0 && N^0==N^post_10 && N6^0==N6^post_10 && i^0==i^post_10 && i8^0==i8^post_10 && j7^0==j7^post_10 && min9^0==min9^post_10 && t10^0==t10^post_10 && tmp^0==tmp^post_10 ], cost: 1 5: l9 -> l7 : N6^0'=N6^post_6, N^0'=N^post_6, i8^0'=i8^post_6, i^0'=i^post_6, j7^0'=j7^post_6, min9^0'=min9^post_6, t10^0'=t10^post_6, tmp^0'=tmp^post_6, [ i8^post_6==1+i8^0 && N^0==N^post_6 && N6^0==N6^post_6 && i^0==i^post_6 && j7^0==j7^post_6 && min9^0==min9^post_6 && t10^0==t10^post_6 && tmp^0==tmp^post_6 ], cost: 1 6: l10 -> l9 : N6^0'=N6^post_7, N^0'=N^post_7, i8^0'=i8^post_7, i^0'=i^post_7, j7^0'=j7^post_7, min9^0'=min9^post_7, t10^0'=t10^post_7, tmp^0'=tmp^post_7, [ min9^post_7==i8^0 && N^0==N^post_7 && N6^0==N6^post_7 && i^0==i^post_7 && i8^0==i8^post_7 && j7^0==j7^post_7 && t10^0==t10^post_7 && tmp^0==tmp^post_7 ], cost: 1 7: l10 -> l9 : N6^0'=N6^post_8, N^0'=N^post_8, i8^0'=i8^post_8, i^0'=i^post_8, j7^0'=j7^post_8, min9^0'=min9^post_8, t10^0'=t10^post_8, tmp^0'=tmp^post_8, [ N^0==N^post_8 && N6^0==N6^post_8 && i^0==i^post_8 && i8^0==i8^post_8 && j7^0==j7^post_8 && min9^0==min9^post_8 && t10^0==t10^post_8 && tmp^0==tmp^post_8 ], cost: 1 15: l11 -> l0 : N6^0'=N6^post_16, N^0'=N^post_16, i8^0'=i8^post_16, i^0'=i^post_16, j7^0'=j7^post_16, min9^0'=min9^post_16, t10^0'=t10^post_16, tmp^0'=tmp^post_16, [ tmp^post_16==tmp^post_16 && i^post_16==0 && N^0==N^post_16 && N6^0==N6^post_16 && i8^0==i8^post_16 && j7^0==j7^post_16 && min9^0==min9^post_16 && t10^0==t10^post_16 ], cost: 1 16: l12 -> l11 : N6^0'=N6^post_17, N^0'=N^post_17, i8^0'=i8^post_17, i^0'=i^post_17, j7^0'=j7^post_17, min9^0'=min9^post_17, t10^0'=t10^post_17, tmp^0'=tmp^post_17, [ N^0==N^post_17 && N6^0==N6^post_17 && i^0==i^post_17 && i8^0==i8^post_17 && j7^0==j7^post_17 && min9^0==min9^post_17 && t10^0==t10^post_17 && tmp^0==tmp^post_17 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 16: l12 -> l11 : N6^0'=N6^post_17, N^0'=N^post_17, i8^0'=i8^post_17, i^0'=i^post_17, j7^0'=j7^post_17, min9^0'=min9^post_17, t10^0'=t10^post_17, tmp^0'=tmp^post_17, [ N^0==N^post_17 && N6^0==N6^post_17 && i^0==i^post_17 && i8^0==i8^post_17 && j7^0==j7^post_17 && min9^0==min9^post_17 && t10^0==t10^post_17 && tmp^0==tmp^post_17 ], cost: 1 Removed unreachable and leaf rules: Start location: l12 0: l0 -> l1 : N6^0'=N6^post_1, N^0'=N^post_1, i8^0'=i8^post_1, i^0'=i^post_1, j7^0'=j7^post_1, min9^0'=min9^post_1, t10^0'=t10^post_1, tmp^0'=tmp^post_1, [ N^0==N^post_1 && N6^0==N6^post_1 && i^0==i^post_1 && i8^0==i8^post_1 && j7^0==j7^post_1 && min9^0==min9^post_1 && t10^0==t10^post_1 && tmp^0==tmp^post_1 ], cost: 1 13: l1 -> l2 : N6^0'=N6^post_14, N^0'=N^post_14, i8^0'=i8^post_14, i^0'=i^post_14, j7^0'=j7^post_14, min9^0'=min9^post_14, t10^0'=t10^post_14, tmp^0'=tmp^post_14, [ N^0<=i^0 && N6^post_14==N^0 && j7^post_14==0 && N^0==N^post_14 && i^0==i^post_14 && i8^0==i8^post_14 && min9^0==min9^post_14 && t10^0==t10^post_14 && tmp^0==tmp^post_14 ], cost: 1 14: l1 -> l0 : N6^0'=N6^post_15, N^0'=N^post_15, i8^0'=i8^post_15, i^0'=i^post_15, j7^0'=j7^post_15, min9^0'=min9^post_15, t10^0'=t10^post_15, tmp^0'=tmp^post_15, [ 1+i^0<=N^0 && i^post_15==1+i^0 && N^0==N^post_15 && N6^0==N6^post_15 && i8^0==i8^post_15 && j7^0==j7^post_15 && min9^0==min9^post_15 && t10^0==t10^post_15 && tmp^0==tmp^post_15 ], cost: 1 1: l2 -> l3 : N6^0'=N6^post_2, N^0'=N^post_2, i8^0'=i8^post_2, i^0'=i^post_2, j7^0'=j7^post_2, min9^0'=min9^post_2, t10^0'=t10^post_2, tmp^0'=tmp^post_2, [ N^0==N^post_2 && N6^0==N6^post_2 && i^0==i^post_2 && i8^0==i8^post_2 && j7^0==j7^post_2 && min9^0==min9^post_2 && t10^0==t10^post_2 && tmp^0==tmp^post_2 ], cost: 1 11: l3 -> l6 : N6^0'=N6^post_12, N^0'=N^post_12, i8^0'=i8^post_12, i^0'=i^post_12, j7^0'=j7^post_12, min9^0'=min9^post_12, t10^0'=t10^post_12, tmp^0'=tmp^post_12, [ -1+N6^0<=j7^0 && j7^post_12==0 && N^0==N^post_12 && N6^0==N6^post_12 && i^0==i^post_12 && i8^0==i8^post_12 && min9^0==min9^post_12 && t10^0==t10^post_12 && tmp^0==tmp^post_12 ], cost: 1 12: l3 -> l7 : N6^0'=N6^post_13, N^0'=N^post_13, i8^0'=i8^post_13, i^0'=i^post_13, j7^0'=j7^post_13, min9^0'=min9^post_13, t10^0'=t10^post_13, tmp^0'=tmp^post_13, [ 1+j7^0<=-1+N6^0 && min9^post_13==j7^0 && i8^post_13==1+j7^0 && N^0==N^post_13 && N6^0==N6^post_13 && i^0==i^post_13 && j7^0==j7^post_13 && t10^0==t10^post_13 && tmp^0==tmp^post_13 ], cost: 1 3: l4 -> l6 : N6^0'=N6^post_4, N^0'=N^post_4, i8^0'=i8^post_4, i^0'=i^post_4, j7^0'=j7^post_4, min9^0'=min9^post_4, t10^0'=t10^post_4, tmp^0'=tmp^post_4, [ 1+j7^0<=-1+N6^0 && j7^post_4==1+j7^0 && N^0==N^post_4 && N6^0==N6^post_4 && i^0==i^post_4 && i8^0==i8^post_4 && min9^0==min9^post_4 && t10^0==t10^post_4 && tmp^0==tmp^post_4 ], cost: 1 10: l6 -> l4 : N6^0'=N6^post_11, N^0'=N^post_11, i8^0'=i8^post_11, i^0'=i^post_11, j7^0'=j7^post_11, min9^0'=min9^post_11, t10^0'=t10^post_11, tmp^0'=tmp^post_11, [ N^0==N^post_11 && N6^0==N6^post_11 && i^0==i^post_11 && i8^0==i8^post_11 && j7^0==j7^post_11 && min9^0==min9^post_11 && t10^0==t10^post_11 && tmp^0==tmp^post_11 ], cost: 1 4: l7 -> l8 : N6^0'=N6^post_5, N^0'=N^post_5, i8^0'=i8^post_5, i^0'=i^post_5, j7^0'=j7^post_5, min9^0'=min9^post_5, t10^0'=t10^post_5, tmp^0'=tmp^post_5, [ N^0==N^post_5 && N6^0==N6^post_5 && i^0==i^post_5 && i8^0==i8^post_5 && j7^0==j7^post_5 && min9^0==min9^post_5 && t10^0==t10^post_5 && tmp^0==tmp^post_5 ], cost: 1 8: l8 -> l2 : N6^0'=N6^post_9, N^0'=N^post_9, i8^0'=i8^post_9, i^0'=i^post_9, j7^0'=j7^post_9, min9^0'=min9^post_9, t10^0'=t10^post_9, tmp^0'=tmp^post_9, [ N6^0<=i8^0 && t10^post_9==t10^post_9 && j7^post_9==1+j7^0 && N^0==N^post_9 && N6^0==N6^post_9 && i^0==i^post_9 && i8^0==i8^post_9 && min9^0==min9^post_9 && tmp^0==tmp^post_9 ], cost: 1 9: l8 -> l10 : N6^0'=N6^post_10, N^0'=N^post_10, i8^0'=i8^post_10, i^0'=i^post_10, j7^0'=j7^post_10, min9^0'=min9^post_10, t10^0'=t10^post_10, tmp^0'=tmp^post_10, [ 1+i8^0<=N6^0 && N^0==N^post_10 && N6^0==N6^post_10 && i^0==i^post_10 && i8^0==i8^post_10 && j7^0==j7^post_10 && min9^0==min9^post_10 && t10^0==t10^post_10 && tmp^0==tmp^post_10 ], cost: 1 5: l9 -> l7 : N6^0'=N6^post_6, N^0'=N^post_6, i8^0'=i8^post_6, i^0'=i^post_6, j7^0'=j7^post_6, min9^0'=min9^post_6, t10^0'=t10^post_6, tmp^0'=tmp^post_6, [ i8^post_6==1+i8^0 && N^0==N^post_6 && N6^0==N6^post_6 && i^0==i^post_6 && j7^0==j7^post_6 && min9^0==min9^post_6 && t10^0==t10^post_6 && tmp^0==tmp^post_6 ], cost: 1 6: l10 -> l9 : N6^0'=N6^post_7, N^0'=N^post_7, i8^0'=i8^post_7, i^0'=i^post_7, j7^0'=j7^post_7, min9^0'=min9^post_7, t10^0'=t10^post_7, tmp^0'=tmp^post_7, [ min9^post_7==i8^0 && N^0==N^post_7 && N6^0==N6^post_7 && i^0==i^post_7 && i8^0==i8^post_7 && j7^0==j7^post_7 && t10^0==t10^post_7 && tmp^0==tmp^post_7 ], cost: 1 7: l10 -> l9 : N6^0'=N6^post_8, N^0'=N^post_8, i8^0'=i8^post_8, i^0'=i^post_8, j7^0'=j7^post_8, min9^0'=min9^post_8, t10^0'=t10^post_8, tmp^0'=tmp^post_8, [ N^0==N^post_8 && N6^0==N6^post_8 && i^0==i^post_8 && i8^0==i8^post_8 && j7^0==j7^post_8 && min9^0==min9^post_8 && t10^0==t10^post_8 && tmp^0==tmp^post_8 ], cost: 1 15: l11 -> l0 : N6^0'=N6^post_16, N^0'=N^post_16, i8^0'=i8^post_16, i^0'=i^post_16, j7^0'=j7^post_16, min9^0'=min9^post_16, t10^0'=t10^post_16, tmp^0'=tmp^post_16, [ tmp^post_16==tmp^post_16 && i^post_16==0 && N^0==N^post_16 && N6^0==N6^post_16 && i8^0==i8^post_16 && j7^0==j7^post_16 && min9^0==min9^post_16 && t10^0==t10^post_16 ], cost: 1 16: l12 -> l11 : N6^0'=N6^post_17, N^0'=N^post_17, i8^0'=i8^post_17, i^0'=i^post_17, j7^0'=j7^post_17, min9^0'=min9^post_17, t10^0'=t10^post_17, tmp^0'=tmp^post_17, [ N^0==N^post_17 && N6^0==N6^post_17 && i^0==i^post_17 && i8^0==i8^post_17 && j7^0==j7^post_17 && min9^0==min9^post_17 && t10^0==t10^post_17 && tmp^0==tmp^post_17 ], cost: 1 Simplified all rules, resulting in: Start location: l12 0: l0 -> l1 : [], cost: 1 13: l1 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 1 14: l1 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 11: l3 -> l6 : j7^0'=0, [ -1+N6^0<=j7^0 ], cost: 1 12: l3 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 3: l4 -> l6 : j7^0'=1+j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 10: l6 -> l4 : [], cost: 1 4: l7 -> l8 : [], cost: 1 8: l8 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 1 9: l8 -> l10 : [ 1+i8^0<=N6^0 ], cost: 1 5: l9 -> l7 : i8^0'=1+i8^0, [], cost: 1 6: l10 -> l9 : min9^0'=i8^0, [], cost: 1 7: l10 -> l9 : [], cost: 1 15: l11 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 1 16: l12 -> l11 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: l12 0: l0 -> l1 : [], cost: 1 13: l1 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 1 14: l1 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 11: l3 -> l6 : j7^0'=0, [ -1+N6^0<=j7^0 ], cost: 1 12: l3 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 18: l6 -> l6 : j7^0'=1+j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 4: l7 -> l8 : [], cost: 1 8: l8 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 1 9: l8 -> l10 : [ 1+i8^0<=N6^0 ], cost: 1 5: l9 -> l7 : i8^0'=1+i8^0, [], cost: 1 6: l10 -> l9 : min9^0'=i8^0, [], cost: 1 7: l10 -> l9 : [], cost: 1 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Accelerating simple loops of location 6. Accelerating the following rules: 18: l6 -> l6 : j7^0'=1+j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 Accelerated rule 18 with backward acceleration, yielding the new rule 19. [accelerate] Nesting with 1 inner and 1 outer candidates Removing the simple loops: 18. Accelerated all simple loops using metering functions (where possible): Start location: l12 0: l0 -> l1 : [], cost: 1 13: l1 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 1 14: l1 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 11: l3 -> l6 : j7^0'=0, [ -1+N6^0<=j7^0 ], cost: 1 12: l3 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 19: l6 -> l6 : j7^0'=-1+N6^0, [ -1-j7^0+N6^0>=0 ], cost: -2-2*j7^0+2*N6^0 4: l7 -> l8 : [], cost: 1 8: l8 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 1 9: l8 -> l10 : [ 1+i8^0<=N6^0 ], cost: 1 5: l9 -> l7 : i8^0'=1+i8^0, [], cost: 1 6: l10 -> l9 : min9^0'=i8^0, [], cost: 1 7: l10 -> l9 : [], cost: 1 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l12 0: l0 -> l1 : [], cost: 1 13: l1 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 1 14: l1 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 11: l3 -> l6 : j7^0'=0, [ -1+N6^0<=j7^0 ], cost: 1 12: l3 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 20: l3 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: -1+2*N6^0 4: l7 -> l8 : [], cost: 1 8: l8 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 1 9: l8 -> l10 : [ 1+i8^0<=N6^0 ], cost: 1 5: l9 -> l7 : i8^0'=1+i8^0, [], cost: 1 6: l10 -> l9 : min9^0'=i8^0, [], cost: 1 7: l10 -> l9 : [], cost: 1 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: l12 0: l0 -> l1 : [], cost: 1 13: l1 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 1 14: l1 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 1 1: l2 -> l3 : [], cost: 1 12: l3 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 1 20: l3 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: -1+2*N6^0 4: l7 -> l8 : [], cost: 1 8: l8 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 1 9: l8 -> l10 : [ 1+i8^0<=N6^0 ], cost: 1 5: l9 -> l7 : i8^0'=1+i8^0, [], cost: 1 6: l10 -> l9 : min9^0'=i8^0, [], cost: 1 7: l10 -> l9 : [], cost: 1 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Eliminated locations (on tree-shaped paths): Start location: l12 21: l0 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 2 22: l0 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 2 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 26: l7 -> l10 : [ 1+i8^0<=N6^0 ], cost: 2 27: l10 -> l7 : i8^0'=1+i8^0, min9^0'=i8^0, [], cost: 2 28: l10 -> l7 : i8^0'=1+i8^0, [], cost: 2 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Accelerating simple loops of location 0. Accelerating the following rules: 22: l0 -> l0 : i^0'=1+i^0, [ 1+i^0<=N^0 ], cost: 2 Accelerated rule 22 with backward acceleration, yielding the new rule 29. [accelerate] Nesting with 1 inner and 1 outer candidates Removing the simple loops: 22. Accelerated all simple loops using metering functions (where possible): Start location: l12 21: l0 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 2 29: l0 -> l0 : i^0'=N^0, [ N^0-i^0>=0 ], cost: 2*N^0-2*i^0 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 26: l7 -> l10 : [ 1+i8^0<=N6^0 ], cost: 2 27: l10 -> l7 : i8^0'=1+i8^0, min9^0'=i8^0, [], cost: 2 28: l10 -> l7 : i8^0'=1+i8^0, [], cost: 2 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 Chained accelerated rules (with incoming rules): Start location: l12 21: l0 -> l2 : N6^0'=N^0, j7^0'=0, [ N^0<=i^0 ], cost: 2 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 26: l7 -> l10 : [ 1+i8^0<=N6^0 ], cost: 2 27: l10 -> l7 : i8^0'=1+i8^0, min9^0'=i8^0, [], cost: 2 28: l10 -> l7 : i8^0'=1+i8^0, [], cost: 2 17: l12 -> l0 : i^0'=0, tmp^0'=tmp^post_16, [], cost: 2 30: l12 -> l0 : i^0'=N^0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 2+2*N^0 Eliminated locations (on tree-shaped paths): Start location: l12 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 33: l7 -> l7 : i8^0'=1+i8^0, min9^0'=i8^0, [ 1+i8^0<=N6^0 ], cost: 4 34: l7 -> l7 : i8^0'=1+i8^0, [ 1+i8^0<=N6^0 ], cost: 4 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 Accelerating simple loops of location 7. Accelerating the following rules: 33: l7 -> l7 : i8^0'=1+i8^0, min9^0'=i8^0, [ 1+i8^0<=N6^0 ], cost: 4 34: l7 -> l7 : i8^0'=1+i8^0, [ 1+i8^0<=N6^0 ], cost: 4 Accelerated rule 33 with backward acceleration, yielding the new rule 35. Accelerated rule 34 with backward acceleration, yielding the new rule 36. [accelerate] Nesting with 2 inner and 2 outer candidates Removing the simple loops: 33 34. Accelerated all simple loops using metering functions (where possible): Start location: l12 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 35: l7 -> l7 : i8^0'=N6^0, min9^0'=-1+N6^0, [ -i8^0+N6^0>=1 ], cost: -4*i8^0+4*N6^0 36: l7 -> l7 : i8^0'=N6^0, [ -i8^0+N6^0>=0 ], cost: -4*i8^0+4*N6^0 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 Chained accelerated rules (with incoming rules): Start location: l12 23: l2 -> l7 : i8^0'=1+j7^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: 2 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 37: l2 -> l7 : i8^0'=N6^0, min9^0'=-1+N6^0, [ 1+j7^0<=-1+N6^0 ], cost: -2-4*j7^0+4*N6^0 38: l2 -> l7 : i8^0'=N6^0, min9^0'=j7^0, [ 1+j7^0<=-1+N6^0 ], cost: -2-4*j7^0+4*N6^0 25: l7 -> l2 : j7^0'=1+j7^0, t10^0'=t10^post_9, [ N6^0<=i8^0 ], cost: 2 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 Eliminated locations (on tree-shaped paths): Start location: l12 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 39: l2 -> l2 : i8^0'=N6^0, j7^0'=1+j7^0, min9^0'=-1+N6^0, t10^0'=t10^post_9, [ 1+j7^0<=-1+N6^0 ], cost: -4*j7^0+4*N6^0 40: l2 -> l2 : i8^0'=N6^0, j7^0'=1+j7^0, min9^0'=j7^0, t10^0'=t10^post_9, [ 1+j7^0<=-1+N6^0 ], cost: -4*j7^0+4*N6^0 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 Accelerating simple loops of location 2. Accelerating the following rules: 39: l2 -> l2 : i8^0'=N6^0, j7^0'=1+j7^0, min9^0'=-1+N6^0, t10^0'=t10^post_9, [ 1+j7^0<=-1+N6^0 ], cost: -4*j7^0+4*N6^0 40: l2 -> l2 : i8^0'=N6^0, j7^0'=1+j7^0, min9^0'=j7^0, t10^0'=t10^post_9, [ 1+j7^0<=-1+N6^0 ], cost: -4*j7^0+4*N6^0 Accelerated rule 39 with backward acceleration, yielding the new rule 41. Accelerated rule 40 with backward acceleration, yielding the new rule 42. [accelerate] Nesting with 2 inner and 2 outer candidates Removing the simple loops: 39 40. Accelerated all simple loops using metering functions (where possible): Start location: l12 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 41: l2 -> l2 : i8^0'=N6^0, j7^0'=-1+N6^0, min9^0'=-1+N6^0, t10^0'=t10^post_9, [ -1-j7^0+N6^0>=1 ], cost: -2-4*(1+j7^0-N6^0)*N6^0-2*j7^0-2*(1+j7^0-N6^0)^2+2*N6^0+4*j7^0*(1+j7^0-N6^0) 42: l2 -> l2 : i8^0'=N6^0, j7^0'=-1+N6^0, min9^0'=-2+N6^0, t10^0'=t10^post_9, [ -1-j7^0+N6^0>=1 ], cost: -2-4*(1+j7^0-N6^0)*N6^0-2*j7^0-2*(1+j7^0-N6^0)^2+2*N6^0+4*j7^0*(1+j7^0-N6^0) 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 Chained accelerated rules (with incoming rules): Start location: l12 24: l2 -> l6 : j7^0'=-1+N6^0, [ -1+N6^0<=j7^0 && -1+N6^0>=0 ], cost: 2*N6^0 31: l12 -> l2 : N6^0'=N^0, i^0'=0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0<=0 ], cost: 4 32: l12 -> l2 : N6^0'=N^0, i^0'=N^0, j7^0'=0, tmp^0'=tmp^post_16, [ N^0>=0 ], cost: 4+2*N^0 43: l12 -> l2 : N6^0'=N^0, i8^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, min9^0'=-1+N^0, t10^0'=t10^post_9, tmp^0'=tmp^post_16, [ -1+N^0>=1 ], cost: 2+4*N^0-2*(-1+N^0)^2+4*(-1+N^0)*N^0 44: l12 -> l2 : N6^0'=N^0, i8^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, min9^0'=-2+N^0, t10^0'=t10^post_9, tmp^0'=tmp^post_16, [ -1+N^0>=1 ], cost: 2+4*N^0-2*(-1+N^0)^2+4*(-1+N^0)*N^0 Eliminated locations (on tree-shaped paths): Start location: l12 45: l12 -> l6 : N6^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, tmp^0'=tmp^post_16, [ -1+N^0<=0 && -1+N^0>=0 ], cost: 4+4*N^0 46: l12 -> l6 : N6^0'=N^0, i8^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, min9^0'=-1+N^0, t10^0'=t10^post_9, tmp^0'=tmp^post_16, [ -1+N^0>=1 ], cost: 2+6*N^0-2*(-1+N^0)^2+4*(-1+N^0)*N^0 47: l12 -> l6 : N6^0'=N^0, i8^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, min9^0'=-2+N^0, t10^0'=t10^post_9, tmp^0'=tmp^post_16, [ -1+N^0>=1 ], cost: 2+6*N^0-2*(-1+N^0)^2+4*(-1+N^0)*N^0 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: l12 45: l12 -> l6 : N6^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, tmp^0'=tmp^post_16, [ -1+N^0<=0 && -1+N^0>=0 ], cost: 4+4*N^0 47: l12 -> l6 : N6^0'=N^0, i8^0'=N^0, i^0'=N^0, j7^0'=-1+N^0, min9^0'=-2+N^0, t10^0'=t10^post_9, tmp^0'=tmp^post_16, [ -1+N^0>=1 ], cost: 2+6*N^0-2*(-1+N^0)^2+4*(-1+N^0)*N^0 Computing asymptotic complexity for rule 47 Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 45 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: [ N^0==N^post_17 && N6^0==N6^post_17 && i^0==i^post_17 && i8^0==i8^post_17 && j7^0==j7^post_17 && min9^0==min9^post_17 && t10^0==t10^post_17 && tmp^0==tmp^post_17 ] WORST_CASE(Omega(1),?)