Morphisms Between Finite Algebras

class sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism.FiniteDimensionalAlgebraHomset(R, S, category=None)[source]

Bases: RingHomset_generic

Set of morphisms between two finite-dimensional algebras.

zero()[source]

Construct the zero morphism of self.

EXAMPLES:

sage: A = FiniteDimensionalAlgebra(QQ, [Matrix([1])])
sage: B = FiniteDimensionalAlgebra(QQ, [Matrix([[1, 0], [0, 1]]),
....:                                   Matrix([[0, 1], [0, 0]])])
sage: H = Hom(A, B)
sage: H.zero()
Morphism from Finite-dimensional algebra of degree 1 over Rational Field to
 Finite-dimensional algebra of degree 2 over Rational Field given by matrix
[0 0]
>>> from sage.all import *
>>> A = FiniteDimensionalAlgebra(QQ, [Matrix([Integer(1)])])
>>> B = FiniteDimensionalAlgebra(QQ, [Matrix([[Integer(1), Integer(0)], [Integer(0), Integer(1)]]),
...                                   Matrix([[Integer(0), Integer(1)], [Integer(0), Integer(0)]])])
>>> H = Hom(A, B)
>>> H.zero()
Morphism from Finite-dimensional algebra of degree 1 over Rational Field to
 Finite-dimensional algebra of degree 2 over Rational Field given by matrix
[0 0]
class sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism.FiniteDimensionalAlgebraMorphism(parent, f, check=True, unitary=True)[source]

Bases: RingHomomorphism_im_gens

Create a morphism between two finite-dimensional algebras.

INPUT:

  • parent – the parent homset

  • f – matrix of the underlying \(k\)-linear map

  • unitary – boolean (default: True); if True and check is also True, raise a ValueError unless A and B are unitary and f respects unit elements

  • check – boolean (default: True); check whether the given \(k\)-linear map really defines a (not necessarily unitary) \(k\)-algebra homomorphism

The algebras A and B must be defined over the same base field.

EXAMPLES:

sage: from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism import FiniteDimensionalAlgebraMorphism
sage: A = FiniteDimensionalAlgebra(QQ, [Matrix([[1, 0], [0, 1]]),
....:                                   Matrix([[0, 1], [0, 0]])])
sage: B = FiniteDimensionalAlgebra(QQ, [Matrix([1])])
sage: H = Hom(A, B)
sage: f = H(Matrix([[1], [0]]))
sage: f.domain() is A
True
sage: f.codomain() is B
True
sage: f(A.basis()[0])
e
sage: f(A.basis()[1])
0
>>> from sage.all import *
>>> from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism import FiniteDimensionalAlgebraMorphism
>>> A = FiniteDimensionalAlgebra(QQ, [Matrix([[Integer(1), Integer(0)], [Integer(0), Integer(1)]]),
...                                   Matrix([[Integer(0), Integer(1)], [Integer(0), Integer(0)]])])
>>> B = FiniteDimensionalAlgebra(QQ, [Matrix([Integer(1)])])
>>> H = Hom(A, B)
>>> f = H(Matrix([[Integer(1)], [Integer(0)]]))
>>> f.domain() is A
True
>>> f.codomain() is B
True
>>> f(A.basis()[Integer(0)])
e
>>> f(A.basis()[Integer(1)])
0

Todo

An example illustrating unitary flag.

inverse_image(I)[source]

Return the inverse image of I under self.

INPUT:

  • IFiniteDimensionalAlgebraIdeal, an ideal of self.codomain()

OUTPUT: FiniteDimensionalAlgebraIdeal, the inverse image of \(I\) under self

EXAMPLES:

sage: cat = CommutativeAlgebras(QQ).FiniteDimensional().WithBasis()
sage: A = FiniteDimensionalAlgebra(QQ, [Matrix([[1, 0], [0, 1]]),
....:                                   Matrix([[0, 1], [0, 0]])],
....:                              category=cat)
sage: I = A.maximal_ideal()                                                 # needs sage.libs.pari
sage: q = A.quotient_map(I)                                                 # needs sage.libs.pari
sage: B = q.codomain()                                                      # needs sage.libs.pari
sage: q.inverse_image(B.zero_ideal()) == I                                  # needs sage.libs.pari
True
>>> from sage.all import *
>>> cat = CommutativeAlgebras(QQ).FiniteDimensional().WithBasis()
>>> A = FiniteDimensionalAlgebra(QQ, [Matrix([[Integer(1), Integer(0)], [Integer(0), Integer(1)]]),
...                                   Matrix([[Integer(0), Integer(1)], [Integer(0), Integer(0)]])],
...                              category=cat)
>>> I = A.maximal_ideal()                                                 # needs sage.libs.pari
>>> q = A.quotient_map(I)                                                 # needs sage.libs.pari
>>> B = q.codomain()                                                      # needs sage.libs.pari
>>> q.inverse_image(B.zero_ideal()) == I                                  # needs sage.libs.pari
True
matrix()[source]

Return the matrix of self.

EXAMPLES:

sage: A = FiniteDimensionalAlgebra(QQ, [Matrix([[1, 0], [0, 1]]),
....:                                   Matrix([[0, 1], [0, 0]])])
sage: B = FiniteDimensionalAlgebra(QQ, [Matrix([1])])
sage: M = Matrix([[1], [0]])
sage: H = Hom(A, B)
sage: f = H(M)
sage: f.matrix() == M
True
>>> from sage.all import *
>>> A = FiniteDimensionalAlgebra(QQ, [Matrix([[Integer(1), Integer(0)], [Integer(0), Integer(1)]]),
...                                   Matrix([[Integer(0), Integer(1)], [Integer(0), Integer(0)]])])
>>> B = FiniteDimensionalAlgebra(QQ, [Matrix([Integer(1)])])
>>> M = Matrix([[Integer(1)], [Integer(0)]])
>>> H = Hom(A, B)
>>> f = H(M)
>>> f.matrix() == M
True