code: def _(fn):
      # This is simply a multiary version of the above Binary(ops.mul, ...) case.
      results = []
      for i, x in enumerate(fn.args):
          others = fn.args[:i] + fn.args[i + 1 :]
          other_inputs = reduce(
              ops.or_, map(_real_inputs, others), frozenset()
          )
          results.append(affine_inputs(x) - other_inputs)
      # This multilinear case introduces incompleteness, since some vars
      # could later be reduced, making remaining vars affine.
      if sum(map(bool, results)) == 1:
          for result in results:
              if result:
                  return result
      return frozenset()
  
file_path: funsor/funsor/affine.py
imports: from collections import OrderedDict
  from functools import reduce, singledispatch
  import opt_einsum
  from funsor.domains import Bint
  from funsor.interpreter import gensym
  from funsor.tensor import Tensor, get_default_prototype
  from funsor.terms import Binary, Finitary, Funsor, Lambda, Reduce, Unary, Variable
  from .None import ops
label_desc: Use image node_id 9 for calling a global function with example usage: _(fn) and returns: frozenset, result