### Navigation

- index
- modules |
- next |
- previous |
- Combinatorics »
- Root Systems »
- Root System Types »

# Root system data for reducible Cartan types

class `sage.combinat.root_system.type_reducible.``AmbientSpace`(root_system, base_ring)

  Bases: `sage.combinat.root_system.ambient_space.AmbientSpace`

  EXAMPLES:

      sage: RootSystem("A2xB2").ambient_space()
      Ambient space of the Root system of type A2xB2

  `ambient_spaces`()

    Returns a list of the irreducible Cartan types of which the given reducible Cartan type is a product.

    EXAMPLES:

        sage: RootSystem("A2xB2").ambient_space().ambient_spaces()
        [Ambient space of the Root system of type ['A', 2],
         Ambient space of the Root system of type ['B', 2]]

  `cartan_type`()

    EXAMPLES:

        sage: RootSystem("A2xB2").ambient_space().cartan_type()
        A2xB2

  `component_types`()

    EXAMPLES:

        sage: RootSystem("A2xB2").ambient_space().component_types()
        [['A', 2], ['B', 2]]

  `dimension`()

    EXAMPLES:

        sage: RootSystem("A2xB2").ambient_space().dimension()
        5

  `fundamental_weights`()

    EXAMPLES:

        sage: RootSystem("A2xB2").ambient_space().fundamental_weights()
        Finite family {1: (1, 0, 0, 0, 0), 2: (1, 1, 0, 0, 0), 3: (0, 0, 0, 1, 0), 4: (0, 0, 0, 1/2, 1/2)}

  `inject_weights`(i, v)

    Produces the corresponding element of the lattice.

    INPUT:

    - `i` - an integer in range(self.components)
    - `v` - a vector in the i-th component weight lattice

    EXAMPLES:

        sage: V = RootSystem("A2xB2").ambient_space()
        sage: [V.inject_weights(i,V.ambient_spaces()[i].fundamental_weights()[1]) for i in range(2)]
        [(1, 0, 0, 0, 0), (0, 0, 0, 1, 0)]
        sage: [V.inject_weights(i,V.ambient_spaces()[i].fundamental_weights()[2]) for i in range(2)]
        [(1, 1, 0, 0, 0), (0, 0, 0, 1/2, 1/2)]

  `negative_roots`()

    EXAMPLES:

        sage: RootSystem("A1xA2").ambient_space().negative_roots()
        [(-1, 1, 0, 0, 0), (0, 0, -1, 1, 0), (0, 0, -1, 0, 1), (0, 0, 0, -1, 1)]

  `positive_roots`()

    EXAMPLES:

        sage: RootSystem("A1xA2").ambient_space().positive_roots()
        [(1, -1, 0, 0, 0), (0, 0, 1, -1, 0), (0, 0, 1, 0, -1), (0, 0, 0, 1, -1)]

  `simple_coroot`(i)

    EXAMPLES:

        sage: A = RootSystem("A1xB2").ambient_space()
        sage: A.simple_coroot(2)
        (0, 0, 1, -1)
        sage: A.simple_coroots()
        Finite family {1: (1, -1, 0, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 2)}

  `simple_root`(i)

    EXAMPLES:

        sage: A = RootSystem("A1xB2").ambient_space()
        sage: A.simple_root(2)
        (0, 0, 1, -1)
        sage: A.simple_roots()
        Finite family {1: (1, -1, 0, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 1)}

