/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, INF). (0) CpxIntTrs (1) Loat Proof [FINISHED, 437 ms] (2) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: evalgcdstart(A, B) -> Com_1(evalgcdentryin(A, B)) :|: TRUE evalgcdentryin(A, B) -> Com_1(evalgcdreturnin(A, B)) :|: 0 >= A evalgcdentryin(A, B) -> Com_1(evalgcdreturnin(A, B)) :|: 0 >= B evalgcdentryin(A, B) -> Com_1(evalgcdbb7in(B, A)) :|: A >= 1 && B >= 1 evalgcdbb7in(A, B) -> Com_1(evalgcdbb4in(A, B)) :|: A >= B + 1 evalgcdbb7in(A, B) -> Com_1(evalgcdbb4in(A, B)) :|: B >= A + 1 evalgcdbb7in(A, B) -> Com_1(evalgcdreturnin(A, B)) :|: B >= A && B <= A evalgcdbb4in(A, B) -> Com_1(evalgcdbb5in(A, B)) :|: A >= B + 1 evalgcdbb4in(A, B) -> Com_1(evalgcdbb6in(A, B)) :|: B >= A evalgcdbb5in(A, B) -> Com_1(evalgcdbb7in(A - B, B)) :|: TRUE evalgcdbb6in(A, B) -> Com_1(evalgcdbb7in(A, B - A)) :|: TRUE evalgcdreturnin(A, B) -> Com_1(evalgcdstop(A, B)) :|: TRUE The start-symbols are:[evalgcdstart_2] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: evalgcdstart 0: evalgcdstart -> evalgcdentryin : [], cost: 1 1: evalgcdentryin -> evalgcdreturnin : [ 0>=A ], cost: 1 2: evalgcdentryin -> evalgcdreturnin : [ 0>=B ], cost: 1 3: evalgcdentryin -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 1 4: evalgcdbb7in -> evalgcdbb4in : [ A>=1+B ], cost: 1 5: evalgcdbb7in -> evalgcdbb4in : [ B>=1+A ], cost: 1 6: evalgcdbb7in -> evalgcdreturnin : [ B==A ], cost: 1 7: evalgcdbb4in -> evalgcdbb5in : [ A>=1+B ], cost: 1 8: evalgcdbb4in -> evalgcdbb6in : [ B>=A ], cost: 1 9: evalgcdbb5in -> evalgcdbb7in : A'=A-B, [], cost: 1 10: evalgcdbb6in -> evalgcdbb7in : B'=-A+B, [], cost: 1 11: evalgcdreturnin -> evalgcdstop : [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 0: evalgcdstart -> evalgcdentryin : [], cost: 1 Removed unreachable and leaf rules: Start location: evalgcdstart 0: evalgcdstart -> evalgcdentryin : [], cost: 1 3: evalgcdentryin -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 1 4: evalgcdbb7in -> evalgcdbb4in : [ A>=1+B ], cost: 1 5: evalgcdbb7in -> evalgcdbb4in : [ B>=1+A ], cost: 1 7: evalgcdbb4in -> evalgcdbb5in : [ A>=1+B ], cost: 1 8: evalgcdbb4in -> evalgcdbb6in : [ B>=A ], cost: 1 9: evalgcdbb5in -> evalgcdbb7in : A'=A-B, [], cost: 1 10: evalgcdbb6in -> evalgcdbb7in : B'=-A+B, [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: evalgcdstart 12: evalgcdstart -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 2 4: evalgcdbb7in -> evalgcdbb4in : [ A>=1+B ], cost: 1 5: evalgcdbb7in -> evalgcdbb4in : [ B>=1+A ], cost: 1 13: evalgcdbb4in -> evalgcdbb7in : A'=A-B, [ A>=1+B ], cost: 2 14: evalgcdbb4in -> evalgcdbb7in : B'=-A+B, [ B>=A ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: evalgcdstart 12: evalgcdstart -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 2 15: evalgcdbb7in -> evalgcdbb7in : A'=A-B, [ A>=1+B ], cost: 3 16: evalgcdbb7in -> evalgcdbb7in : B'=-A+B, [ B>=1+A ], cost: 3 Accelerating simple loops of location 2. Accelerating the following rules: 15: evalgcdbb7in -> evalgcdbb7in : A'=A-B, [ A>=1+B ], cost: 3 16: evalgcdbb7in -> evalgcdbb7in : B'=-A+B, [ B>=1+A ], cost: 3 Found no metering function for rule 15. Found no metering function for rule 16. Removing the simple loops:. Accelerated all simple loops using metering functions (where possible): Start location: evalgcdstart 12: evalgcdstart -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 2 15: evalgcdbb7in -> evalgcdbb7in : A'=A-B, [ A>=1+B ], cost: 3 16: evalgcdbb7in -> evalgcdbb7in : B'=-A+B, [ B>=1+A ], cost: 3 Chained accelerated rules (with incoming rules): Start location: evalgcdstart 12: evalgcdstart -> evalgcdbb7in : A'=B, B'=A, [ A>=1 && B>=1 ], cost: 2 17: evalgcdstart -> evalgcdbb7in : A'=-A+B, B'=A, [ A>=1 && B>=1 && B>=1+A ], cost: 5 18: evalgcdstart -> evalgcdbb7in : A'=B, B'=A-B, [ A>=1 && B>=1 && A>=1+B ], cost: 5 Removed unreachable locations (and leaf rules with constant cost): Start location: evalgcdstart ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: evalgcdstart 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: [] WORST_CASE(Omega(1),?) ---------------------------------------- (2) BOUNDS(1, INF)