intro idx hidx
w : Nat
aig : AIG BVBit
a curr : Nat
hcurr : curr ≤ w
s : aig.RefStream curr
⊢ ∀ (idx : Nat) (hidx : idx < curr) (hfoo : aig.decls.size ≤ (go w aig curr s a hcurr).aig.decls.size),
    (go w aig curr s a hcurr).stream.getRef idx ⋯ = (s.getRef idx hidx).cast hfoo
w : Nat
aig : AIG BVBit
a curr : Nat
hcurr : curr ≤ w
s : aig.RefStream curr
idx : Nat
hidx : idx < curr
⊢ ∀ (hfoo : aig.decls.size ≤ (go w aig curr s a hcurr).aig.decls.size),
    (go w aig curr s a hcurr).stream.getRef idx ⋯ = (s.getRef idx hidx).cast hfoo