class `sage.combinat.root_system.type_reducible.``CartanType`(types)

  Bases: `sage.structure.sage_object.SageObject`, `sage.combinat.root_system.cartan_type.CartanType_abstract`

  A class for reducible Cartan types.

  Reducible root systems are ones that can be factored as direct products. Strictly speaking type \(D_2\) (corresponding to orthogonal groups of degree 4) is reducible since it is isomorphic to \(A_1\times A_1\). However type \(D_2\) is not built using this class for our purposes.

  INPUT:

  - `types` - a list of simple Cartan types

  EXAMPLES:

      sage: [t1,t2]=[CartanType(x) for x in ['A',1],['B',2]]
      sage: CartanType([t1,t2])
      A1xB2
      sage: t = CartanType("A2xB2")

  A reducible Cartan type is finite (resp. crystallographic, simply laced) if all its components are:

      sage: t.is_finite()
      True
      sage: t.is_crystallographic()
      True
      sage: t.is_simply_laced()
      False

  This is implemented by inserting the appropriate abstract super classes (see `_add_abstract_superclass()`):

      sage: t.__class__.mro()
      [<class 'sage.combinat.root_system.type_reducible.CartanType_with_superclass'>, <class 'sage.combinat.root_system.type_reducible.CartanType'>, <type 'sage.structure.sage_object.SageObject'>, <class 'sage.combinat.root_system.cartan_type.CartanType_finite'>, <class 'sage.combinat.root_system.cartan_type.CartanType_crystallographic'>, <class 'sage.combinat.root_system.cartan_type.CartanType_abstract'>, <type 'object'>]

  The index set of the reducible Cartan type is obtained by relabelling successively the nodes of the Dynkin diagrams of the components by 1,2,...:

      sage: t = CartanType(["A",4], ["BC",5,2], ["C",3])
      sage: t.index_set()
      (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)

      sage: t.dynkin_diagram()
      O---O---O---O
      1   2   3   4
      O=<=O---O---O---O=<=O
      5   6   7   8   9   10
      O---O=<=O
      11   12   13
      A4xBC5~xC3

  `AmbientSpace`

    alias of `AmbientSpace`

  `ascii_art`(label=<function <lambda> at 0xe4f3d10c>)

    Returns an ascii art representation of this reducible Cartan type

    EXAMPLES:

        sage: print CartanType("F4xA2").ascii_art(label = lambda x: x+2)
        O---O=>=O---O
        3   4   5   6
        O---O
        7   8

        sage: print CartanType(["BC",5,2], ["A",4]).ascii_art()
        O=<=O---O---O---O=<=O
        1   2   3   4   5   6
        O---O---O---O
        7   8   9   10

        sage: print CartanType(["A",4], ["BC",5,2], ["C",3]).ascii_art()
        O---O---O---O
        1   2   3   4
        O=<=O---O---O---O=<=O
        5   6   7   8   9   10
        O---O=<=O
        11   12   13

  `cartan_matrix`(subdivide=True)

    Return the Cartan matrix associated with `self`. By default the Cartan matrix is a subdivided block matrix showing the reducibility but the subdivision can be suppressed with the option `subdivide = False`.

    Todo

    Currently `subdivide` is currently ignored.

    EXAMPLES:

        sage: ct = CartanType("A2","B2")
        sage: ct.cartan_matrix()
        [ 2 -1| 0  0]
        [-1  2| 0  0]
        [-----+-----]
        [ 0  0| 2 -1]
        [ 0  0|-2  2]
        sage: ct.cartan_matrix(subdivide=False)
        [ 2 -1  0  0]
        [-1  2  0  0]
        [ 0  0  2 -1]
        [ 0  0 -2  2]

  `component_types`()

    A list of Cartan types making up the reducible type.

    EXAMPLES:

        sage: CartanType(['A',2],['B',2]).component_types()
        [['A', 2], ['B', 2]]

  `dual`()

    EXAMPLES:

        sage: CartanType("A2xB2").dual()
        A2xC2

  `dynkin_diagram`()

    Returns a Dynkin diagram for type reducible.

    EXAMPLES:

        sage: dd = CartanType("A2xB2xF4").dynkin_diagram()
        sage: dd
        O---O
        1   2
        O=>=O
        3   4
        O---O=>=O---O
        5   6   7   8
        A2xB2xF4
        sage: dd.edges()
        [(1, 2, 1), (2, 1, 1), (3, 4, 2), (4, 3, 1), (5, 6, 1), (6, 5, 1), (6, 7, 2), (7, 6, 1), (7, 8, 1), (8, 7, 1)]

        sage: CartanType("F4xA2").dynkin_diagram()
        O---O=>=O---O
        1   2   3   4
        O---O
        5   6
        F4xA2

  `index_set`()

    Implements `CartanType_abstract.index_set()`.

    For the moment, the index set is always of the form \(\{1, \ldots, n\}\).

    EXAMPLES:

        sage: CartanType("A2","A1").index_set()
        (1, 2, 3)

  `is_affine`()

    Report that this reducible Cartan type is not affine

    EXAMPLES:

        sage: CartanType(['A',2],['B',2]).is_affine()
        False

  `is_finite`()

    EXAMPLES:

        sage: ct1 = CartanType(['A',2],['B',2])
        sage: ct1.is_finite()
        True
        sage: ct2 = CartanType(['A',2],['B',2,1])
        sage: ct2.is_finite()
        False

    TESTS:

        sage: isinstance(ct1, sage.combinat.root_system.cartan_type.CartanType_finite)
        True
        sage: isinstance(ct2, sage.combinat.root_system.cartan_type.CartanType_finite)
        False

  `is_irreducible`()

    Report that this Cartan type is not irreducible.

    EXAMPLES:

        sage: ct = CartanType(['A',2],['B',2])
        sage: ct.is_irreducible()
        False

  `rank`()

    Returns the rank of self.

    EXAMPLES:

        sage: CartanType("A2","A1").rank()
        3

  `type`()

    Returns “reducible” since the type is reducible.

    EXAMPLES:

        sage: CartanType(['A',2],['B',2]).type()
        'reducible'

### Navigation

- index
- modules |
- next |
- previous |
- Combinatorics »
- Root Systems »
- Root System Types »