Root system data for type G - Combinatorics

Skip to content
Back to top
View this page
Edit this page

# Root system data for type G

class sage.combinat.root_system.type_G.AmbientSpace(root_system, base_ring, index_set=None)

  Bases: `AmbientSpace`

  EXAMPLES:

  Sage

      sage: e = RootSystem(['G',2]).ambient_space(); e
      Ambient space of the Root system of type ['G', 2]

  Python

      >>> from sage.all import *
      >>> e = RootSystem(['G',Integer(2)]).ambient_space(); e
      Ambient space of the Root system of type ['G', 2]

  One can not construct the ambient lattice because the simple coroots have rational coefficients:

  Sage

      sage: e.simple_coroots()
      Finite family {1: (0, 1, -1), 2: (1/3, -2/3, 1/3)}
      sage: e.smallest_base_ring()
      Rational Field

  [Python]

      >>> from sage.all import *
      >>> e.simple_coroots()
      Finite family {1: (0, 1, -1), 2: (1/3, -2/3, 1/3)}
      >>> e.smallest_base_ring()
      Rational Field

  By default, this ambient space uses the barycentric projection for plotting:

  Sage

      sage: # needs sage.symbolic
      sage: L = RootSystem(["G",2]).ambient_space()
      sage: e = L.basis()
      sage: L._plot_projection(e[0])
      (1/2, 989/1142)
      sage: L._plot_projection(e[1])
      (-1, 0)
      sage: L._plot_projection(e[2])
      (1/2, -989/1142)
      sage: L = RootSystem(["A",3]).ambient_space()
      sage: l = L.an_element(); l
      (2, 2, 3, 0)
      sage: L._plot_projection(l)
      (0, -1121/1189, 7/3)

  Python

      >>> from sage.all import *
      >>> # needs sage.symbolic
      >>> L = RootSystem(["G",Integer(2)]).ambient_space()
      >>> e = L.basis()
      >>> L._plot_projection(e[Integer(0)])
      (1/2, 989/1142)
      >>> L._plot_projection(e[Integer(1)])
      (-1, 0)
      >>> L._plot_projection(e[Integer(2)])
      (1/2, -989/1142)
      >>> L = RootSystem(["A",Integer(3)]).ambient_space()
      >>> l = L.an_element(); l
      (2, 2, 3, 0)
      >>> L._plot_projection(l)
      (0, -1121/1189, 7/3)

  See also

  - `sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods._plot_projection()`

  dimension()

    EXAMPLES:

    Sage

        sage: e = RootSystem(['G',2]).ambient_space()
        sage: e.dimension()
        3

    Python

        >>> from sage.all import *
        >>> e = RootSystem(['G',Integer(2)]).ambient_space()
        >>> e.dimension()
        3

  fundamental_weights()

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).root_system().ambient_space().fundamental_weights()
        Finite family {1: (1, 0, -1), 2: (2, -1, -1)}

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).root_system().ambient_space().fundamental_weights()
        Finite family {1: (1, 0, -1), 2: (2, -1, -1)}

  negative_roots()

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).root_system().ambient_space().negative_roots()
        [(0, -1, 1), (-1, 2, -1), (-1, 1, 0), (-1, 0, 1), (-1, -1, 2), (-2, 1, 1)]

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).root_system().ambient_space().negative_roots()
        [(0, -1, 1), (-1, 2, -1), (-1, 1, 0), (-1, 0, 1), (-1, -1, 2), (-2, 1, 1)]

  positive_roots()

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).root_system().ambient_space().positive_roots()
        [(0, 1, -1), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (2, -1, -1)]

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).root_system().ambient_space().positive_roots()
        [(0, 1, -1), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (2, -1, -1)]

  simple_root(i)

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).root_system().ambient_space().simple_roots()
        Finite family {1: (0, 1, -1), 2: (1, -2, 1)}

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).root_system().ambient_space().simple_roots()
        Finite family {1: (0, 1, -1), 2: (1, -2, 1)}

