class_docstr: Declarative representation of a finitary sum-product operation.
  
  After normalization via the :func:`~funsor.terms.normalize` interpretation
  contractions will canonically order their terms by type::
  
      Delta, Number, Tensor, Gaussian
class_docstr_tok: ["Declarative","representation","of","a","finitary","sum-product","operation",".","After","normalization","via","the",":","func",":","`","~funsor.terms.normalize","`","interpretation","contractions","will","canonically","order","their","terms","by","type",":",":","Delta",",","Number",",","Tensor",",","Gaussian"]
code: def _alpha_convert(self, alpha_subs):
      reduced_vars = frozenset(
          to_funsor(alpha_subs.get(var.name, var), var.output)
          for var in self.reduced_vars
      )
      alpha_subs = {
          k: to_funsor(v, self.bound[k]) for k, v in alpha_subs.items()
      }
      red_op, bin_op, _, terms = super()._alpha_convert(alpha_subs)
      return red_op, bin_op, reduced_vars, terms
  
imports: import functools
  import itertools
  from collections import Counter, OrderedDict, defaultdict
  from functools import reduce
  from typing import Tuple, Union
  import opt_einsum
  import funsor
  import funsor.ops
  from funsor.affine import affine_inputs
  from funsor.delta import Delta
  from funsor.domains import find_domain
  from funsor.gaussian import Gaussian
  from funsor.interpretations import eager, normalize, reflect
  from funsor.interpreter import children
  from funsor.ops import DISTRIBUTIVE_OPS, AssociativeOp, NullOp
  from funsor.tensor import Tensor
  from funsor.terms import _INFIX, Align, Binary, Funsor, Number, Reduce, Subs, Unary, Variable, to_funsor
  from funsor.typing import Variadic
  from funsor.util import broadcast_shape, get_backend, quote
label_desc: Use image node_id 6 for calling the Contraction obj's underlying member method code with example usage: obj._alpha_convert(alpha_subs) and returns: red_op,  bin_op,  reduced_vars,  terms