intros
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
aig✝ : AIG α
len : Nat
assign : α → Bool
aig : AIG α
target : ZipTarget aig len
⊢ ∀ (idx : Nat) (hidx : idx < len),
    ⟦{ aig := (zip aig target).aig, ref := (zip aig target).stream.getRef idx hidx }, assign⟧ =
      ⟦target.func aig { lhs := target.input.lhs.getRef idx hidx, rhs := target.input.rhs.getRef idx hidx }, assign⟧
α : Type
inst✝² : BEq α
inst✝¹ : Hashable α
inst✝ : DecidableEq α
aig✝ : AIG α
len : Nat
assign : α → Bool
aig : AIG α
target : ZipTarget aig len
idx✝ : Nat
hidx✝ : idx✝ < len
⊢ ⟦{ aig := (zip aig target).aig, ref := (zip aig target).stream.getRef idx✝ hidx✝ }, assign⟧ =
    ⟦target.func aig { lhs := target.input.lhs.getRef idx✝ hidx✝, rhs := target.input.rhs.getRef idx✝ hidx✝ }, assign⟧