∀ {α : Type u_2} {β : Type u_1} (as : Array α) (stop : USize) (init : β) (start : USize)
  (h_start : start.toNat ≤ as.size) (acc : Array β) (h_bound : start.toNat - stop.toNat < acc.size)
  (h_gt : stop < start) (this : start - 1 < start) (this_1 : (start - 1).toNat < as.size)
  (this_2 : start - 1 - stop < start - stop) (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 => PSigma.casesOn acc fun acc h_bound => start.toNat - stop.toNat)
    ⟨next, ⟨start - 1, ⟨⋯, ⟨acc.uset (start - 1 - stop) next ⋯, ⋯⟩⟩⟩⟩ ⟨init, ⟨start, ⟨h_start, ⟨acc, h_bound⟩⟩⟩⟩