Non-unital non-associative algebras¶
-
class
sage.categories.magmatic_algebras.
MagmaticAlgebras
(base, name=None)¶ Bases:
sage.categories.category_types.Category_over_base_ring
The category of algebras over a given base ring.
An algebra over a ring \(R\) is a module over \(R\) endowed with a bilinear multiplication.
Warning
MagmaticAlgebras
will eventually replace the currentAlgebras
for consistency with e.g. Wikipedia article Algebras which assumes neither associativity nor the existence of a unit (see trac ticket #15043).EXAMPLES:
sage: from sage.categories.magmatic_algebras import MagmaticAlgebras sage: C = MagmaticAlgebras(ZZ); C Category of magmatic algebras over Integer Ring sage: C.super_categories() [Category of additive commutative additive associative additive unital distributive magmas and additive magmas, Category of modules over Integer Ring]
-
Associative
¶ alias of
sage.categories.associative_algebras.AssociativeAlgebras
-
class
ParentMethods
¶ Bases:
object
-
algebra_generators
()¶ Return a family of generators of this algebra.
EXAMPLES:
sage: F = AlgebrasWithBasis(QQ).example(); F An example of an algebra with basis: the free algebra on the generators ('a', 'b', 'c') over Rational Field sage: F.algebra_generators() Family (B[word: a], B[word: b], B[word: c])
-
-
Unital
¶
-
class
WithBasis
(base_category)¶ Bases:
sage.categories.category_with_axiom.CategoryWithAxiom_over_base_ring
-
class
FiniteDimensional
(base_category)¶ Bases:
sage.categories.category_with_axiom.CategoryWithAxiom_over_base_ring
-
class
ParentMethods
¶ Bases:
object
-
derivations_basis
()¶ Return a basis for the Lie algebra of derivations of
self
as matrices.A derivation \(D\) of an algebra is an endomorphism of \(A\) such that
\[D(ab) = D(a) b + a D(b)\]for all \(a, b \in A\). The set of all derivations form a Lie algebra.
EXAMPLES:
We construct the Heisenberg Lie algebra as a multiplicative algebra:
sage: p_mult = matrix([[0,0,0],[0,0,-1],[0,0,0]]) sage: q_mult = matrix([[0,0,1],[0,0,0],[0,0,0]]) sage: A = algebras.FiniteDimensional(QQ, ....: [p_mult,q_mult,matrix(QQ,3,3)], 'p,q,z') sage: A.inject_variables() Defining p, q, z sage: p*q z sage: q*p -z sage: A.derivations_basis() ( [1 0 0] [0 1 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [1 0 0] [0 1 0] [0 0 0] [0 0 0] [0 0 1], [0 0 0], [0 0 0], [0 0 1], [1 0 0], [0 1 0] )
We construct another example using the exterior algebra and verify we obtain a derivation:
sage: A = algebras.Exterior(QQ, 1) sage: A.derivations_basis() ( [0 0] [0 1] ) sage: D = A.module_morphism(matrix=A.derivations_basis()[0], codomain=A) sage: one, e = A.basis() sage: all(D(a*b) == D(a) * b + a * D(b) ....: for a in A.basis() for b in A.basis()) True
REFERENCES:
-
-
class
-
class
ParentMethods
¶ Bases:
object
-
algebra_generators
()¶ Return generators for this algebra.
This default implementation returns the basis of this algebra.
OUTPUT: a family
EXAMPLES:
sage: D4 = DescentAlgebra(QQ, 4).B() sage: D4.algebra_generators() Lazy family (...)_{i in Compositions of 4} sage: R.<x> = ZZ[] sage: P = PartitionAlgebra(1, x, R) sage: P.algebra_generators() Lazy family (Term map from Partition diagrams of order 1 to Partition Algebra of rank 1 with parameter x over Univariate Polynomial Ring in x over Integer Ring(i))_{i in Partition diagrams of order 1}
-
product
()¶ The product of the algebra, as per
Magmas.ParentMethods.product()
By default, this is implemented using one of the following methods, in the specified order:
EXAMPLES:
sage: A = AlgebrasWithBasis(QQ).example() sage: a, b, c = A.algebra_generators() sage: A.product(a + 2*b, 3*c) 3*B[word: ac] + 6*B[word: bc]
-
product_on_basis
(i, j)¶ The product of the algebra on the basis (optional).
INPUT:
i
,j
– the indices of two elements of the basis ofself
Return the product of the two corresponding basis elements indexed by
i
andj
.If implemented,
product()
is defined from it by bilinearity.EXAMPLES:
sage: A = AlgebrasWithBasis(QQ).example() sage: Word = A.basis().keys() sage: A.product_on_basis(Word("abc"),Word("cba")) B[word: abccba]
-
-
class
-
additional_structure
()¶ Return
None
.Indeed, the category of (magmatic) algebras defines no new structure: a morphism of modules and of magmas between two (magmatic) algebras is a (magmatic) algebra morphism.
See also
Todo
This category should be a
CategoryWithAxiom
, the axiom specifying the compatibility between the magma and module structure.EXAMPLES:
sage: from sage.categories.magmatic_algebras import MagmaticAlgebras sage: MagmaticAlgebras(ZZ).additional_structure()
-
super_categories
()¶ EXAMPLES:
sage: from sage.categories.magmatic_algebras import MagmaticAlgebras sage: MagmaticAlgebras(ZZ).super_categories() [Category of additive commutative additive associative additive unital distributive magmas and additive magmas, Category of modules over Integer Ring] sage: from sage.categories.additive_semigroups import AdditiveSemigroups sage: MagmaticAlgebras(ZZ).is_subcategory((AdditiveSemigroups() & Magmas()).Distributive()) True
-