code: def common_assumptions(exprs, check=None):
      """return those assumptions which have the same True or False
      value for all the given expressions.
  
      Examples
      ========
  
      >>> from sympy.core import common_assumptions
      >>> from sympy import oo, pi, sqrt
      >>> common_assumptions([-4, 0, sqrt(2), 2, pi, oo])
      {'commutative': True, 'composite': False,
      'extended_real': True, 'imaginary': False, 'odd': False}
  
      By default, all assumptions are tested; pass an iterable of the
      assumptions to limit those that are reported:
  
      >>> common_assumptions([0, 1, 2], ['positive', 'integer'])
      {'integer': True}
      """
      check = _assume_defined if check is None else set(check)
      if not check or not exprs:
          return {}
  
      # get all assumptions for each
      assume = [assumptions(i, _check=check) for i in sympify(exprs)]
      # focus on those of interest that are True
      for i, e in enumerate(assume):
          assume[i] = {k: e[k] for k in set(e) & check}
      # what assumptions are in common?
      common = set.intersection(*[set(i) for i in assume])
      # which ones hold the same value
      a = assume[0]
      return {
          k: a[k] for k in common if all(a[k] == b[k] for b in assume)
      }
  
imports: from sympy.utilities.exceptions import sympy_deprecation_warning
  from .facts import FactRules, FactKB
  from .sympify import sympify
  from sympy.core.random import _assumptions_shuffle
  from sympy.core.assumptions_generated import generated_assumptions
label_desc: Use image node_id 4 for calling a global function with example usage: common_assumptions(exprs, check) and returns: unknown, dict