/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, 857 ms] (2) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: f15(A, B, C, D, E) -> Com_1(f16(A, B, C, D, E)) :|: A >= B + 1 f15(A, B, C, D, E) -> Com_1(f16(A, B, C, D, E)) :|: B >= 1 + A f0(A, B, C, D, E) -> Com_1(f7(F, B, F, D, E)) :|: 0 >= F f0(A, B, C, D, E) -> Com_1(f7(F, B, F, D, E)) :|: F >= 101 f0(A, B, C, D, E) -> Com_1(f15(F, 0, F, G, E)) :|: 100 >= F && F >= 1 f16(A, B, C, D, E) -> Com_1(f15(A, B + 1, C, D, E)) :|: TRUE f23(A, B, C, D, E) -> Com_1(f23(A, B, C, D, E + 1)) :|: B >= E + 1 f23(A, B, C, D, E) -> Com_1(f7(A, B, C, D, E)) :|: E >= B f15(A, B, C, D, E) -> Com_1(f23(A, A - 1, C, D, 0)) :|: A >= B && A <= B f16(A, B, C, D, E) -> Com_1(f23(A, B - 1, C, D, 0)) :|: TRUE The start-symbols are:[f0_5] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: f0 0: f15 -> f16 : [ A>=1+B ], cost: 1 1: f15 -> f16 : [ B>=1+A ], cost: 1 8: f15 -> f23 : B'=-1+A, E'=0, [ A==B ], cost: 1 2: f0 -> f7 : A'=free, C'=free, [ 0>=free ], cost: 1 3: f0 -> f7 : A'=free_1, C'=free_1, [ free_1>=101 ], cost: 1 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 5: f16 -> f15 : B'=1+B, [], cost: 1 9: f16 -> f23 : B'=-1+B, E'=0, [], cost: 1 6: f23 -> f23 : E'=1+E, [ B>=1+E ], cost: 1 7: f23 -> f7 : [ E>=B ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 2: f0 -> f7 : A'=free, C'=free, [ 0>=free ], cost: 1 Removed unreachable and leaf rules: Start location: f0 0: f15 -> f16 : [ A>=1+B ], cost: 1 1: f15 -> f16 : [ B>=1+A ], cost: 1 8: f15 -> f23 : B'=-1+A, E'=0, [ A==B ], cost: 1 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 5: f16 -> f15 : B'=1+B, [], cost: 1 9: f16 -> f23 : B'=-1+B, E'=0, [], cost: 1 6: f23 -> f23 : E'=1+E, [ B>=1+E ], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 3. Accelerating the following rules: 6: f23 -> f23 : E'=1+E, [ B>=1+E ], cost: 1 Accelerated rule 6 with metering function -E+B, yielding the new rule 10. Removing the simple loops: 6. Accelerated all simple loops using metering functions (where possible): Start location: f0 0: f15 -> f16 : [ A>=1+B ], cost: 1 1: f15 -> f16 : [ B>=1+A ], cost: 1 8: f15 -> f23 : B'=-1+A, E'=0, [ A==B ], cost: 1 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 5: f16 -> f15 : B'=1+B, [], cost: 1 9: f16 -> f23 : B'=-1+B, E'=0, [], cost: 1 10: f23 -> f23 : E'=B, [ B>=1+E ], cost: -E+B Chained accelerated rules (with incoming rules): Start location: f0 0: f15 -> f16 : [ A>=1+B ], cost: 1 1: f15 -> f16 : [ B>=1+A ], cost: 1 8: f15 -> f23 : B'=-1+A, E'=0, [ A==B ], cost: 1 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 5: f16 -> f15 : B'=1+B, [], cost: 1 9: f16 -> f23 : B'=-1+B, E'=0, [], cost: 1 12: f16 -> f23 : B'=-1+B, E'=-1+B, [ -1+B>=1 ], cost: B Removed unreachable locations (and leaf rules with constant cost): Start location: f0 0: f15 -> f16 : [ A>=1+B ], cost: 1 1: f15 -> f16 : [ B>=1+A ], cost: 1 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 5: f16 -> f15 : B'=1+B, [], cost: 1 12: f16 -> f23 : B'=-1+B, E'=-1+B, [ -1+B>=1 ], cost: B Eliminated locations (on tree-shaped paths): Start location: f0 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 13: f15 -> f15 : B'=1+B, [ A>=1+B ], cost: 2 14: f15 -> f23 : B'=-1+B, E'=-1+B, [ A>=1+B && -1+B>=1 ], cost: 1+B 15: f15 -> f15 : B'=1+B, [ B>=1+A ], cost: 2 16: f15 -> f23 : B'=-1+B, E'=-1+B, [ B>=1+A && -1+B>=1 ], cost: 1+B 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 Accelerating simple loops of location 0. Accelerating the following rules: 13: f15 -> f15 : B'=1+B, [ A>=1+B ], cost: 2 15: f15 -> f15 : B'=1+B, [ B>=1+A ], cost: 2 Accelerated rule 13 with metering function A-B, yielding the new rule 17. Accelerated rule 15 with NONTERM, yielding the new rule 18. Removing the simple loops: 13 15. Accelerated all simple loops using metering functions (where possible): Start location: f0 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 14: f15 -> f23 : B'=-1+B, E'=-1+B, [ A>=1+B && -1+B>=1 ], cost: 1+B 16: f15 -> f23 : B'=-1+B, E'=-1+B, [ B>=1+A && -1+B>=1 ], cost: 1+B 17: f15 -> f15 : B'=A, [ A>=1+B ], cost: 2*A-2*B 18: f15 -> [6] : [ B>=1+A ], cost: NONTERM 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 Chained accelerated rules (with incoming rules): Start location: f0 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 14: f15 -> f23 : B'=-1+B, E'=-1+B, [ A>=1+B && -1+B>=1 ], cost: 1+B 16: f15 -> f23 : B'=-1+B, E'=-1+B, [ B>=1+A && -1+B>=1 ], cost: 1+B 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 19: f0 -> f15 : A'=free_2, B'=free_2, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1+2*free_2 Removed unreachable locations (and leaf rules with constant cost): Start location: f0 11: f15 -> f23 : B'=-1+A, E'=-1+A, [ A==B && -1+A>=1 ], cost: A 14: f15 -> f23 : B'=-1+B, E'=-1+B, [ A>=1+B && -1+B>=1 ], cost: 1+B 16: f15 -> f23 : B'=-1+B, E'=-1+B, [ B>=1+A && -1+B>=1 ], cost: 1+B 4: f0 -> f15 : A'=free_2, B'=0, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1 19: f0 -> f15 : A'=free_2, B'=free_2, C'=free_2, D'=free_3, [ 100>=free_2 && free_2>=1 ], cost: 1+2*free_2 Eliminated locations (on tree-shaped paths): Start location: f0 20: f0 -> f23 : A'=free_2, B'=-1+free_2, C'=free_2, D'=free_3, E'=-1+free_2, [ 100>=free_2 && -1+free_2>=1 ], cost: 1+3*free_2 21: f0 -> [7] : [ 100>=free_2 && free_2>=1 ], cost: 1+2*free_2 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: f0 20: f0 -> f23 : A'=free_2, B'=-1+free_2, C'=free_2, D'=free_3, E'=-1+free_2, [ 100>=free_2 && -1+free_2>=1 ], cost: 1+3*free_2 21: f0 -> [7] : [ 100>=free_2 && free_2>=1 ], cost: 1+2*free_2 Computing asymptotic complexity for rule 20 Could not solve the limit problem. Resulting cost 0 has complexity: Unknown Computing asymptotic complexity for rule 21 Could not solve the limit problem. 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: [ 0>=free ] WORST_CASE(Omega(1),?) ---------------------------------------- (2) BOUNDS(1, INF)