∀ {α : Type u_1} (as : Array α) (j : ℕ) (motive : (i : ℕ) → i + j = as.size → Sort u_2) (i : ℕ)
  (inv : i + 1 + j = as.size) (h_1 : (x : 0 + j = as.size) → motive 0 x)
  (h_2 : (i : ℕ) → (inv : i + 1 + j = as.size) → motive i.succ inv),
  (match i.succ, inv with
    | 0, x => h_1 x
    | i.succ, inv => h_2 i inv) =
    h_2 i inv