∀ {α : Type u_2} {β : Type u_1} (as : Array α) (stop : ℕ) (init : β) (start : ℕ) (h_start : start ≤ as.size)
  (acc : Array β) (h_gt : stop < start) (next : β),
  InvImage (fun x1 x2 => x1 < x2)
    (fun x =>
      PSigma.casesOn x fun init start =>
        PSigma.casesOn start fun start h_start => PSigma.casesOn h_start fun h_start acc => start)
    ⟨next, ⟨start - 1, ⟨⋯, acc.push init⟩⟩⟩ ⟨init, ⟨start, ⟨h_start, acc⟩⟩⟩