generalize hextract : blastExtract aig target = res
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
newWidth : Nat
aig : AIG α
target : ExtractTarget aig newWidth
assign : α → Bool
idx : Nat
hidx : idx < newWidth
⊢ ⟦{ aig := (blastExtract aig target).aig, ref := (blastExtract aig target).stream.getRef idx hidx }, assign⟧ =
    if h : target.lo + idx < target.w then ⟦{ aig := aig, ref := target.stream.getRef (target.lo + idx) h }, assign⟧
    else false
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
newWidth : Nat
aig : AIG α
target : ExtractTarget aig newWidth
assign : α → Bool
idx : Nat
hidx : idx < newWidth
res : RefStreamEntry α newWidth
hextract : blastExtract aig target = res
⊢ ⟦{ aig := res.aig, ref := res.stream.getRef idx hidx }, assign⟧ =
    if h : target.lo + idx < target.w then ⟦{ aig := aig, ref := target.stream.getRef (target.lo + idx) h }, assign⟧
    else false