class_docstr: Represent the root system of a simple Lie algebra
  
  Every simple Lie algebra has a unique root system.  To find the root
  system, we first consider the Cartan subalgebra of g, which is the maximal
  abelian subalgebra, and consider the adjoint action of g on this
  subalgebra.  There is a root system associated with this action. Now, a
  root system over a vector space V is a set of finite vectors Phi (called
  roots), which satisfy:
  
  1.  The roots span V
  2.  The only scalar multiples of x in Phi are x and -x
  3.  For every x in Phi, the set Phi is closed under reflection
      through the hyperplane perpendicular to x.
  4.  If x and y are roots in Phi, then the projection of y onto
      the line through x is a half-integral multiple of x.
  
  Now, there is a subset of Phi, which we will call Delta, such that:
  1.  Delta is a basis of V
  2.  Each root x in Phi can be written x = sum k_y y for y in Delta
  
  The elements of Delta are called the simple roots.
  Therefore, we see that the simple roots span the root space of a given
  simple Lie algebra.
  
  References
  ==========
  
  .. [1] https://en.wikipedia.org/wiki/Root_system
  .. [2] Lie Algebras and Representation Theory - Humphreys
docstr: Generate all the roots of a given root system
  
  The result is a dictionary where the keys are integer numbers.  It
  generates the roots by getting the dictionary of all positive roots
  from the bases classes, and then taking each root, and multiplying it
  by -1 and adding it to the dictionary.  In this way all the negative
  roots are generated.
code: def all_roots(self):
      """Generate all the roots of a given root system
  
      The result is a dictionary where the keys are integer numbers.  It
      generates the roots by getting the dictionary of all positive roots
      from the bases classes, and then taking each root, and multiplying it
      by -1 and adding it to the dictionary.  In this way all the negative
      roots are generated.
  
      """
      alpha = self.cartan_type.positive_roots()
      keys = list(alpha.keys())
      k = max(keys)
      for val in keys:
          k += 1
          root = alpha[val]
          newroot = [-x for x in root]
          alpha[k] = newroot
      return alpha
  
file_path: sympy/sympy/liealgebras/root_system.py
imports: from .cartan_type import CartanType
  from sympy.core.basic import Atom
label_desc: Use image node_id 3 for calling the RootSystem obj's underlying member method code with example usage: obj.all_roots() and returns: alpha