4.35/2.16 WORST_CASE(Omega(n^1), O(n^1)) 4.54/2.17 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 4.54/2.17 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.54/2.17 4.54/2.17 4.54/2.17 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^1). 4.54/2.17 4.54/2.17 (0) CpxIntTrs 4.54/2.17 (1) Koat Proof [FINISHED, 127 ms] 4.54/2.17 (2) BOUNDS(1, n^1) 4.54/2.17 (3) Loat Proof [FINISHED, 531 ms] 4.54/2.17 (4) BOUNDS(n^1, INF) 4.54/2.17 4.54/2.17 4.54/2.17 ---------------------------------------- 4.54/2.17 4.54/2.17 (0) 4.54/2.17 Obligation: 4.54/2.17 Complexity Int TRS consisting of the following rules: 4.54/2.17 f2(A, B, C, D, E) -> Com_1(f1(A, F, C, D, E)) :|: 1 >= A 4.54/2.17 f2(A, B, C, D, E) -> Com_1(f300(A, B, C, D, E)) :|: A >= 2 && C >= 2 4.54/2.17 f300(A, B, C, D, E) -> Com_1(f1(A, F, C, D, E)) :|: D + 1 >= 0 4.54/2.17 f300(A, B, C, D, E) -> Com_1(f300(A, B, C, 1 + D, 1 + E)) :|: E >= 0 && 0 >= 2 + D 4.54/2.17 f300(A, B, C, D, E) -> Com_1(f300(A, B, C, 1 + D, 1 + E)) :|: 0 >= 2 + E && 0 >= 2 + D 4.54/2.17 4.54/2.17 The start-symbols are:[f2_5] 4.54/2.17 4.54/2.17 4.54/2.17 ---------------------------------------- 4.54/2.17 4.54/2.17 (1) Koat Proof (FINISHED) 4.54/2.17 YES(?, 2*ar_3 + 3) 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Initial complexity problem: 4.54/2.17 4.54/2.17 1: T: 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ 1 >= ar_0 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_0 >= 2 /\ ar_2 >= 2 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ ar_3 + 1 >= 0 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ ar_4 >= 0 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ 0 >= ar_4 + 2 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] 4.54/2.17 4.54/2.17 start location: koat_start 4.54/2.17 4.54/2.17 leaf cost: 0 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Repeatedly propagating knowledge in problem 1 produces the following problem: 4.54/2.17 4.54/2.17 2: T: 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ 1 >= ar_0 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_0 >= 2 /\ ar_2 >= 2 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ ar_3 + 1 >= 0 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ ar_4 >= 0 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ 0 >= ar_4 + 2 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] 4.54/2.17 4.54/2.17 start location: koat_start 4.54/2.17 4.54/2.17 leaf cost: 0 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 A polynomial rank function with 4.54/2.17 4.54/2.17 Pol(f2) = 1 4.54/2.17 4.54/2.17 Pol(f1) = 0 4.54/2.17 4.54/2.17 Pol(f300) = 1 4.54/2.17 4.54/2.17 Pol(koat_start) = 1 4.54/2.17 4.54/2.17 orients all transitions weakly and the transition 4.54/2.17 4.54/2.17 f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ ar_3 + 1 >= 0 ] 4.54/2.17 4.54/2.17 strictly and produces the following problem: 4.54/2.17 4.54/2.17 3: T: 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ 1 >= ar_0 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_0 >= 2 /\ ar_2 >= 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ ar_3 + 1 >= 0 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ ar_4 >= 0 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: ?, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ 0 >= ar_4 + 2 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] 4.54/2.17 4.54/2.17 start location: koat_start 4.54/2.17 4.54/2.17 leaf cost: 0 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 A polynomial rank function with 4.54/2.17 4.54/2.17 Pol(f2) = -V_4 4.54/2.17 4.54/2.17 Pol(f1) = -V_4 4.54/2.17 4.54/2.17 Pol(f300) = -V_4 4.54/2.17 4.54/2.17 Pol(koat_start) = -V_4 4.54/2.17 4.54/2.17 orients all transitions weakly and the transitions 4.54/2.17 4.54/2.17 f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ ar_4 >= 0 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ 0 >= ar_4 + 2 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 strictly and produces the following problem: 4.54/2.17 4.54/2.17 4: T: 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ 1 >= ar_0 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_0 >= 2 /\ ar_2 >= 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f1(ar_0, f, ar_2, ar_3, ar_4)) [ ar_3 + 1 >= 0 ] 4.54/2.17 4.54/2.17 (Comp: ar_3, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ ar_4 >= 0 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: ar_3, Cost: 1) f300(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f300(ar_0, ar_1, ar_2, ar_3 + 1, ar_4 + 1)) [ 0 >= ar_4 + 2 /\ 0 >= ar_3 + 2 ] 4.54/2.17 4.54/2.17 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(f2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] 4.54/2.17 4.54/2.17 start location: koat_start 4.54/2.17 4.54/2.17 leaf cost: 0 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Complexity upper bound 2*ar_3 + 3 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Time: 0.115 sec (SMT: 0.108 sec) 4.54/2.17 4.54/2.17 4.54/2.17 ---------------------------------------- 4.54/2.17 4.54/2.17 (2) 4.54/2.17 BOUNDS(1, n^1) 4.54/2.17 4.54/2.17 ---------------------------------------- 4.54/2.17 4.54/2.17 (3) Loat Proof (FINISHED) 4.54/2.17 4.54/2.17 4.54/2.17 ### Pre-processing the ITS problem ### 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Initial linear ITS problem 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 0: f2 -> f1 : B'=free, [ 1>=A ], cost: 1 4.54/2.17 4.54/2.17 1: f2 -> f300 : [ A>=2 && C>=2 ], cost: 1 4.54/2.17 4.54/2.17 2: f300 -> f1 : B'=free_1, [ 1+D>=0 ], cost: 1 4.54/2.17 4.54/2.17 3: f300 -> f300 : D'=1+D, E'=1+E, [ E>=0 && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4: f300 -> f300 : D'=1+D, E'=1+E, [ 0>=2+E && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Removed unreachable and leaf rules: 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 1: f2 -> f300 : [ A>=2 && C>=2 ], cost: 1 4.54/2.17 4.54/2.17 3: f300 -> f300 : D'=1+D, E'=1+E, [ E>=0 && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4: f300 -> f300 : D'=1+D, E'=1+E, [ 0>=2+E && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 ### Simplification by acceleration and chaining ### 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Accelerating simple loops of location 1. 4.54/2.17 4.54/2.17 Accelerating the following rules: 4.54/2.17 4.54/2.17 3: f300 -> f300 : D'=1+D, E'=1+E, [ E>=0 && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4: f300 -> f300 : D'=1+D, E'=1+E, [ 0>=2+E && 0>=2+D ], cost: 1 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Accelerated rule 3 with metering function -1-D, yielding the new rule 5. 4.54/2.17 4.54/2.17 Accelerated rule 4 with metering function -1-D (after adding D>=E), yielding the new rule 6. 4.54/2.17 4.54/2.17 Accelerated rule 4 with metering function -1-E (after adding D<=E), yielding the new rule 7. 4.54/2.17 4.54/2.17 Removing the simple loops: 3 4. 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Accelerated all simple loops using metering functions (where possible): 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 1: f2 -> f300 : [ A>=2 && C>=2 ], cost: 1 4.54/2.17 4.54/2.17 5: f300 -> f300 : D'=-1, E'=-1-D+E, [ E>=0 && 0>=2+D ], cost: -1-D 4.54/2.17 4.54/2.17 6: f300 -> f300 : D'=-1, E'=-1-D+E, [ 0>=2+E && 0>=2+D && D>=E ], cost: -1-D 4.54/2.17 4.54/2.17 7: f300 -> f300 : D'=-1+D-E, E'=-1, [ 0>=2+E && 0>=2+D && D<=E ], cost: -1-E 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Chained accelerated rules (with incoming rules): 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 1: f2 -> f300 : [ A>=2 && C>=2 ], cost: 1 4.54/2.17 4.54/2.17 8: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && E>=0 && 0>=2+D ], cost: -D 4.54/2.17 4.54/2.17 9: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D>=E ], cost: -D 4.54/2.17 4.54/2.17 10: f2 -> f300 : D'=-1+D-E, E'=-1, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D<=E ], cost: -E 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Removed unreachable locations (and leaf rules with constant cost): 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 8: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && E>=0 && 0>=2+D ], cost: -D 4.54/2.17 4.54/2.17 9: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D>=E ], cost: -D 4.54/2.17 4.54/2.17 10: f2 -> f300 : D'=-1+D-E, E'=-1, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D<=E ], cost: -E 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 ### Computing asymptotic complexity ### 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Fully simplified ITS problem 4.54/2.17 4.54/2.17 Start location: f2 4.54/2.17 4.54/2.17 8: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && E>=0 && 0>=2+D ], cost: -D 4.54/2.17 4.54/2.17 9: f2 -> f300 : D'=-1, E'=-1-D+E, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D>=E ], cost: -D 4.54/2.17 4.54/2.17 10: f2 -> f300 : D'=-1+D-E, E'=-1, [ A>=2 && C>=2 && 0>=2+E && 0>=2+D && D<=E ], cost: -E 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Computing asymptotic complexity for rule 8 4.54/2.17 4.54/2.17 Solved the limit problem by the following transformations: 4.54/2.17 4.54/2.17 Created initial limit problem: 4.54/2.17 4.54/2.17 -1+A (+/+!), 1+E (+/+!), -1-D (+/+!), -D (+), -1+C (+/+!) [not solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 applying transformation rule (C) using substitution {A==2} 4.54/2.17 4.54/2.17 resulting limit problem: 4.54/2.17 4.54/2.17 1 (+/+!), 1+E (+/+!), -1-D (+/+!), -D (+), -1+C (+/+!) [not solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 applying transformation rule (C) using substitution {C==2} 4.54/2.17 4.54/2.17 resulting limit problem: 4.54/2.17 4.54/2.17 1 (+/+!), 1+E (+/+!), -1-D (+/+!), -D (+) [not solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 applying transformation rule (C) using substitution {E==0} 4.54/2.17 4.54/2.17 resulting limit problem: 4.54/2.17 4.54/2.17 1 (+/+!), -1-D (+/+!), -D (+) [not solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 applying transformation rule (B), deleting 1 (+/+!) 4.54/2.17 4.54/2.17 resulting limit problem: 4.54/2.17 4.54/2.17 -1-D (+/+!), -D (+) [not solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 removing all constraints (solved by SMT) 4.54/2.17 4.54/2.17 resulting limit problem: [solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 applying transformation rule (C) using substitution {D==-n} 4.54/2.17 4.54/2.17 resulting limit problem: 4.54/2.17 4.54/2.17 [solved] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Solution: 4.54/2.17 4.54/2.17 C / 2 4.54/2.17 4.54/2.17 D / -n 4.54/2.17 4.54/2.17 A / 2 4.54/2.17 4.54/2.17 E / 0 4.54/2.17 4.54/2.17 Resulting cost n has complexity: Poly(n^1) 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Found new complexity Poly(n^1). 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 Obtained the following overall complexity (w.r.t. the length of the input n): 4.54/2.17 4.54/2.17 Complexity: Poly(n^1) 4.54/2.17 4.54/2.17 Cpx degree: 1 4.54/2.17 4.54/2.17 Solved cost: n 4.54/2.17 4.54/2.17 Rule cost: -D 4.54/2.17 4.54/2.17 Rule guard: [ A>=2 && C>=2 && E>=0 && 0>=2+D ] 4.54/2.17 4.54/2.17 4.54/2.17 4.54/2.17 WORST_CASE(Omega(n^1),?) 4.54/2.17 4.54/2.17 4.54/2.17 ---------------------------------------- 4.54/2.17 4.54/2.17 (4) 4.54/2.17 BOUNDS(n^1, INF) 4.56/2.20 EOF