5.10/2.32 WORST_CASE(Omega(n^2), O(n^2)) 5.22/2.89 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 5.22/2.89 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.22/2.89 5.22/2.89 5.22/2.89 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^2, n^2). 5.22/2.89 5.22/2.89 (0) CpxIntTrs 5.22/2.89 (1) Koat Proof [FINISHED, 190 ms] 5.22/2.89 (2) BOUNDS(1, n^2) 5.22/2.89 (3) Loat Proof [FINISHED, 733 ms] 5.22/2.89 (4) BOUNDS(n^2, INF) 5.22/2.89 5.22/2.89 5.22/2.89 ---------------------------------------- 5.22/2.89 5.22/2.89 (0) 5.22/2.89 Obligation: 5.22/2.89 Complexity Int TRS consisting of the following rules: 5.22/2.89 start(A, B, C, D, E, F) -> Com_1(lbl71(A, B, 1, D, 0, F)) :|: A >= 2 && B >= A && B <= A && C >= D && C <= D && E >= F && E <= F 5.22/2.89 start(A, B, C, D, E, F) -> Com_1(stop(A, B, 0, D, 1, F)) :|: 1 >= A && B >= A && B <= A && C >= D && C <= D && E >= F && E <= F 5.22/2.89 lbl71(A, B, C, D, E, F) -> Com_1(lbl71(A, B, 1 + C, D, E, F)) :|: A >= C + 2 && A >= C + 1 && A >= E + 2 && C >= 1 && E >= 0 && B >= A && B <= A 5.22/2.89 lbl71(A, B, C, D, E, F) -> Com_1(cut(A, B, C, D, 1 + E, F)) :|: A >= E + 3 && A >= E + 2 && A >= 2 && E >= 0 && C + 1 >= A && C + 1 <= A && B >= A && B <= A 5.22/2.89 lbl71(A, B, C, D, E, F) -> Com_1(stop(A, B, C, D, 1 + E, F)) :|: A >= 2 && E + 2 >= A && E + 2 <= A && C + 1 >= A && C + 1 <= A && B >= A && B <= A 5.22/2.89 cut(A, B, C, D, E, F) -> Com_1(lbl71(A, B, 1, D, E, F)) :|: A >= 2 && A >= 2 + E && E >= 1 && C + 1 >= A && C + 1 <= A && B >= A && B <= A 5.22/2.89 cut(A, B, C, D, E, F) -> Com_1(cut(A, B, 0, D, 1 + E, F)) :|: 1 >= A && A >= E + 3 && A >= 2 + E && E >= 1 && C + 1 >= A && C + 1 <= A && B >= A && B <= A 5.22/2.89 cut(A, B, C, D, E, F) -> Com_1(stop(A, B, 0, D, 1 + E, F)) :|: 1 >= A && A >= 3 && C + 1 >= A && C + 1 <= A && E + 2 >= A && E + 2 <= A && B >= A && B <= A 5.22/2.89 start0(A, B, C, D, E, F) -> Com_1(start(A, A, D, D, F, F)) :|: TRUE 5.22/2.89 5.22/2.89 The start-symbols are:[start0_6] 5.22/2.89 5.22/2.89 5.22/2.89 ---------------------------------------- 5.22/2.89 5.22/2.89 (1) Koat Proof (FINISHED) 5.22/2.89 YES(?, 7*ar_0 + 2*ar_0^2 + 5) 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Initial complexity problem: 5.22/2.89 5.22/2.89 1: T: 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, 0, ar_3, ar_4 + 1, ar_5)) [ 1 >= ar_0 /\ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, ar_4 + 1, ar_5)) [ 1 >= ar_0 /\ ar_0 >= 3 /\ ar_2 + 1 = ar_0 /\ ar_4 + 2 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Testing for reachability in the complexity graph removes the following transitions from problem 1: 5.22/2.89 5.22/2.89 cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, 0, ar_3, ar_4 + 1, ar_5)) [ 1 >= ar_0 /\ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, ar_4 + 1, ar_5)) [ 1 >= ar_0 /\ ar_0 >= 3 /\ ar_2 + 1 = ar_0 /\ ar_4 + 2 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 We thus obtain the following problem: 5.22/2.89 5.22/2.89 2: T: 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Repeatedly propagating knowledge in problem 2 produces the following problem: 5.22/2.89 5.22/2.89 3: T: 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 A polynomial rank function with 5.22/2.89 5.22/2.89 Pol(cut) = 1 5.22/2.89 5.22/2.89 Pol(lbl71) = 1 5.22/2.89 5.22/2.89 Pol(stop) = 0 5.22/2.89 5.22/2.89 Pol(start) = 1 5.22/2.89 5.22/2.89 Pol(start0) = 1 5.22/2.89 5.22/2.89 Pol(koat_start) = 1 5.22/2.89 5.22/2.89 orients all transitions weakly and the transition 5.22/2.89 5.22/2.89 lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 strictly and produces the following problem: 5.22/2.89 5.22/2.89 4: T: 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 A polynomial rank function with 5.22/2.89 5.22/2.89 Pol(cut) = 2*V_2 - 2*V_5 + 1 5.22/2.89 5.22/2.89 Pol(lbl71) = 2*V_2 - 2*V_5 5.22/2.89 5.22/2.89 Pol(stop) = 2*V_1 - 2*V_5 5.22/2.89 5.22/2.89 Pol(start) = 2*V_1 5.22/2.89 5.22/2.89 Pol(start0) = 2*V_1 5.22/2.89 5.22/2.89 Pol(koat_start) = 2*V_1 5.22/2.89 5.22/2.89 orients all transitions weakly and the transitions 5.22/2.89 5.22/2.89 lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 strictly and produces the following problem: 5.22/2.89 5.22/2.89 5: T: 5.22/2.89 5.22/2.89 (Comp: 2*ar_0, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 2*ar_0, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: ?, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 A polynomial rank function with 5.22/2.89 5.22/2.89 Pol(lbl71) = V_1 - V_3 5.22/2.89 5.22/2.89 and size complexities 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-1) = ar_1 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-2) = ar_2 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-4) = ar_4 5.22/2.89 5.22/2.89 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-2) = ar_3 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-4) = ar_5 5.22/2.89 5.22/2.89 S("start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5))", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-2) = 1 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-4) = 0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-2) = 0 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-4) = 1 5.22/2.89 5.22/2.89 S("start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\\ ar_1 = ar_0 /\\ ar_2 = ar_3 /\\ ar_4 = ar_5 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-2) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-4) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\\ ar_0 >= ar_2 + 1 /\\ ar_0 >= ar_4 + 2 /\\ ar_2 >= 1 /\\ ar_4 >= 0 /\\ ar_1 = ar_0 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-2) = ar_0 + 1 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-4) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\\ ar_4 + 2 = ar_0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-2) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-4) = ar_0 5.22/2.89 5.22/2.89 S("lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\\ ar_0 >= ar_4 + 2 /\\ ar_0 >= 2 /\\ ar_4 >= 0 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-0) = ar_0 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-1) = ar_0 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-2) = 1 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-3) = ar_3 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-4) = ar_0 5.22/2.89 5.22/2.89 S("cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\\ ar_0 >= ar_4 + 2 /\\ ar_4 >= 1 /\\ ar_2 + 1 = ar_0 /\\ ar_1 = ar_0 ]", 0-5) = ar_5 5.22/2.89 5.22/2.89 orients the transitions 5.22/2.89 5.22/2.89 lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 weakly and the transition 5.22/2.89 5.22/2.89 lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 strictly and produces the following problem: 5.22/2.89 5.22/2.89 6: T: 5.22/2.89 5.22/2.89 (Comp: 2*ar_0, Cost: 1) cut(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, ar_4, ar_5)) [ ar_0 >= 2 /\ ar_0 >= ar_4 + 2 /\ ar_4 >= 1 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 2*ar_0, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(cut(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= ar_4 + 3 /\ ar_0 >= ar_4 + 2 /\ ar_0 >= 2 /\ ar_4 >= 0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, ar_2, ar_3, ar_4 + 1, ar_5)) [ ar_0 >= 2 /\ ar_4 + 2 = ar_0 /\ ar_2 + 1 = ar_0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 2*ar_0^2 + 3*ar_0 + 1, Cost: 1) lbl71(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, ar_2 + 1, ar_3, ar_4, ar_5)) [ ar_0 >= ar_2 + 2 /\ ar_0 >= ar_2 + 1 /\ ar_0 >= ar_4 + 2 /\ ar_2 >= 1 /\ ar_4 >= 0 /\ ar_1 = ar_0 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(stop(ar_0, ar_1, 0, ar_3, 1, ar_5)) [ 1 >= ar_0 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(lbl71(ar_0, ar_1, 1, ar_3, 0, ar_5)) [ ar_0 >= 2 /\ ar_1 = ar_0 /\ ar_2 = ar_3 /\ ar_4 = ar_5 ] 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 1) start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start(ar_0, ar_0, ar_3, ar_3, ar_5, ar_5)) 5.22/2.89 5.22/2.89 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(start0(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ] 5.22/2.89 5.22/2.89 start location: koat_start 5.22/2.89 5.22/2.89 leaf cost: 0 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Complexity upper bound 7*ar_0 + 2*ar_0^2 + 5 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Time: 0.208 sec (SMT: 0.173 sec) 5.22/2.89 5.22/2.89 5.22/2.89 ---------------------------------------- 5.22/2.89 5.22/2.89 (2) 5.22/2.89 BOUNDS(1, n^2) 5.22/2.89 5.22/2.89 ---------------------------------------- 5.22/2.89 5.22/2.89 (3) Loat Proof (FINISHED) 5.22/2.89 5.22/2.89 5.22/2.89 ### Pre-processing the ITS problem ### 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Initial linear ITS problem 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 1: start -> stop : C'=0, E'=1, [ 1>=A && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 2: lbl71 -> lbl71 : C'=1+C, [ A>=2+C && A>=1+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: 1 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 4: lbl71 -> stop : E'=1+E, [ A>=2 && 2+E==A && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2 && A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 6: cut -> cut : C'=0, E'=1+E, [ 1>=A && A>=3+E && A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 7: cut -> stop : C'=0, E'=1+E, [ 1>=A && A>=3 && 1+C==A && 2+E==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Removed unreachable and leaf rules: 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 2: lbl71 -> lbl71 : C'=1+C, [ A>=2+C && A>=1+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: 1 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2 && A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 6: cut -> cut : C'=0, E'=1+E, [ 1>=A && A>=3+E && A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Removed rules with unsatisfiable guard: 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 2: lbl71 -> lbl71 : C'=1+C, [ A>=2+C && A>=1+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: 1 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2 && A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Simplified all rules, resulting in: 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 2: lbl71 -> lbl71 : C'=1+C, [ A>=2+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: 1 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 ### Simplification by acceleration and chaining ### 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerating simple loops of location 1. 5.22/2.89 5.22/2.89 Accelerating the following rules: 5.22/2.89 5.22/2.89 2: lbl71 -> lbl71 : C'=1+C, [ A>=2+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerated rule 2 with metering function -1-C+A, yielding the new rule 9. 5.22/2.89 5.22/2.89 Removing the simple loops: 2. 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerated all simple loops using metering functions (where possible): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 9: lbl71 -> lbl71 : C'=-1+A, [ A>=2+C && A>=2+E && C>=1 && E>=0 && B==A ], cost: -1-C+A 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Chained accelerated rules (with incoming rules): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 0: start -> lbl71 : C'=1, E'=0, [ A>=2 && B==A && C==D && E==F ], cost: 1 5.22/2.89 5.22/2.89 10: start -> lbl71 : C'=-1+A, E'=0, [ B==A && C==D && E==F && A>=3 ], cost: -1+A 5.22/2.89 5.22/2.89 3: lbl71 -> cut : E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 5: cut -> lbl71 : C'=1, [ A>=2+E && E>=1 && 1+C==A && B==A ], cost: 1 5.22/2.89 5.22/2.89 11: cut -> lbl71 : C'=-1+A, [ A>=2+E && E>=1 && 1+C==A && B==A && A>=3 ], cost: -1+A 5.22/2.89 5.22/2.89 8: start0 -> start : B'=A, C'=D, E'=F, [], cost: 1 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Eliminated locations (on tree-shaped paths): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 14: lbl71 -> lbl71 : C'=1, E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 2 5.22/2.89 5.22/2.89 15: lbl71 -> lbl71 : C'=-1+A, E'=1+E, [ A>=3+E && E>=0 && 1+C==A && B==A && A>=3 ], cost: A 5.22/2.89 5.22/2.89 12: start0 -> lbl71 : B'=A, C'=1, E'=0, [ A>=2 ], cost: 2 5.22/2.89 5.22/2.89 13: start0 -> lbl71 : B'=A, C'=-1+A, E'=0, [ A>=3 ], cost: A 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerating simple loops of location 1. 5.22/2.89 5.22/2.89 Accelerating the following rules: 5.22/2.89 5.22/2.89 14: lbl71 -> lbl71 : C'=1, E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 2 5.22/2.89 5.22/2.89 15: lbl71 -> lbl71 : C'=-1+A, E'=1+E, [ A>=3+E && E>=0 && 1+C==A && B==A && A>=3 ], cost: A 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerated rule 14 with NONTERM (after strengthening guard), yielding the new rule 16. 5.22/2.89 5.22/2.89 Accelerated rule 15 with metering function -2+A-E, yielding the new rule 17. 5.22/2.89 5.22/2.89 Removing the simple loops: 15. 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Accelerated all simple loops using metering functions (where possible): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 14: lbl71 -> lbl71 : C'=1, E'=1+E, [ A>=3+E && A>=2 && E>=0 && 1+C==A && B==A ], cost: 2 5.22/2.89 5.22/2.89 16: lbl71 -> [6] : [ A>=3+E && E>=0 && 1+C==A && B==A && 2==A ], cost: INF 5.22/2.89 5.22/2.89 17: lbl71 -> lbl71 : C'=-1+A, E'=-2+A, [ A>=3+E && E>=0 && 1+C==A && B==A && A>=3 ], cost: A*(-2+A-E) 5.22/2.89 5.22/2.89 12: start0 -> lbl71 : B'=A, C'=1, E'=0, [ A>=2 ], cost: 2 5.22/2.89 5.22/2.89 13: start0 -> lbl71 : B'=A, C'=-1+A, E'=0, [ A>=3 ], cost: A 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Chained accelerated rules (with incoming rules): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 12: start0 -> lbl71 : B'=A, C'=1, E'=0, [ A>=2 ], cost: 2 5.22/2.89 5.22/2.89 13: start0 -> lbl71 : B'=A, C'=-1+A, E'=0, [ A>=3 ], cost: A 5.22/2.89 5.22/2.89 18: start0 -> lbl71 : B'=A, C'=1, E'=1, [ A>=3 ], cost: 2+A 5.22/2.89 5.22/2.89 19: start0 -> lbl71 : B'=A, C'=-1+A, E'=-2+A, [ A>=3 ], cost: A+A*(-2+A) 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Removed unreachable locations (and leaf rules with constant cost): 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 13: start0 -> lbl71 : B'=A, C'=-1+A, E'=0, [ A>=3 ], cost: A 5.22/2.89 5.22/2.89 18: start0 -> lbl71 : B'=A, C'=1, E'=1, [ A>=3 ], cost: 2+A 5.22/2.89 5.22/2.89 19: start0 -> lbl71 : B'=A, C'=-1+A, E'=-2+A, [ A>=3 ], cost: A+A*(-2+A) 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 ### Computing asymptotic complexity ### 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Fully simplified ITS problem 5.22/2.89 5.22/2.89 Start location: start0 5.22/2.89 5.22/2.89 18: start0 -> lbl71 : B'=A, C'=1, E'=1, [ A>=3 ], cost: 2+A 5.22/2.89 5.22/2.89 19: start0 -> lbl71 : B'=A, C'=-1+A, E'=-2+A, [ A>=3 ], cost: A+A*(-2+A) 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 Computing asymptotic complexity for rule 18 5.22/2.89 5.22/2.89 Solved the limit problem by the following transformations: 5.22/2.89 5.22/2.89 Created initial limit problem: 5.22/2.89 5.22/2.89 2+A (+), -2+A (+/+!) [not solved] 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 removing all constraints (solved by SMT) 5.22/2.89 5.22/2.89 resulting limit problem: [solved] 5.22/2.89 5.22/2.89 5.22/2.89 5.22/2.89 applying transformation rule (C) using substitution {A==n} 5.22/2.90 5.22/2.90 resulting limit problem: 5.22/2.90 5.22/2.90 [solved] 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Solution: 5.22/2.90 5.22/2.90 A / n 5.22/2.90 5.22/2.90 Resulting cost 2+n has complexity: Poly(n^1) 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Found new complexity Poly(n^1). 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Computing asymptotic complexity for rule 19 5.22/2.90 5.22/2.90 Solved the limit problem by the following transformations: 5.22/2.90 5.22/2.90 Created initial limit problem: 5.22/2.90 5.22/2.90 -2+A (+/+!), -A+A^2 (+) [not solved] 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 removing all constraints (solved by SMT) 5.22/2.90 5.22/2.90 resulting limit problem: [solved] 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 applying transformation rule (C) using substitution {A==n} 5.22/2.90 5.22/2.90 resulting limit problem: 5.22/2.90 5.22/2.90 [solved] 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Solution: 5.22/2.90 5.22/2.90 A / n 5.22/2.90 5.22/2.90 Resulting cost -n+n^2 has complexity: Poly(n^2) 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Found new complexity Poly(n^2). 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 Obtained the following overall complexity (w.r.t. the length of the input n): 5.22/2.90 5.22/2.90 Complexity: Poly(n^2) 5.22/2.90 5.22/2.90 Cpx degree: 2 5.22/2.90 5.22/2.90 Solved cost: -n+n^2 5.22/2.90 5.22/2.90 Rule cost: A+A*(-2+A) 5.22/2.90 5.22/2.90 Rule guard: [ A>=3 ] 5.22/2.90 5.22/2.90 5.22/2.90 5.22/2.90 WORST_CASE(Omega(n^2),?) 5.22/2.90 5.22/2.90 5.22/2.90 ---------------------------------------- 5.22/2.90 5.22/2.90 (4) 5.22/2.90 BOUNDS(n^2, INF) 5.22/2.90 EOF