class sage.combinat.root_system.type_G.CartanType

  Bases: `CartanType_standard_finite`, `CartanType_simple`, `CartanType_crystallographic`

  EXAMPLES:

  Sage

      sage: ct = CartanType(['G',2])
      sage: ct
      ['G', 2]
      sage: ct._repr_(compact = True)
      'G2'

      sage: ct.is_irreducible()
      True
      sage: ct.is_finite()
      True
      sage: ct.is_crystallographic()
      True
      sage: ct.is_simply_laced()
      False
      sage: ct.dual()
      ['G', 2] relabelled by {1: 2, 2: 1}
      sage: ct.affine()
      ['G', 2, 1]

  Python

      >>> from sage.all import *
      >>> ct = CartanType(['G',Integer(2)])
      >>> ct
      ['G', 2]
      >>> ct._repr_(compact = True)
      'G2'

      >>> ct.is_irreducible()
      True
      >>> ct.is_finite()
      True
      >>> ct.is_crystallographic()
      True
      >>> ct.is_simply_laced()
      False
      >>> ct.dual()
      ['G', 2] relabelled by {1: 2, 2: 1}
      >>> ct.affine()
      ['G', 2, 1]

  AmbientSpace

    alias of `AmbientSpace`

  ascii_art(label=None, node=None)

    Return an ascii art representation of the Dynkin diagram.

    EXAMPLES:

    Sage

        sage: print(CartanType(['G',2]).ascii_art(label=lambda x: x+2))
          3
        O=<=O
        3   4

    Python

        >>> from sage.all import *
        >>> print(CartanType(['G',Integer(2)]).ascii_art(label=lambda x: x+Integer(2)))
          3
        O=<=O
        3   4

  coxeter_number()

    Return the Coxeter number associated with `self`.

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).coxeter_number()
        6

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).coxeter_number()
        6

  dual()

    Return the dual Cartan type.

    This uses that \(G_2\) is self-dual up to relabelling.

    EXAMPLES:

    Sage

        sage: G2 = CartanType(['G',2])
        sage: G2.dual()
        ['G', 2] relabelled by {1: 2, 2: 1}

        sage: G2.dynkin_diagram()                                                   # needs sage.graphs
          3
        O=<=O
        1   2
        G2
        sage: G2.dual().dynkin_diagram()                                            # needs sage.graphs
          3
        O=<=O
        2   1
        G2 relabelled by {1: 2, 2: 1}

    Python

        >>> from sage.all import *
        >>> G2 = CartanType(['G',Integer(2)])
        >>> G2.dual()
        ['G', 2] relabelled by {1: 2, 2: 1}

        >>> G2.dynkin_diagram()                                                   # needs sage.graphs
          3
        O=<=O
        1   2
        G2
        >>> G2.dual().dynkin_diagram()                                            # needs sage.graphs
          3
        O=<=O
        2   1
        G2 relabelled by {1: 2, 2: 1}

  dual_coxeter_number()

    Return the dual Coxeter number associated with `self`.

    EXAMPLES:

    Sage

        sage: CartanType(['G',2]).dual_coxeter_number()
        4

    Python

        >>> from sage.all import *
        >>> CartanType(['G',Integer(2)]).dual_coxeter_number()
        4

  dynkin_diagram()

    Return a Dynkin diagram for type G.

    EXAMPLES:

    Sage

        sage: g = CartanType(['G',2]).dynkin_diagram(); g                           # needs sage.graphs
          3
        O=<=O
        1   2
        G2
        sage: g.edges(sort=True)                                                    # needs sage.graphs
        [(1, 2, 1), (2, 1, 3)]

    Python

        >>> from sage.all import *
        >>> g = CartanType(['G',Integer(2)]).dynkin_diagram(); g                           # needs sage.graphs
          3
        O=<=O
        1   2
        G2
        >>> g.edges(sort=True)                                                    # needs sage.graphs
        [(1, 2, 1), (2, 1, 3)]