# Hopf algebras with basis¶

class sage.categories.hopf_algebras_with_basis.HopfAlgebrasWithBasis(base_category)

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 algebras with basis over Rational Field,
Category of coalgebras 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
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"
sage: A.category()
Category of hopf algebras with basis over Rational Field

sage: A.one_basis()
()
sage: A.one()
B[()]

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

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

sage: A.product           # todo: not quite ...
<bound method MyGroupAlgebra_with_category._product_from_product_on_basis_multiply of A>
sage: A.product(b,b)
B[()]

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

sage: TestSuite(A).run(verbose=True)
running ._test_additive_associativity() . . . pass
running ._test_an_element() . . . pass
running ._test_antipode() . . . pass
running ._test_associativity() . . . pass
running ._test_category() . . . pass
running ._test_characteristic() . . . 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_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_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__
<class 'sage.categories.examples.hopf_algebras_with_basis.MyGroupAlgebra_with_category'>
sage: A.element_class
<class 'sage.combinat.free_module.MyGroupAlgebra_with_category.element_class'>


Let us look at the code for implementing A:

sage: A??                       # todo: not implemented

TESTS:

sage: TestSuite(A).run()
sage: TestSuite(C).run()

class ElementMethods
HopfAlgebrasWithBasis.FiniteDimensional

class HopfAlgebrasWithBasis.ParentMethods
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
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()
sage: [a,b] = A.algebra_generators()
sage: a, A.antipode(a)
(B[(1,2,3)], B[(1,3,2)])
sage: b, A.antipode(b)
(B[(1,3)], B[(1,3)])


TESTS:

sage: all(A.antipode(x) * x == A.one() for x in A.basis())
True

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()
sage: W = A.basis().keys(); W
Dihedral group of order 6 as a permutation group
sage: w = W.an_element(); w
(1,2,3)
sage: A.antipode_on_basis(w)
B[(1,3,2)]

class HopfAlgebrasWithBasis.TensorProducts(category, *args)

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

class ElementMethods
class HopfAlgebrasWithBasis.TensorProducts.ParentMethods
HopfAlgebrasWithBasis.TensorProducts.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]

HopfAlgebrasWithBasis.example(G=None)

Returns an example of algebra with basis:

sage: HopfAlgebrasWithBasis(QQ[x]).example()
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))
An example of Hopf algebra with basis: the group algebra of the Symmetric group of order 4! as a permutation group over Rational Field


Hopf algebras

#### Next topic

Infinite Enumerated Sets