intro idx hidx1 hcurr
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
aig : AIG α
w : Nat
hw : 0 < w
input : aig.RefStream w
newWidth curr : Nat
hcurr : curr ≤ newWidth
s : aig.RefStream curr
⊢ ∀ (idx : Nat) (hidx1 : idx < newWidth),
    curr ≤ idx →
      (go w hw input newWidth curr hcurr s).getRef idx hidx1 =
        if hidx2 : idx < w then input.getRef idx ⋯ else input.getRef (w - 1) ⋯
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
aig : AIG α
w : Nat
hw : 0 < w
input : aig.RefStream w
newWidth curr : Nat
hcurr✝ : curr ≤ newWidth
s : aig.RefStream curr
idx : Nat
hidx1 : idx < newWidth
hcurr : curr ≤ idx
⊢ (go w hw input newWidth curr hcurr✝ s).getRef idx hidx1 =
    if hidx2 : idx < w then input.getRef idx ⋯ else input.getRef (w - 1) ⋯