Space of pseudomorphisms of free modules¶
AUTHORS:
- Xavier Caruso, Yossef Musleh (2024-09): initial version 
- class sage.modules.free_module_pseudohomspace.FreeModulePseudoHomspace(domain, codomain, ore)[source]¶
- Bases: - UniqueRepresentation,- HomsetWithBase- This class implements the space of pseudomorphisms with a fixed twist. - For free modules, the elements of a pseudomorphism correspond to matrices which define the mapping on elements of a basis. - This class is not supposed to be instantiated directly; the user should use instead the method - sage.rings.module.free_module.FreeModule_generic.pseudoHom()to create a space of pseudomorphisms.- Element[source]¶
- alias of - FreeModulePseudoMorphism
 - basis(side='left')[source]¶
- Return a basis for the underlying matrix space. - The result does not depend on the \(side\) of the homspace, i.e. if matrices are acted upon on the left or on the right. - EXAMPLES: - sage: Fq = GF(7^3) sage: Frob = Fq.frobenius_endomorphism() sage: V = Fq^2 sage: PHS = V.pseudoHom(Frob) sage: PHS.basis() [Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [1 0] [0 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 1] [0 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 0] [1 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 0] [0 1] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3] - >>> from sage.all import * >>> Fq = GF(Integer(7)**Integer(3)) >>> Frob = Fq.frobenius_endomorphism() >>> V = Fq**Integer(2) >>> PHS = V.pseudoHom(Frob) >>> PHS.basis() [Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [1 0] [0 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 1] [0 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 0] [1 0] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3, Free module pseudomorphism (twisted by z3 |--> z3^7) defined by the matrix [0 0] [0 1] Domain: Vector space of dimension 2 over Finite Field in z3 of size 7^3 Codomain: Vector space of dimension 2 over Finite Field in z3 of size 7^3] 
 - matrix_space()[source]¶
- Return the matrix space used for representing the pseudomorphisms in this space. - EXAMPLES: - sage: Fq.<z> = GF(7^3) sage: Frob = Fq.frobenius_endomorphism() sage: V = Fq^2 sage: W = Fq^3 sage: H = V.pseudoHom(Frob, codomain=W) sage: H.matrix_space() Full MatrixSpace of 2 by 3 dense matrices over Finite Field in z of size 7^3 - >>> from sage.all import * >>> Fq = GF(Integer(7)**Integer(3), names=('z',)); (z,) = Fq._first_ngens(1) >>> Frob = Fq.frobenius_endomorphism() >>> V = Fq**Integer(2) >>> W = Fq**Integer(3) >>> H = V.pseudoHom(Frob, codomain=W) >>> H.matrix_space() Full MatrixSpace of 2 by 3 dense matrices over Finite Field in z of size 7^3 
 - ore_ring(var='x')[source]¶
- Return the underlying Ore polynomial ring, that is the Ore polynomial ring over the base field twisted by the twisting morphism and the twisting derivation attached to this homspace. - INPUT: - var– string (default:- x) the name of the variable
 - EXAMPLES: - sage: Fq.<z> = GF(7^3) sage: Frob = Fq.frobenius_endomorphism() sage: V = Fq^2 sage: H = V.pseudoHom(Frob) sage: H.ore_ring() Ore Polynomial Ring in x over Finite Field in z of size 7^3 twisted by z |--> z^7 sage: H.ore_ring('y') Ore Polynomial Ring in y over Finite Field in z of size 7^3 twisted by z |--> z^7 - >>> from sage.all import * >>> Fq = GF(Integer(7)**Integer(3), names=('z',)); (z,) = Fq._first_ngens(1) >>> Frob = Fq.frobenius_endomorphism() >>> V = Fq**Integer(2) >>> H = V.pseudoHom(Frob) >>> H.ore_ring() Ore Polynomial Ring in x over Finite Field in z of size 7^3 twisted by z |--> z^7 >>> H.ore_ring('y') Ore Polynomial Ring in y over Finite Field in z of size 7^3 twisted by z |--> z^7