class_docstr: Join/meet operations of an algebraic lattice[1].
  
  Explanation
  ===========
  
  These binary operations are associative (op(op(a, b), c) = op(a, op(b, c))),
  commutative (op(a, b) = op(b, a)) and idempotent (op(a, a) = op(a) = a).
  Common examples are AND, OR, Union, Intersection, max or min. They have an
  identity element (op(identity, a) = a) and an absorbing element
  conventionally called zero (op(zero, a) = zero).
  
  This is an abstract base class, concrete derived classes must declare
  attributes zero and identity. All defining properties are then respected.
  
  Examples
  ========
  
  >>> from sympy import Integer
  >>> from sympy.core.operations import LatticeOp
  >>> class my_join(LatticeOp):
  ...     zero = Integer(0)
  ...     identity = Integer(1)
  >>> my_join(2, 3) == my_join(3, 2)
  True
  >>> my_join(2, my_join(3, 4)) == my_join(2, 3, 4)
  True
  >>> my_join(0, 1, 4, 2, 3, 4)
  0
  >>> my_join(1, 2)
  2
  
  References
  ==========
  
  .. [1] https://en.wikipedia.org/wiki/Lattice_%28order%29
docstr: Return a set of args such that cls(*arg_set) == expr.
docstr_tok: ["Return","a","set","of","args","such","that","cls","(","*","arg_set",")","==","expr","."]
code: def make_args(cls, expr):
      """
      Return a set of args such that cls(*arg_set) == expr.
      """
      if isinstance(expr, cls):
          return expr._argset
      else:
          return frozenset([sympify(expr)])
  
imports: from __future__ import annotations
  from operator import attrgetter
  from collections import defaultdict
  from sympy.utilities.exceptions import sympy_deprecation_warning
  from .sympify import _sympify, sympify
  from .basic import Basic
  from .cache import cacheit
  from .sorting import ordered
  from .logic import fuzzy_and
  from .parameters import global_parameters
  from sympy.utilities.iterables import sift
  from sympy.multipledispatch.dispatcher import Dispatcher, ambiguity_register_error_ignore_dup, str_signature, RaiseNotImplementedError
label_desc: Use image node_id 3 for calling the LatticeOp obj's underlying member method code with example usage: obj.make_args(cls, expr) and returns: expr, frozenset