unfold blastZeroExtend
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
newWidth : Nat
aig : AIG α
target : aig.ExtendTarget newWidth
assign : α → Bool
idx : Nat
hidx : idx < newWidth
⊢ ⟦{ aig := (blastZeroExtend aig target).aig, ref := (blastZeroExtend aig target).stream.getRef idx hidx }, assign⟧ =
    if hidx : idx < target.w then ⟦{ aig := aig, ref := target.stream.getRef idx hidx }, assign⟧ else false
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
newWidth : Nat
aig : AIG α
target : aig.ExtendTarget newWidth
assign : α → Bool
idx : Nat
hidx : idx < newWidth
⊢ ⟦{
        aig :=
          (match target with
            | { w := width, stream := input } => blastZeroExtend.go aig width input newWidth 0 ⋯ RefStream.empty).aig,
        ref :=
          (match target with
                | { w := width, stream := input } =>
                  blastZeroExtend.go aig width input newWidth 0 ⋯ RefStream.empty).stream.getRef
            idx hidx },
      assign⟧ =
    if hidx : idx < target.w then ⟦{ aig := aig, ref := target.stream.getRef idx hidx }, assign⟧ else false