I never stated whether the checks were static or runtime. In this case, they are runtime checks.
What you are talking about is value range analysis. Rust does a limited amount of it, and if it can prove safe indexing it will remove the runtime checks.