9.27/3.99 WORST_CASE(NON_POLY, ?) 9.27/4.00 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 9.27/4.00 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 9.27/4.00 9.27/4.00 9.27/4.00 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(INF, INF). 9.27/4.00 9.27/4.00 (0) CpxIntTrs 9.27/4.00 (1) Loat Proof [FINISHED, 2342 ms] 9.27/4.00 (2) BOUNDS(INF, INF) 9.27/4.00 9.27/4.00 9.27/4.00 ---------------------------------------- 9.27/4.00 9.27/4.00 (0) 9.27/4.00 Obligation: 9.27/4.00 Complexity Int TRS consisting of the following rules: 9.27/4.00 f0(A, B, C, D, E) -> Com_1(f1(F, 1, 0, D, E)) :|: TRUE 9.27/4.00 f1(A, B, C, D, E) -> Com_1(f1(A - 10, B - 1, C, D, E)) :|: B >= 1 && A >= 101 9.27/4.00 f1(A, B, C, D, E) -> Com_1(f1(A + 11, B + 1, C, D, E)) :|: B >= 1 && 100 >= A 9.27/4.00 f1(A, B, C, D, E) -> Com_1(f1(A - 10, B - 1, 1, A, B)) :|: A >= 101 && 0 >= C && B >= 1 9.27/4.00 f1(A, B, C, D, E) -> Com_1(f1(A + 11, B + 1, 1, A, B)) :|: 100 >= A && 0 >= C && B >= 1 9.27/4.00 f1(A, B, C, D, E) -> Com_1(f2(A, B, C, D, E)) :|: D >= A && C >= 1 && B >= E 9.27/4.00 9.27/4.00 The start-symbols are:[f0_5] 9.27/4.00 9.27/4.00 9.27/4.00 ---------------------------------------- 9.27/4.00 9.27/4.00 (1) Loat Proof (FINISHED) 9.27/4.00 9.27/4.00 9.27/4.00 ### Pre-processing the ITS problem ### 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Initial linear ITS problem 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 0: f0 -> f1 : A'=free, B'=1, C'=0, [], cost: 1 9.27/4.00 9.27/4.00 1: f1 -> f1 : A'=-10+A, B'=-1+B, [ B>=1 && A>=101 ], cost: 1 9.27/4.00 9.27/4.00 2: f1 -> f1 : A'=11+A, B'=1+B, [ B>=1 && 100>=A ], cost: 1 9.27/4.00 9.27/4.00 3: f1 -> f1 : A'=-10+A, B'=-1+B, C'=1, D'=A, E'=B, [ A>=101 && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 4: f1 -> f1 : A'=11+A, B'=1+B, C'=1, D'=A, E'=B, [ 100>=A && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 5: f1 -> f2 : [ D>=A && C>=1 && B>=E ], cost: 1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Removed unreachable and leaf rules: 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 0: f0 -> f1 : A'=free, B'=1, C'=0, [], cost: 1 9.27/4.00 9.27/4.00 1: f1 -> f1 : A'=-10+A, B'=-1+B, [ B>=1 && A>=101 ], cost: 1 9.27/4.00 9.27/4.00 2: f1 -> f1 : A'=11+A, B'=1+B, [ B>=1 && 100>=A ], cost: 1 9.27/4.00 9.27/4.00 3: f1 -> f1 : A'=-10+A, B'=-1+B, C'=1, D'=A, E'=B, [ A>=101 && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 4: f1 -> f1 : A'=11+A, B'=1+B, C'=1, D'=A, E'=B, [ 100>=A && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 ### Simplification by acceleration and chaining ### 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Accelerating simple loops of location 1. 9.27/4.00 9.27/4.00 Accelerating the following rules: 9.27/4.00 9.27/4.00 1: f1 -> f1 : A'=-10+A, B'=-1+B, [ B>=1 && A>=101 ], cost: 1 9.27/4.00 9.27/4.00 2: f1 -> f1 : A'=11+A, B'=1+B, [ B>=1 && 100>=A ], cost: 1 9.27/4.00 9.27/4.00 3: f1 -> f1 : A'=-10+A, B'=-1+B, C'=1, D'=A, E'=B, [ A>=101 && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 4: f1 -> f1 : A'=11+A, B'=1+B, C'=1, D'=A, E'=B, [ 100>=A && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Accelerated rule 1 with metering function meter (where 10*meter==-100+A) (after adding A<=B), yielding the new rule 6. 9.27/4.00 9.27/4.00 Accelerated rule 1 with backward acceleration, yielding the new rule 7. 9.27/4.00 9.27/4.00 Accelerated rule 2 with metering function meter_1 (where 11*meter_1==100-A), yielding the new rule 8. 9.27/4.00 9.27/4.00 Found no metering function for rule 3. 9.27/4.00 9.27/4.00 Found no metering function for rule 4. 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {meter==1} 9.27/4.00 9.27/4.00 Nested simple loops 2 (outer loop) and 6 (inner loop) with metering function 89+10*meter-A, resulting in the new rules: 9. 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {meter==1} 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {meter==1} 9.27/4.00 9.27/4.00 Nested simple loops 4 (outer loop) and 6 (inner loop) with metering function 89+10*meter-A, resulting in the new rules: 10. 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {k==-1+B} 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {k==1} 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {meter_1==1} 9.27/4.00 9.27/4.00 During metering: Instantiating temporary variables by {meter_1==1} 9.27/4.00 9.27/4.00 Removing the simple loops: 1 2 4. 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Accelerated all simple loops using metering functions (where possible): 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 0: f0 -> f1 : A'=free, B'=1, C'=0, [], cost: 1 9.27/4.00 9.27/4.00 3: f1 -> f1 : A'=-10+A, B'=-1+B, C'=1, D'=A, E'=B, [ A>=101 && 0>=C && B>=1 ], cost: 1 9.27/4.00 9.27/4.00 6: f1 -> f1 : A'=-10*meter+A, B'=-meter+B, [ B>=1 && A>=101 && A<=B && 10*meter==-100+A && meter>=1 ], cost: meter 9.27/4.00 9.27/4.00 7: f1 -> f1 : A'=A-10*k, B'=-k+B, [ B>=1 && A>=101 && k>0 && 1-k+B>=1 && 10+A-10*k>=101 ], cost: k 9.27/4.00 9.27/4.00 8: f1 -> f1 : A'=11*meter_1+A, B'=meter_1+B, [ B>=1 && 100>=A && 11*meter_1==100-A && meter_1>=1 ], cost: meter_1 9.27/4.00 9.27/4.00 9: f1 -> f1 : A'=979-10*(89+10*meter-A)*meter+110*meter-10*A, B'=89-(89+10*meter-A)*meter+10*meter-A+B, [ B>=1 && 100>=A && 11+A>=101 && 11+A<=1+B && 10*meter==-89+A && meter>=1 && 89+10*meter-A>=1 ], cost: 89+(89+10*meter-A)*meter+10*meter-A 9.27/4.00 9.27/4.00 10: f1 -> f1 : A'=979-10*(89+10*meter-A)*meter+110*meter-10*A, B'=89-(89+10*meter-A)*meter+10*meter-A+B, C'=1, D'=968-10*(89+10*meter-A)*meter+120*meter-10*A, E'=88-(89+10*meter-A)*meter+11*meter-A+B, [ 100>=A && 0>=C && B>=1 && 11+A>=101 && 11+A<=1+B && 10*meter==-89+A && meter>=1 && 89+10*meter-A>=1 ], cost: 89+(89+10*meter-A)*meter+10*meter-A 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Chained accelerated rules (with incoming rules): 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 0: f0 -> f1 : A'=free, B'=1, C'=0, [], cost: 1 9.27/4.00 9.27/4.00 11: f0 -> f1 : A'=-10+free, B'=0, C'=1, D'=free, E'=1, [ free>=101 ], cost: 2 9.27/4.00 9.27/4.00 12: f0 -> f1 : A'=-10+free, B'=0, C'=0, [ free>=101 ], cost: 2 9.27/4.00 9.27/4.00 13: f0 -> f1 : A'=100, B'=1+meter_1, C'=0, [ 100>=100-11*meter_1 && meter_1>=1 ], cost: 1+meter_1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Removed unreachable locations (and leaf rules with constant cost): 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 13: f0 -> f1 : A'=100, B'=1+meter_1, C'=0, [ 100>=100-11*meter_1 && meter_1>=1 ], cost: 1+meter_1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 ### Computing asymptotic complexity ### 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Fully simplified ITS problem 9.27/4.00 9.27/4.00 Start location: f0 9.27/4.00 9.27/4.00 13: f0 -> f1 : A'=100, B'=1+meter_1, C'=0, [ 100>=100-11*meter_1 && meter_1>=1 ], cost: 1+meter_1 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Computing asymptotic complexity for rule 13 9.27/4.00 9.27/4.00 Simplified the guard: 9.27/4.00 9.27/4.00 13: f0 -> f1 : A'=100, B'=1+meter_1, C'=0, [ meter_1>=1 ], cost: 1+meter_1 9.27/4.00 9.27/4.00 Solved the limit problem by the following transformations: 9.27/4.00 9.27/4.00 Created initial limit problem: 9.27/4.00 9.27/4.00 1+meter_1 (+), meter_1 (+/+!) [not solved] 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 removing all constraints (solved by SMT) 9.27/4.00 9.27/4.00 resulting limit problem: [solved] 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 applying transformation rule (C) using substitution {meter_1==n} 9.27/4.00 9.27/4.00 resulting limit problem: 9.27/4.00 9.27/4.00 [solved] 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Solution: 9.27/4.00 9.27/4.00 meter_1 / n 9.27/4.00 9.27/4.00 Resulting cost 1+n has complexity: Unbounded 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Found new complexity Unbounded. 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 Obtained the following overall complexity (w.r.t. the length of the input n): 9.27/4.00 9.27/4.00 Complexity: Unbounded 9.27/4.00 9.27/4.00 Cpx degree: Unbounded 9.27/4.00 9.27/4.00 Solved cost: 1+n 9.27/4.00 9.27/4.00 Rule cost: 1+meter_1 9.27/4.00 9.27/4.00 Rule guard: [ meter_1>=1 ] 9.27/4.00 9.27/4.00 9.27/4.00 9.27/4.00 WORST_CASE(INF,?) 9.27/4.00 9.27/4.00 9.27/4.00 ---------------------------------------- 9.27/4.00 9.27/4.00 (2) 9.27/4.00 BOUNDS(INF, INF) 9.40/4.02 EOF