/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, 2733 ms] (2) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: f0(A, B, C, D, E, F, G) -> Com_1(f10(1, 1, H, 0, 2, 1, G)) :|: H >= 0 f10(A, B, C, D, E, F, G) -> Com_1(f21(A, B - 1, C, D, E, F, 0)) :|: F >= 1 && E >= F && B >= 1 && 0 >= C f10(A, B, C, D, E, F, G) -> Com_1(f21(A + 1, A + 1, H, D, E, F, I)) :|: I >= 0 && 1 >= I && H >= 0 && F >= 1 && E >= F && 0 >= B && 0 >= C f10(A, B, C, D, E, F, G) -> Com_1(f21(A, B, C - 1, D, E, F, H)) :|: H >= 0 && 1 >= H && F >= 1 && C >= 1 && E >= F f21(A, B, C, D, E, F, G) -> Com_1(f10(A, B, C, D, E, F - 1, G)) :|: E + 1 >= A && 0 >= G f21(A, B, C, D, E, F, G) -> Com_1(f10(A, B, C, D, E, F + 1, G)) :|: E + 1 >= A && G >= 1 f10(A, B, C, D, E, F, G) -> Com_1(f32(A, B, C, D, E, F, G)) :|: 0 >= F && E >= F f10(A, B, C, D, E, F, G) -> Com_1(f32(A, B, C, D, E, F, G)) :|: F >= 1 + E The start-symbols are:[f0_7] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: f0 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 1: f10 -> f21 : B'=-1+B, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C ], cost: 1 2: f10 -> f21 : A'=1+A, B'=1+A, C'=free_1, G'=free_2, [ free_2>=0 && 1>=free_2 && free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C ], cost: 1 3: f10 -> f21 : C'=-1+C, G'=free_3, [ free_3>=0 && 1>=free_3 && F>=1 && C>=1 && E>=F ], cost: 1 6: f10 -> f32 : [ 0>=F && E>=F ], cost: 1 7: f10 -> f32 : [ F>=1+E ], cost: 1 4: f21 -> f10 : F'=-1+F, [ 1+E>=A && 0>=G ], cost: 1 5: f21 -> f10 : F'=1+F, [ 1+E>=A && G>=1 ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 Removed unreachable and leaf rules: Start location: f0 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 1: f10 -> f21 : B'=-1+B, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C ], cost: 1 2: f10 -> f21 : A'=1+A, B'=1+A, C'=free_1, G'=free_2, [ free_2>=0 && 1>=free_2 && free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C ], cost: 1 3: f10 -> f21 : C'=-1+C, G'=free_3, [ free_3>=0 && 1>=free_3 && F>=1 && C>=1 && E>=F ], cost: 1 4: f21 -> f10 : F'=-1+F, [ 1+E>=A && 0>=G ], cost: 1 5: f21 -> f10 : F'=1+F, [ 1+E>=A && G>=1 ], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on tree-shaped paths): Start location: f0 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 8: f10 -> f10 : B'=-1+B, F'=-1+F, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C && 1+E>=A ], cost: 2 9: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=-1+F, G'=free_2, [ free_2>=0 && free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A && 0>=free_2 ], cost: 2 10: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=1+F, G'=free_2, [ 1>=free_2 && free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A && free_2>=1 ], cost: 2 11: f10 -> f10 : C'=-1+C, F'=-1+F, G'=free_3, [ free_3>=0 && F>=1 && C>=1 && E>=F && 1+E>=A && 0>=free_3 ], cost: 2 12: f10 -> f10 : C'=-1+C, F'=1+F, G'=free_3, [ 1>=free_3 && F>=1 && C>=1 && E>=F && 1+E>=A && free_3>=1 ], cost: 2 Accelerating simple loops of location 1. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 8: f10 -> f10 : B'=-1+B, F'=-1+F, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C && 1+E>=A ], cost: 2 9: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=-1+F, G'=0, [ free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A ], cost: 2 10: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=1+F, G'=1, [ free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A ], cost: 2 11: f10 -> f10 : C'=-1+C, F'=-1+F, G'=0, [ F>=1 && C>=1 && E>=F && 1+E>=A ], cost: 2 12: f10 -> f10 : C'=-1+C, F'=1+F, G'=1, [ F>=1 && C>=1 && E>=F && 1+E>=A ], cost: 2 Accelerated rule 8 with metering function F (after adding B>=F), yielding the new rule 13. Accelerated rule 8 with metering function B (after adding B<=F), yielding the new rule 14. Found no metering function for rule 9. Found no metering function for rule 10. Accelerated rule 11 with metering function F (after adding C>=F), yielding the new rule 15. Accelerated rule 11 with metering function C (after adding C<=F), yielding the new rule 16. Found no metering function for rule 12. During metering: Instantiating temporary variables by {free_1==1} Removing the simple loops: 8 11. Accelerated all simple loops using metering functions (where possible): Start location: f0 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 9: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=-1+F, G'=0, [ free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A ], cost: 2 10: f10 -> f10 : A'=1+A, B'=1+A, C'=free_1, F'=1+F, G'=1, [ free_1>=0 && F>=1 && E>=F && 0>=B && 0>=C && 1+E>=1+A ], cost: 2 12: f10 -> f10 : C'=-1+C, F'=1+F, G'=1, [ F>=1 && C>=1 && E>=F && 1+E>=A ], cost: 2 13: f10 -> f10 : B'=-F+B, F'=0, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C && 1+E>=A && B>=F ], cost: 2*F 14: f10 -> f10 : B'=0, F'=F-B, G'=0, [ F>=1 && E>=F && B>=1 && 0>=C && 1+E>=A && B<=F ], cost: 2*B 15: f10 -> f10 : C'=-F+C, F'=0, G'=0, [ F>=1 && C>=1 && E>=F && 1+E>=A && C>=F ], cost: 2*F 16: f10 -> f10 : C'=0, F'=F-C, G'=0, [ F>=1 && C>=1 && E>=F && 1+E>=A && C<=F ], cost: 2*C Chained accelerated rules (with incoming rules): Start location: f0 0: f0 -> f10 : A'=1, B'=1, C'=free, D'=0, E'=2, F'=1, [ free>=0 ], cost: 1 17: f0 -> f10 : A'=1, B'=1, C'=-1+free, D'=0, E'=2, F'=2, G'=1, [ free>=1 ], cost: 3 18: f0 -> f10 : A'=1, B'=0, C'=0, D'=0, E'=2, F'=0, G'=0, [], cost: 3 19: f0 -> f10 : A'=1, B'=0, C'=0, D'=0, E'=2, F'=0, G'=0, [], cost: 3 20: f0 -> f10 : A'=1, B'=1, C'=-1+free, D'=0, E'=2, F'=0, G'=0, [ free>=1 ], cost: 3 21: f0 -> f10 : A'=1, B'=1, C'=0, D'=0, E'=2, F'=0, G'=0, [], cost: 3 Removed unreachable locations (and leaf rules with constant cost): Start location: f0 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: f0 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: [ free>=0 ] WORST_CASE(Omega(1),?) ---------------------------------------- (2) BOUNDS(1, INF)