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 homsetf
– matrix of the underlying \(k\)-linear mapunitary
– boolean (default:True
); ifTrue
andcheck
is alsoTrue
, raise aValueError
unlessA
andB
are unitary andf
respects unit elementscheck
– boolean (default:True
); check whether the given \(k\)-linear map really defines a (not necessarily unitary) \(k\)-algebra homomorphism
The algebras
A
andB
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
underself
.INPUT:
I
–FiniteDimensionalAlgebraIdeal
, an ideal ofself.codomain()
OUTPUT:
FiniteDimensionalAlgebraIdeal
, the inverse image of \(I\) underself
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