suffices ∀ (i k : Nat) (hk : k ≤ as.size) (hi : i < as.size - k), (shrink.loop k as)[i]'(as.size_shrink_loop hk ▸ hi) = as[i]'(trans (r:=LT.lt (α:=Nat)) hi (as.size.sub_le_self k))
from fun i hi =>
  this i (as.size - n) (as.size.sub_le_self n) (by rw [Nat.sub_sub_self h]; exact trans (r:=LT.lt (α:=Nat)) (s:=Eq) hi (as.size_shrink h))
α : Type u
as : Array α
n : Nat
h : n ≤ size as
⊢ ∀ (i : Nat) (hi : i < size (shrink.loop (size as - n) as)), (shrink.loop (size as - n) as)[i] = as[i]
α : Type u
as : Array α
n : Nat
h : n ≤ size as
⊢ ∀ (i k : Nat) (hk : k ≤ size as) (hi : i < size as - k), (shrink.loop k as)[i] = as[i]