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- Trueand- checkis also- True, raise a- ValueErrorunless- Aand- Bare unitary and- frespects unit elements
- check– boolean (default:- True); check whether the given \(k\)-linear map really defines a (not necessarily unitary) \(k\)-algebra homomorphism
 - The algebras - Aand- Bmust 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 - Iunder- self.- INPUT: - I–- FiniteDimensionalAlgebraIdeal, 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