5.99/2.71 WORST_CASE(Omega(n^1), O(n^1)) 5.99/2.72 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 5.99/2.72 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.99/2.72 5.99/2.72 5.99/2.72 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^1). 5.99/2.72 5.99/2.72 (0) CpxIntTrs 5.99/2.72 (1) Koat Proof [FINISHED, 404 ms] 5.99/2.72 (2) BOUNDS(1, n^1) 5.99/2.72 (3) Loat Proof [FINISHED, 1008 ms] 5.99/2.72 (4) BOUNDS(n^1, INF) 5.99/2.72 5.99/2.72 5.99/2.72 ---------------------------------------- 5.99/2.72 5.99/2.72 (0) 5.99/2.72 Obligation: 5.99/2.72 Complexity Int TRS consisting of the following rules: 5.99/2.72 start(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: A >= 5 && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A 5.99/2.72 start(A, B, C, D, E, F, G, H) -> Com_1(lbl92(A, B, C, H, E, 0, G, 1 + H)) :|: 2 >= A && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A 5.99/2.72 start(A, B, C, D, E, F, G, H) -> Com_1(lbl82(A, 0, C, D, E, 1, G, H)) :|: A >= 3 && 4 >= A && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A 5.99/2.72 lbl92(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: D >= 4 && D >= A && F + 10 >= 5 * D && F >= 0 && H >= D + 1 && H <= D + 1 5.99/2.72 lbl92(A, B, C, D, E, F, G, H) -> Com_1(lbl92(A, B, C, H, E, 0, G, 1 + H)) :|: 1 >= D && D >= A && F + 10 >= 5 * D && F >= 0 && H >= D + 1 && H <= D + 1 5.99/2.72 lbl92(A, B, C, D, E, F, G, H) -> Com_1(lbl82(A, 0, C, D, E, 1, G, H)) :|: D >= 2 && 3 >= D && D >= A && F + 10 >= 5 * D && F >= 0 && H >= D + 1 && H <= D + 1 5.99/2.72 lbl82(A, B, C, D, E, F, G, H) -> Com_1(lbl92(A, B, C, H, E, F, G, 1 + H)) :|: 2 >= H && 9 >= B && B >= 0 && H >= A && H >= 3 && 4 >= H && F >= B + 1 && F <= B + 1 5.99/2.72 lbl82(A, B, C, D, E, F, G, H) -> Com_1(lbl92(A, B, C, H, E, F, G, 1 + H)) :|: H >= A && H >= 3 && 4 >= H && F >= 10 && F <= 10 && B >= 9 && B <= 9 5.99/2.72 lbl82(A, B, C, D, E, F, G, H) -> Com_1(lbl82(A, F, C, D, E, 1 + F, G, H)) :|: H >= 3 && 8 >= B && 9 >= B && B >= 0 && H >= A && 4 >= H && F >= B + 1 && F <= B + 1 5.99/2.72 start0(A, B, C, D, E, F, G, H) -> Com_1(start(A, C, C, E, E, G, G, A)) :|: TRUE 5.99/2.72 5.99/2.72 The start-symbols are:[start0_8] 5.99/2.72 5.99/2.72 5.99/2.72 ---------------------------------------- 5.99/2.72 5.99/2.72 (1) Koat Proof (FINISHED) 5.99/2.72 YES(?, 44*ar_0 + 221) 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Initial complexity problem: 5.99/2.72 5.99/2.72 1: T: 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_0 >= 5 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 2 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_0 >= 3 /\ 4 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ 2 >= ar_7 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start(ar_0, ar_2, ar_2, ar_4, ar_4, ar_6, ar_6, ar_0)) 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ 0 <= 0 ] 5.99/2.72 5.99/2.72 start location: koat_start 5.99/2.72 5.99/2.72 leaf cost: 0 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Testing for reachability in the complexity graph removes the following transition from problem 1: 5.99/2.72 5.99/2.72 lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ 2 >= ar_7 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 We thus obtain the following problem: 5.99/2.72 5.99/2.72 2: T: 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_0 >= 3 /\ 4 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 2 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_0 >= 5 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start(ar_0, ar_2, ar_2, ar_4, ar_4, ar_6, ar_6, ar_0)) 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ 0 <= 0 ] 5.99/2.72 5.99/2.72 start location: koat_start 5.99/2.72 5.99/2.72 leaf cost: 0 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Repeatedly propagating knowledge in problem 2 produces the following problem: 5.99/2.72 5.99/2.72 3: T: 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_0 >= 3 /\ 4 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 2 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_0 >= 5 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start(ar_0, ar_2, ar_2, ar_4, ar_4, ar_6, ar_6, ar_0)) 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ 0 <= 0 ] 5.99/2.72 5.99/2.72 start location: koat_start 5.99/2.72 5.99/2.72 leaf cost: 0 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 A polynomial rank function with 5.99/2.72 5.99/2.72 Pol(lbl92) = 1 5.99/2.72 5.99/2.72 Pol(stop) = 0 5.99/2.72 5.99/2.72 Pol(lbl82) = 1 5.99/2.72 5.99/2.72 Pol(start) = 1 5.99/2.72 5.99/2.72 Pol(start0) = 1 5.99/2.72 5.99/2.72 Pol(koat_start) = 1 5.99/2.72 5.99/2.72 orients all transitions weakly and the transition 5.99/2.72 5.99/2.72 lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 strictly and produces the following problem: 5.99/2.72 5.99/2.72 4: T: 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: ?, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_0 >= 3 /\ 4 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 2 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_0 >= 5 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start(ar_0, ar_2, ar_2, ar_4, ar_4, ar_6, ar_6, ar_0)) 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ 0 <= 0 ] 5.99/2.72 5.99/2.72 start location: koat_start 5.99/2.72 5.99/2.72 leaf cost: 0 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 A polynomial rank function with 5.99/2.72 5.99/2.72 Pol(lbl92) = -11*V_4 + 44 5.99/2.72 5.99/2.72 Pol(stop) = -11*V_8 5.99/2.72 5.99/2.72 Pol(lbl82) = -V_2 - 11*V_8 + 54 5.99/2.72 5.99/2.72 Pol(start) = -11*V_1 + 54 5.99/2.72 5.99/2.72 Pol(start0) = -11*V_1 + 54 5.99/2.72 5.99/2.72 Pol(koat_start) = -11*V_1 + 54 5.99/2.72 5.99/2.72 orients all transitions weakly and the transitions 5.99/2.72 5.99/2.72 lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 strictly and produces the following problem: 5.99/2.72 5.99/2.72 5: T: 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_3 >= 4 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 11*ar_0 + 54, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, ar_5, ar_6, ar_7 + 1)) [ ar_7 >= ar_0 /\ ar_7 >= 3 /\ 4 >= ar_7 /\ ar_5 = 10 /\ ar_1 = 9 ] 5.99/2.72 5.99/2.72 (Comp: 11*ar_0 + 54, Cost: 1) lbl82(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, ar_5, ar_2, ar_3, ar_4, ar_5 + 1, ar_6, ar_7)) [ ar_7 >= 3 /\ 8 >= ar_1 /\ 9 >= ar_1 /\ ar_1 >= 0 /\ ar_7 >= ar_0 /\ 4 >= ar_7 /\ ar_5 = ar_1 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 11*ar_0 + 54, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_3 >= 2 /\ 3 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 11*ar_0 + 54, Cost: 1) lbl92(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 1 >= ar_3 /\ ar_3 >= ar_0 /\ ar_5 + 10 >= 5*ar_3 /\ ar_5 >= 0 /\ ar_7 = ar_3 + 1 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl82(ar_0, 0, ar_2, ar_3, ar_4, 1, ar_6, ar_7)) [ ar_0 >= 3 /\ 4 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(lbl92(ar_0, ar_1, ar_2, ar_7, ar_4, 0, ar_6, ar_7 + 1)) [ 2 >= ar_0 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ ar_0 >= 5 /\ ar_1 = ar_2 /\ ar_3 = ar_4 /\ ar_5 = ar_6 /\ ar_7 = ar_0 ] 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start(ar_0, ar_2, ar_2, ar_4, ar_4, ar_6, ar_6, ar_0)) 5.99/2.72 5.99/2.72 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6, ar_7)) [ 0 <= 0 ] 5.99/2.72 5.99/2.72 start location: koat_start 5.99/2.72 5.99/2.72 leaf cost: 0 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Complexity upper bound 44*ar_0 + 221 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Time: 0.367 sec (SMT: 0.314 sec) 5.99/2.72 5.99/2.72 5.99/2.72 ---------------------------------------- 5.99/2.72 5.99/2.72 (2) 5.99/2.72 BOUNDS(1, n^1) 5.99/2.72 5.99/2.72 ---------------------------------------- 5.99/2.72 5.99/2.72 (3) Loat Proof (FINISHED) 5.99/2.72 5.99/2.72 5.99/2.72 ### Pre-processing the ITS problem ### 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Initial linear ITS problem 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 0: start -> stop : [ A>=5 && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 3: lbl92 -> stop : [ D>=4 && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 4: lbl92 -> lbl92 : D'=H, F'=0, H'=1+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 6: lbl82 -> lbl92 : D'=H, H'=1+H, [ 2>=H && 9>=B && B>=0 && H>=A && H>=3 && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 8: lbl82 -> lbl82 : B'=F, F'=1+F, [ H>=3 && 8>=B && 9>=B && B>=0 && H>=A && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Removed unreachable and leaf rules: 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 4: lbl92 -> lbl92 : D'=H, F'=0, H'=1+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 6: lbl82 -> lbl92 : D'=H, H'=1+H, [ 2>=H && 9>=B && B>=0 && H>=A && H>=3 && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 8: lbl82 -> lbl82 : B'=F, F'=1+F, [ H>=3 && 8>=B && 9>=B && B>=0 && H>=A && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Removed rules with unsatisfiable guard: 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 4: lbl92 -> lbl92 : D'=H, F'=0, H'=1+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 8: lbl82 -> lbl82 : B'=F, F'=1+F, [ H>=3 && 8>=B && 9>=B && B>=0 && H>=A && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Simplified all rules, resulting in: 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 4: lbl92 -> lbl92 : D'=H, F'=0, H'=1+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 8: lbl82 -> lbl82 : B'=F, F'=1+F, [ H>=3 && 8>=B && B>=0 && H>=A && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 ### Simplification by acceleration and chaining ### 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerating simple loops of location 1. 5.99/2.72 5.99/2.72 Accelerating the following rules: 5.99/2.72 5.99/2.72 4: lbl92 -> lbl92 : D'=H, F'=0, H'=1+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerated rule 4 with metering function meter (where 2*meter==5-D-H), yielding the new rule 10. 5.99/2.72 5.99/2.72 Removing the simple loops: 4. 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerating simple loops of location 2. 5.99/2.72 5.99/2.72 Accelerating the following rules: 5.99/2.72 5.99/2.72 8: lbl82 -> lbl82 : B'=F, F'=1+F, [ H>=3 && 8>=B && B>=0 && H>=A && 4>=H && F==1+B ], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerated rule 8 with metering function meter_1 (where 2*meter_1==19-F-B), yielding the new rule 11. 5.99/2.72 5.99/2.72 Removing the simple loops: 8. 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerated all simple loops using metering functions (where possible): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 10: lbl92 -> lbl92 : D'=-1+meter+H, F'=0, H'=meter+H, [ 1>=D && D>=A && 10+F>=5*D && F>=0 && H==1+D && 2*meter==5-D-H && meter>=1 ], cost: meter 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 11: lbl82 -> lbl82 : B'=-1+meter_1+F, F'=meter_1+F, [ H>=3 && 8>=B && B>=0 && H>=A && 4>=H && F==1+B && 2*meter_1==19-F-B && meter_1>=1 ], cost: meter_1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Chained accelerated rules (with incoming rules): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 1: start -> lbl92 : D'=H, F'=0, H'=1+H, [ 2>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 2: start -> lbl82 : B'=0, F'=1, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A ], cost: 1 5.99/2.72 5.99/2.72 12: start -> lbl92 : D'=2, F'=0, H'=3, [ 2>=A && B==C && D==E && F==G && H==A && 1>=H && 10>=5*H ], cost: 3-H 5.99/2.72 5.99/2.72 13: start -> lbl82 : B'=9, F'=10, [ A>=3 && 4>=A && B==C && D==E && F==G && H==A && H>=3 && 4>=H ], cost: 10 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 14: lbl92 -> lbl82 : B'=9, F'=10, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D && H>=3 && H>=A && 4>=H ], cost: 10 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 9: start0 -> start : B'=C, D'=E, F'=G, H'=A, [], cost: 1 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Eliminated locations (on tree-shaped paths): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 5: lbl92 -> lbl82 : B'=0, F'=1, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D ], cost: 1 5.99/2.72 5.99/2.72 14: lbl92 -> lbl82 : B'=9, F'=10, [ D>=2 && 3>=D && D>=A && 10+F>=5*D && H==1+D && H>=3 && H>=A && 4>=H ], cost: 10 5.99/2.72 5.99/2.72 7: lbl82 -> lbl92 : D'=H, H'=1+H, [ H>=A && H>=3 && 4>=H && F==10 && B==9 ], cost: 1 5.99/2.72 5.99/2.72 15: start0 -> lbl92 : B'=C, D'=A, F'=0, H'=1+A, [ 2>=A ], cost: 2 5.99/2.72 5.99/2.72 16: start0 -> lbl82 : B'=0, D'=E, F'=1, H'=A, [ A>=3 && 4>=A ], cost: 2 5.99/2.72 5.99/2.72 17: start0 -> lbl92 : B'=C, D'=2, F'=0, H'=3, [ 1>=A && 10>=5*A ], cost: 4-A 5.99/2.72 5.99/2.72 18: start0 -> lbl82 : B'=9, D'=E, F'=10, H'=A, [ A>=3 && 4>=A ], cost: 11 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Eliminated location lbl92 (as a last resort): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 19: lbl82 -> lbl82 : B'=0, D'=H, F'=1, H'=1+H, [ H>=A && H>=3 && F==10 && B==9 && 3>=H && 10+F>=5*H ], cost: 2 5.99/2.72 5.99/2.72 20: lbl82 -> lbl82 : B'=9, D'=H, F'=10, H'=1+H, [ H>=A && H>=3 && F==10 && B==9 && 3>=H && 10+F>=5*H ], cost: 11 5.99/2.72 5.99/2.72 16: start0 -> lbl82 : B'=0, D'=E, F'=1, H'=A, [ A>=3 && 4>=A ], cost: 2 5.99/2.72 5.99/2.72 18: start0 -> lbl82 : B'=9, D'=E, F'=10, H'=A, [ A>=3 && 4>=A ], cost: 11 5.99/2.72 5.99/2.72 21: start0 -> lbl82 : B'=0, D'=A, F'=1, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 3 5.99/2.72 5.99/2.72 22: start0 -> lbl82 : B'=9, D'=A, F'=10, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 12 5.99/2.72 5.99/2.72 23: start0 -> lbl82 : B'=0, D'=2, F'=1, H'=3, [ 1>=A && 10>=5*A ], cost: 5-A 5.99/2.72 5.99/2.72 24: start0 -> lbl82 : B'=9, D'=2, F'=10, H'=3, [ 1>=A && 10>=5*A ], cost: 14-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Applied pruning (of leafs and parallel rules): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 19: lbl82 -> lbl82 : B'=0, D'=H, F'=1, H'=1+H, [ H>=A && H>=3 && F==10 && B==9 && 3>=H && 10+F>=5*H ], cost: 2 5.99/2.72 5.99/2.72 20: lbl82 -> lbl82 : B'=9, D'=H, F'=10, H'=1+H, [ H>=A && H>=3 && F==10 && B==9 && 3>=H && 10+F>=5*H ], cost: 11 5.99/2.72 5.99/2.72 18: start0 -> lbl82 : B'=9, D'=E, F'=10, H'=A, [ A>=3 && 4>=A ], cost: 11 5.99/2.72 5.99/2.72 21: start0 -> lbl82 : B'=0, D'=A, F'=1, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 3 5.99/2.72 5.99/2.72 22: start0 -> lbl82 : B'=9, D'=A, F'=10, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 12 5.99/2.72 5.99/2.72 23: start0 -> lbl82 : B'=0, D'=2, F'=1, H'=3, [ 1>=A && 10>=5*A ], cost: 5-A 5.99/2.72 5.99/2.72 24: start0 -> lbl82 : B'=9, D'=2, F'=10, H'=3, [ 1>=A && 10>=5*A ], cost: 14-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerating simple loops of location 2. 5.99/2.72 5.99/2.72 Simplified some of the simple loops (and removed duplicate rules). 5.99/2.72 5.99/2.72 Accelerating the following rules: 5.99/2.72 5.99/2.72 19: lbl82 -> lbl82 : B'=0, D'=H, F'=1, H'=1+H, [ H>=A && 3-H==0 && F==10 && B==9 && 10+F>=5*H ], cost: 2 5.99/2.72 5.99/2.72 20: lbl82 -> lbl82 : B'=9, D'=H, F'=10, H'=1+H, [ H>=A && 3-H==0 && F==10 && B==9 && 10+F>=5*H ], cost: 11 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerated rule 19 with metering function meter_2 (where 19*meter_2==-15+F-H+B), yielding the new rule 25. 5.99/2.72 5.99/2.72 Accelerated rule 20 with metering function 4-H, yielding the new rule 26. 5.99/2.72 5.99/2.72 Removing the simple loops: 19 20. 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Accelerated all simple loops using metering functions (where possible): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 25: lbl82 -> lbl82 : B'=0, D'=-1+meter_2+H, F'=1, H'=meter_2+H, [ H>=A && 3-H==0 && F==10 && B==9 && 10+F>=5*H && 19*meter_2==-15+F-H+B && meter_2>=1 ], cost: 2*meter_2 5.99/2.72 5.99/2.72 26: lbl82 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ H>=A && 3-H==0 && F==10 && B==9 && 10+F>=5*H ], cost: 44-11*H 5.99/2.72 5.99/2.72 18: start0 -> lbl82 : B'=9, D'=E, F'=10, H'=A, [ A>=3 && 4>=A ], cost: 11 5.99/2.72 5.99/2.72 21: start0 -> lbl82 : B'=0, D'=A, F'=1, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 3 5.99/2.72 5.99/2.72 22: start0 -> lbl82 : B'=9, D'=A, F'=10, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 12 5.99/2.72 5.99/2.72 23: start0 -> lbl82 : B'=0, D'=2, F'=1, H'=3, [ 1>=A && 10>=5*A ], cost: 5-A 5.99/2.72 5.99/2.72 24: start0 -> lbl82 : B'=9, D'=2, F'=10, H'=3, [ 1>=A && 10>=5*A ], cost: 14-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Chained accelerated rules (with incoming rules): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 18: start0 -> lbl82 : B'=9, D'=E, F'=10, H'=A, [ A>=3 && 4>=A ], cost: 11 5.99/2.72 5.99/2.72 21: start0 -> lbl82 : B'=0, D'=A, F'=1, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 3 5.99/2.72 5.99/2.72 22: start0 -> lbl82 : B'=9, D'=A, F'=10, H'=1+A, [ 2>=A && A>=2 && 10>=5*A ], cost: 12 5.99/2.72 5.99/2.72 23: start0 -> lbl82 : B'=0, D'=2, F'=1, H'=3, [ 1>=A && 10>=5*A ], cost: 5-A 5.99/2.72 5.99/2.72 24: start0 -> lbl82 : B'=9, D'=2, F'=10, H'=3, [ 1>=A && 10>=5*A ], cost: 14-A 5.99/2.72 5.99/2.72 27: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 3-A==0 && 20>=5*A ], cost: 55-11*A 5.99/2.72 5.99/2.72 28: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ -2+A==0 && 10>=5*A && 2-A==0 ], cost: 45-11*A 5.99/2.72 5.99/2.72 29: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 1>=A && 10>=5*A ], cost: 25-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Removed unreachable locations (and leaf rules with constant cost): 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 23: start0 -> lbl82 : B'=0, D'=2, F'=1, H'=3, [ 1>=A && 10>=5*A ], cost: 5-A 5.99/2.72 5.99/2.72 24: start0 -> lbl82 : B'=9, D'=2, F'=10, H'=3, [ 1>=A && 10>=5*A ], cost: 14-A 5.99/2.72 5.99/2.72 27: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 3-A==0 && 20>=5*A ], cost: 55-11*A 5.99/2.72 5.99/2.72 28: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ -2+A==0 && 10>=5*A && 2-A==0 ], cost: 45-11*A 5.99/2.72 5.99/2.72 29: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 1>=A && 10>=5*A ], cost: 25-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 ### Computing asymptotic complexity ### 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Fully simplified ITS problem 5.99/2.72 5.99/2.72 Start location: start0 5.99/2.72 5.99/2.72 27: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 3-A==0 && 20>=5*A ], cost: 55-11*A 5.99/2.72 5.99/2.72 28: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ -2+A==0 && 10>=5*A && 2-A==0 ], cost: 45-11*A 5.99/2.72 5.99/2.72 29: start0 -> lbl82 : B'=9, D'=3, F'=10, H'=4, [ 1>=A && 10>=5*A ], cost: 25-A 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Computing asymptotic complexity for rule 27 5.99/2.72 5.99/2.72 Could not solve the limit problem. 5.99/2.72 5.99/2.72 Resulting cost 0 has complexity: Unknown 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Computing asymptotic complexity for rule 28 5.99/2.72 5.99/2.72 Could not solve the limit problem. 5.99/2.72 5.99/2.72 Resulting cost 0 has complexity: Unknown 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Computing asymptotic complexity for rule 29 5.99/2.72 5.99/2.72 Solved the limit problem by the following transformations: 5.99/2.72 5.99/2.72 Created initial limit problem: 5.99/2.72 5.99/2.72 2-A (+/+!), 25-A (+) [not solved] 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 removing all constraints (solved by SMT) 5.99/2.72 5.99/2.72 resulting limit problem: [solved] 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 applying transformation rule (C) using substitution {A==-n} 5.99/2.72 5.99/2.72 resulting limit problem: 5.99/2.72 5.99/2.72 [solved] 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Solution: 5.99/2.72 5.99/2.72 A / -n 5.99/2.72 5.99/2.72 Resulting cost 25+n has complexity: Poly(n^1) 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Found new complexity Poly(n^1). 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 Obtained the following overall complexity (w.r.t. the length of the input n): 5.99/2.72 5.99/2.72 Complexity: Poly(n^1) 5.99/2.72 5.99/2.72 Cpx degree: 1 5.99/2.72 5.99/2.72 Solved cost: 25+n 5.99/2.72 5.99/2.72 Rule cost: 25-A 5.99/2.72 5.99/2.72 Rule guard: [ 1>=A ] 5.99/2.72 5.99/2.72 5.99/2.72 5.99/2.72 WORST_CASE(Omega(n^1),?) 5.99/2.72 5.99/2.72 5.99/2.72 ---------------------------------------- 5.99/2.72 5.99/2.72 (4) 5.99/2.72 BOUNDS(n^1, INF) 5.99/2.74 EOF