class_docstr: Given an approximating ``guide`` funsor, approximates::
  
      model.reduce(ops.logaddexp, approx_vars)
  
  by the lower bound::
  
      Integrate(guide, model - guide, approx_vars)
  
  :param Funsor guide: A guide or proposal funsor.
  :param frozenset approx_vars: The variables being integrated.
code: def __init__(self, guide, approx_vars):
      super().__init__("elbo")
      self.guide = guide
      self.approx_vars = approx_vars
  
file_path: funsor/funsor/elbo.py
imports: from functools import reduce
  from multipledispatch.variadic import Variadic
  from funsor.cnf import Contraction
  from funsor.integrate import Integrate
  from funsor.interpretations import StatefulInterpretation
  from funsor.ops import AddOp, LogaddexpOp, NullOp
  from funsor.terms import Funsor, Reduce
  from .None import ops
label_desc: Use image node_id 1 to create a new Elbo object from inherited base classes: StatefulInterpretation with example: obj = Elbo(guide, approx_vars)