∀ {α : Type} [inst : Hashable α] [inst_1 : DecidableEq α] {w : ℕ} {aig : Std.Sat.AIG α} (input : aig.RefVec w)
  (distance curr : ℕ) (hcurr : curr ≤ w) (s : aig.RefVec curr) (hcurr1 : curr < w) (hcurr2 : ¬curr < w - distance % w),
  InvImage (fun x1 x2 => x1 < x2)
    (fun x => PSigma.casesOn x fun curr hcurr => PSigma.casesOn hcurr fun hcurr s => w - curr)
    ⟨curr + 1, ⟨⋯, s.push (input.get (curr - (w - distance % w)) ⋯)⟩⟩ ⟨curr, ⟨hcurr, s⟩⟩