∀ {w : ℕ} (aig : Std.Sat.AIG Std.Tactic.BVDecide.BVBit)
  (input : Std.Tactic.BVDecide.BVExpr.WithCache (Std.Tactic.BVDecide.BVExpr w) aig)
  (assign : Std.Tactic.BVDecide.BVExpr.Assignment),
  Std.Tactic.BVDecide.BVExpr.Cache.Inv assign aig input.cache →
    ∀ (idx : ℕ) (hidx : idx < w),
      ⟦assign.toAIGAssignment,
          { aig := (↑(Std.Tactic.BVDecide.BVExpr.bitblast aig input).result).aig,
            ref := (↑(Std.Tactic.BVDecide.BVExpr.bitblast aig input).result).vec.get idx hidx }⟧ =
        (Std.Tactic.BVDecide.BVExpr.eval assign input.val).getLsbD idx