8.58/3.80 WORST_CASE(NON_POLY, ?) 8.71/3.81 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 8.71/3.81 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 8.71/3.81 8.71/3.81 8.71/3.81 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(INF, INF). 8.71/3.81 8.71/3.81 (0) CpxIntTrs 8.71/3.81 (1) Loat Proof [FINISHED, 2129 ms] 8.71/3.81 (2) BOUNDS(INF, INF) 8.71/3.81 8.71/3.81 8.71/3.81 ---------------------------------------- 8.71/3.81 8.71/3.81 (0) 8.71/3.81 Obligation: 8.71/3.81 Complexity Int TRS consisting of the following rules: 8.71/3.81 f0(A, B, C, D) -> Com_1(f6(E, 0, C, D)) :|: TRUE 8.71/3.81 f6(A, B, C, D) -> Com_1(f10(A - 1, B + 1, C, D)) :|: A >= 1 8.71/3.81 f10(A, B, C, D) -> Com_1(f14(A, B - 1, A - 1, D)) :|: B >= 1 8.71/3.81 f14(A, B, C, D) -> Com_1(f14(A, B, C - 1, 0)) :|: C >= 1 8.71/3.81 f14(A, B, C, D) -> Com_1(f14(A - 1, B + 1, C - 1, E)) :|: C >= 1 && 0 >= E + 1 8.71/3.81 f14(A, B, C, D) -> Com_1(f14(A - 1, B + 1, C - 1, E)) :|: C >= 1 && E >= 1 8.71/3.81 f14(A, B, C, D) -> Com_1(f10(A, B, C, D)) :|: 0 >= C 8.71/3.81 f10(A, B, C, D) -> Com_1(f6(A, B, C, D)) :|: 0 >= B 8.71/3.81 f6(A, B, C, D) -> Com_1(f25(A, B, C, D)) :|: 0 >= A 8.71/3.81 8.71/3.81 The start-symbols are:[f0_4] 8.71/3.81 8.71/3.81 8.71/3.81 ---------------------------------------- 8.71/3.81 8.71/3.81 (1) Loat Proof (FINISHED) 8.71/3.81 8.71/3.81 8.71/3.81 ### Pre-processing the ITS problem ### 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Initial linear ITS problem 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 8: f6 -> f25 : [ 0>=A ], cost: 1 8.71/3.81 8.71/3.81 2: f10 -> f14 : B'=-1+B, C'=-1+A, [ B>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 3: f14 -> f14 : C'=-1+C, D'=0, [ C>=1 ], cost: 1 8.71/3.81 8.71/3.81 4: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_1, [ C>=1 && 0>=1+free_1 ], cost: 1 8.71/3.81 8.71/3.81 5: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_2, [ C>=1 && free_2>=1 ], cost: 1 8.71/3.81 8.71/3.81 6: f14 -> f10 : [ 0>=C ], cost: 1 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Removed unreachable and leaf rules: 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 2: f10 -> f14 : B'=-1+B, C'=-1+A, [ B>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 3: f14 -> f14 : C'=-1+C, D'=0, [ C>=1 ], cost: 1 8.71/3.81 8.71/3.81 4: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_1, [ C>=1 && 0>=1+free_1 ], cost: 1 8.71/3.81 8.71/3.81 5: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_2, [ C>=1 && free_2>=1 ], cost: 1 8.71/3.81 8.71/3.81 6: f14 -> f10 : [ 0>=C ], cost: 1 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 ### Simplification by acceleration and chaining ### 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerating simple loops of location 3. 8.71/3.81 8.71/3.81 Accelerating the following rules: 8.71/3.81 8.71/3.81 3: f14 -> f14 : C'=-1+C, D'=0, [ C>=1 ], cost: 1 8.71/3.81 8.71/3.81 4: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_1, [ C>=1 && 0>=1+free_1 ], cost: 1 8.71/3.81 8.71/3.81 5: f14 -> f14 : A'=-1+A, B'=1+B, C'=-1+C, D'=free_2, [ C>=1 && free_2>=1 ], cost: 1 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated rule 3 with metering function C, yielding the new rule 9. 8.71/3.81 8.71/3.81 Accelerated rule 4 with metering function C, yielding the new rule 10. 8.71/3.81 8.71/3.81 Accelerated rule 5 with metering function C, yielding the new rule 11. 8.71/3.81 8.71/3.81 Removing the simple loops: 3 4 5. 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated all simple loops using metering functions (where possible): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 2: f10 -> f14 : B'=-1+B, C'=-1+A, [ B>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 6: f14 -> f10 : [ 0>=C ], cost: 1 8.71/3.81 8.71/3.81 9: f14 -> f14 : C'=0, D'=0, [ C>=1 ], cost: C 8.71/3.81 8.71/3.81 10: f14 -> f14 : A'=-C+A, B'=C+B, C'=0, D'=free_1, [ C>=1 && 0>=1+free_1 ], cost: C 8.71/3.81 8.71/3.81 11: f14 -> f14 : A'=-C+A, B'=C+B, C'=0, D'=free_2, [ C>=1 && free_2>=1 ], cost: C 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Chained accelerated rules (with incoming rules): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 2: f10 -> f14 : B'=-1+B, C'=-1+A, [ B>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 12: f10 -> f14 : B'=-1+B, C'=0, D'=0, [ B>=1 && -1+A>=1 ], cost: A 8.71/3.81 8.71/3.81 13: f10 -> f14 : A'=1, B'=-2+A+B, C'=0, D'=free_1, [ B>=1 && -1+A>=1 && 0>=1+free_1 ], cost: A 8.71/3.81 8.71/3.81 14: f10 -> f14 : A'=1, B'=-2+A+B, C'=0, D'=free_2, [ B>=1 && -1+A>=1 && free_2>=1 ], cost: A 8.71/3.81 8.71/3.81 6: f14 -> f10 : [ 0>=C ], cost: 1 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Eliminated locations (on tree-shaped paths): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 15: f10 -> f10 : B'=-1+B, C'=-1+A, [ B>=1 && 0>=-1+A ], cost: 2 8.71/3.81 8.71/3.81 16: f10 -> f10 : B'=-1+B, C'=0, D'=0, [ B>=1 && -1+A>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 17: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_1, [ B>=1 && -1+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 18: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_2, [ B>=1 && -1+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerating simple loops of location 2. 8.71/3.81 8.71/3.81 Accelerating the following rules: 8.71/3.81 8.71/3.81 15: f10 -> f10 : B'=-1+B, C'=-1+A, [ B>=1 && 0>=-1+A ], cost: 2 8.71/3.81 8.71/3.81 16: f10 -> f10 : B'=-1+B, C'=0, D'=0, [ B>=1 && -1+A>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 17: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_1, [ B>=1 && -1+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 18: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_2, [ B>=1 && -1+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated rule 15 with metering function B, yielding the new rule 19. 8.71/3.81 8.71/3.81 Accelerated rule 16 with metering function B, yielding the new rule 20. 8.71/3.81 8.71/3.81 Found no metering function for rule 17. 8.71/3.81 8.71/3.81 Found no metering function for rule 18. 8.71/3.81 8.71/3.81 Removing the simple loops: 15 16. 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated all simple loops using metering functions (where possible): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 17: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_1, [ B>=1 && -1+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 18: f10 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_2, [ B>=1 && -1+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 19: f10 -> f10 : B'=0, C'=-1+A, [ B>=1 && 0>=-1+A ], cost: 2*B 8.71/3.81 8.71/3.81 20: f10 -> f10 : B'=0, C'=0, D'=0, [ B>=1 && -1+A>=1 ], cost: A*B+B 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Chained accelerated rules (with incoming rules): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 1: f6 -> f10 : A'=-1+A, B'=1+B, [ A>=1 ], cost: 1 8.71/3.81 8.71/3.81 21: f6 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_1, [ 1+B>=1 && -2+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 22: f6 -> f10 : A'=1, B'=-2+A+B, C'=0, D'=free_2, [ 1+B>=1 && -2+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 23: f6 -> f10 : A'=-1+A, B'=0, C'=-2+A, [ A>=1 && 1+B>=1 && 0>=-2+A ], cost: 3+2*B 8.71/3.81 8.71/3.81 24: f6 -> f10 : A'=-1+A, B'=0, C'=0, D'=0, [ 1+B>=1 && -2+A>=1 ], cost: 2+(-1+A)*(1+B)+B 8.71/3.81 8.71/3.81 7: f10 -> f6 : [ 0>=B ], cost: 1 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Eliminated locations (on tree-shaped paths): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 25: f6 -> f6 : A'=-1+A, B'=1+B, [ A>=1 && 0>=1+B ], cost: 2 8.71/3.81 8.71/3.81 26: f6 -> f6 : A'=-1+A, B'=0, C'=-2+A, [ A>=1 && 1+B>=1 && 0>=-2+A ], cost: 4+2*B 8.71/3.81 8.71/3.81 27: f6 -> f6 : A'=-1+A, B'=0, C'=0, D'=0, [ 1+B>=1 && -2+A>=1 ], cost: 3+(-1+A)*(1+B)+B 8.71/3.81 8.71/3.81 28: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 29: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerating simple loops of location 1. 8.71/3.81 8.71/3.81 Accelerating the following rules: 8.71/3.81 8.71/3.81 25: f6 -> f6 : A'=-1+A, B'=1+B, [ A>=1 && 0>=1+B ], cost: 2 8.71/3.81 8.71/3.81 26: f6 -> f6 : A'=-1+A, B'=0, C'=-2+A, [ A>=1 && 1+B>=1 && 0>=-2+A ], cost: 4+2*B 8.71/3.81 8.71/3.81 27: f6 -> f6 : A'=-1+A, B'=0, C'=0, D'=0, [ 1+B>=1 && -2+A>=1 ], cost: 3+(-1+A)*(1+B)+B 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated rule 25 with NONTERM (after adding A<=B), yielding the new rule 30. 8.71/3.81 8.71/3.81 Accelerated rule 25 with backward acceleration, yielding the new rule 31. 8.71/3.81 8.71/3.81 Accelerated rule 25 with backward acceleration, yielding the new rule 32. 8.71/3.81 8.71/3.81 Accelerated rule 26 with metering function A, yielding the new rule 33. 8.71/3.81 8.71/3.81 Accelerated rule 27 with metering function -2+A, yielding the new rule 34. 8.71/3.81 8.71/3.81 Removing the simple loops: 25 26 27. 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Accelerated all simple loops using metering functions (where possible): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 28: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 29: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 30: f6 -> [8] : [ A>=1 && 0>=1+B && A<=B ], cost: INF 8.71/3.81 8.71/3.81 31: f6 -> f6 : A'=0, B'=A+B, [ A>=1 && 0>=1+B && 0>=A+B ], cost: 2*A 8.71/3.81 8.71/3.81 32: f6 -> f6 : A'=A+B, B'=0, [ A>=1 && 0>=1+B && 1+A+B>=1 ], cost: -2*B 8.71/3.81 8.71/3.81 33: f6 -> f6 : A'=0, B'=0, C'=-1, [ A>=1 && 1+B>=1 && 0>=-2+A ], cost: 4*A 8.71/3.81 8.71/3.81 34: f6 -> f6 : A'=2, B'=0, C'=0, D'=0, [ 1+B>=1 && -2+A>=1 ], cost: -5-1/2*(-2+A)^2+5/2*A+A*(-2+A) 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Chained accelerated rules (with incoming rules): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 35: f0 -> f6 : A'=0, B'=0, C'=-1, [ free>=1 && 0>=-2+free ], cost: 1+4*free 8.71/3.81 8.71/3.81 36: f0 -> f6 : A'=2, B'=0, C'=0, D'=0, [ -2+free>=1 ], cost: -4+5/2*free-1/2*(-2+free)^2+free*(-2+free) 8.71/3.81 8.71/3.81 28: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 29: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Removed unreachable locations (and leaf rules with constant cost): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 0: f0 -> f6 : A'=free, B'=0, [], cost: 1 8.71/3.81 8.71/3.81 35: f0 -> f6 : A'=0, B'=0, C'=-1, [ free>=1 && 0>=-2+free ], cost: 1+4*free 8.71/3.81 8.71/3.81 36: f0 -> f6 : A'=2, B'=0, C'=0, D'=0, [ -2+free>=1 ], cost: -4+5/2*free-1/2*(-2+free)^2+free*(-2+free) 8.71/3.81 8.71/3.81 28: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && 0>=1+free_1 ], cost: 1+A 8.71/3.81 8.71/3.81 29: f6 -> [7] : [ 1+B>=1 && -2+A>=1 && free_2>=1 ], cost: 1+A 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Eliminated locations (on tree-shaped paths): 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 37: f0 -> [7] : A'=free, B'=0, [ -2+free>=1 && 0>=1+free_1 ], cost: 2+free 8.71/3.81 8.71/3.81 38: f0 -> [7] : A'=free, B'=0, [ -2+free>=1 && free_2>=1 ], cost: 2+free 8.71/3.81 8.71/3.81 39: f0 -> [9] : [ free>=1 && 0>=-2+free ], cost: 1+4*free 8.71/3.81 8.71/3.81 40: f0 -> [9] : [ -2+free>=1 ], cost: -4+5/2*free-1/2*(-2+free)^2+free*(-2+free) 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 ### Computing asymptotic complexity ### 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Fully simplified ITS problem 8.71/3.81 8.71/3.81 Start location: f0 8.71/3.81 8.71/3.81 37: f0 -> [7] : A'=free, B'=0, [ -2+free>=1 && 0>=1+free_1 ], cost: 2+free 8.71/3.81 8.71/3.81 38: f0 -> [7] : A'=free, B'=0, [ -2+free>=1 && free_2>=1 ], cost: 2+free 8.71/3.81 8.71/3.81 39: f0 -> [9] : [ free>=1 && 0>=-2+free ], cost: 1+4*free 8.71/3.81 8.71/3.81 40: f0 -> [9] : [ -2+free>=1 ], cost: -4+5/2*free-1/2*(-2+free)^2+free*(-2+free) 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Computing asymptotic complexity for rule 37 8.71/3.81 8.71/3.81 Solved the limit problem by the following transformations: 8.71/3.81 8.71/3.81 Created initial limit problem: 8.71/3.81 8.71/3.81 -free_1 (+/+!), 2+free (+), -2+free (+/+!) [not solved] 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 removing all constraints (solved by SMT) 8.71/3.81 8.71/3.81 resulting limit problem: [solved] 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 applying transformation rule (C) using substitution {free==n,free_1==-1} 8.71/3.81 8.71/3.81 resulting limit problem: 8.71/3.81 8.71/3.81 [solved] 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Solution: 8.71/3.81 8.71/3.81 free / n 8.71/3.81 8.71/3.81 free_1 / -1 8.71/3.81 8.71/3.81 Resulting cost 2+n has complexity: Unbounded 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Found new complexity Unbounded. 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 Obtained the following overall complexity (w.r.t. the length of the input n): 8.71/3.81 8.71/3.81 Complexity: Unbounded 8.71/3.81 8.71/3.81 Cpx degree: Unbounded 8.71/3.81 8.71/3.81 Solved cost: 2+n 8.71/3.81 8.71/3.81 Rule cost: 2+free 8.71/3.81 8.71/3.81 Rule guard: [ -2+free>=1 && 0>=1+free_1 ] 8.71/3.81 8.71/3.81 8.71/3.81 8.71/3.81 WORST_CASE(INF,?) 8.71/3.81 8.71/3.81 8.71/3.81 ---------------------------------------- 8.71/3.81 8.71/3.81 (2) 8.71/3.81 BOUNDS(INF, INF) 8.71/3.83 EOF