Hopf algebras with basis#

class sage.categories.hopf_algebras_with_basis.HopfAlgebrasWithBasis(base_category)#

Bases: CategoryWithAxiom_over_base_ring

The category of Hopf algebras with a distinguished basis

EXAMPLES:

sage: C = HopfAlgebrasWithBasis(QQ)
sage: C
Category of hopf algebras with basis over Rational Field
sage: C.super_categories()
[Category of hopf algebras over Rational Field,
 Category of bialgebras with basis over Rational Field]

We now show how to use a simple Hopf algebra, namely the group algebra of the dihedral group (see also AlgebrasWithBasis):

sage: A = C.example(); A                                                        # optional - sage.groups
An example of Hopf algebra with basis: the group algebra of the
 Dihedral group of order 6 as a permutation group over Rational Field
sage: A.__custom_name = "A"                                                     # optional - sage.groups
sage: A.category()                                                              # optional - sage.groups
Category of finite dimensional hopf algebras with basis over Rational Field

sage: A.one_basis()                                                             # optional - sage.groups
()
sage: A.one()                                                                   # optional - sage.groups
B[()]

sage: A.base_ring()                                                             # optional - sage.groups
Rational Field
sage: A.basis().keys()                                                          # optional - sage.groups
Dihedral group of order 6 as a permutation group

sage: [a,b] = A.algebra_generators()                                            # optional - sage.groups
sage: a, b                                                                      # optional - sage.groups
(B[(1,2,3)], B[(1,3)])
sage: a^3, b^2                                                                  # optional - sage.groups
(B[()], B[()])
sage: a*b                                                                       # optional - sage.groups
B[(1,2)]

sage: A.product           # todo: not quite ...                                 # optional - sage.groups
<bound method MagmaticAlgebras.WithBasis.ParentMethods._product_from_product_on_basis_multiply of A>
sage: A.product(b, b)                                                           # optional - sage.groups
B[()]

sage: A.zero().coproduct()                                                      # optional - sage.groups
0
sage: A.zero().coproduct().parent()                                             # optional - sage.groups
A # A
sage: a.coproduct()                                                             # optional - sage.groups
B[(1,2,3)] # B[(1,2,3)]

sage: TestSuite(A).run(verbose=True)                                            # optional - sage.groups
running ._test_additive_associativity() . . . pass
running ._test_an_element() . . . pass
running ._test_antipode() . . . pass
running ._test_associativity() . . . pass
running ._test_cardinality() . . . pass
running ._test_category() . . . pass
running ._test_characteristic() . . . pass
running ._test_construction() . . . pass
running ._test_distributivity() . . . pass
running ._test_elements() . . .
  Running the test suite of self.an_element()
  running ._test_category() . . . pass
  running ._test_eq() . . . pass
  running ._test_new() . . . pass
  running ._test_nonzero_equal() . . . pass
  running ._test_not_implemented_methods() . . . pass
  running ._test_pickling() . . . pass
  pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_one() . . . pass
running ._test_pickling() . . . pass
running ._test_prod() . . . pass
running ._test_some_elements() . . . pass
running ._test_zero() . . . pass
sage: A.__class__                                                               # optional - sage.groups
<class 'sage.categories.examples.hopf_algebras_with_basis.MyGroupAlgebra_with_category'>
sage: A.element_class                                                           # optional - sage.groups
<class 'sage.categories.examples.hopf_algebras_with_basis.MyGroupAlgebra_with_category.element_class'>

Let us look at the code for implementing A:

sage: A??                       # todo: not implemented                         # optional - sage.groups
class ElementMethods#

Bases: object

Filtered#

alias of FilteredHopfAlgebrasWithBasis

FiniteDimensional#

alias of FiniteDimensionalHopfAlgebrasWithBasis

Graded#

alias of GradedHopfAlgebrasWithBasis

class ParentMethods#

Bases: object

antipode()#

The antipode of this Hopf algebra.

If antipode_basis() is available, this constructs the antipode morphism from self to self by extending it by linearity. Otherwise, self.antipode_by_coercion() is used, if available.

EXAMPLES:

sage: A = HopfAlgebrasWithBasis(ZZ).example(); A                        # optional - sage.groups
An example of Hopf algebra with basis: the group algebra of the
 Dihedral group of order 6 as a permutation group over Integer Ring
sage: A = HopfAlgebrasWithBasis(QQ).example()                           # optional - sage.groups
sage: [a,b] = A.algebra_generators()                                    # optional - sage.groups
sage: a, A.antipode(a)                                                  # optional - sage.groups
(B[(1,2,3)], B[(1,3,2)])
sage: b, A.antipode(b)                                                  # optional - sage.groups
(B[(1,3)], B[(1,3)])
antipode_on_basis(x)#

The antipode of the Hopf algebra on the basis (optional)

INPUT:

  • x – an index of an element of the basis of self

Returns the antipode of the basis element indexed by x.

If this method is implemented, then antipode() is defined from this by linearity.

EXAMPLES:

sage: A = HopfAlgebrasWithBasis(QQ).example()                           # optional - sage.groups
sage: W = A.basis().keys(); W                                           # optional - sage.groups
Dihedral group of order 6 as a permutation group
sage: w = W.gen(0); w                                                   # optional - sage.groups
(1,2,3)
sage: A.antipode_on_basis(w)                                            # optional - sage.groups
B[(1,3,2)]
Super#

alias of SuperHopfAlgebrasWithBasis

class TensorProducts(category, *args)#

Bases: TensorProductsCategory

The category of hopf algebras with basis constructed by tensor product of hopf algebras with basis

class ElementMethods#

Bases: object

class ParentMethods#

Bases: object

extra_super_categories()#

EXAMPLES:

sage: C = HopfAlgebrasWithBasis(QQ).TensorProducts()
sage: C.extra_super_categories()
[Category of hopf algebras with basis over Rational Field]
sage: sorted(C.super_categories(), key=str)
[Category of hopf algebras with basis over Rational Field,
 Category of tensor products of algebras with basis over Rational Field,
 Category of tensor products of hopf algebras over Rational Field]
example(G=None)#

Returns an example of algebra with basis:

sage: HopfAlgebrasWithBasis(QQ['x']).example()                              # optional - sage.groups
An example of Hopf algebra with basis: the group algebra of the
Dihedral group of order 6 as a permutation group
over Univariate Polynomial Ring in x over Rational Field

An other group can be specified as optional argument:

sage: HopfAlgebrasWithBasis(QQ).example(SymmetricGroup(4))                  # optional - sage.groups
An example of Hopf algebra with basis: the group algebra of the
Symmetric group of order 4! as a permutation group over Rational Field