Homspaces between free modules¶
EXAMPLES: We create \(\mathrm{End}(\ZZ^2)\) and compute a basis.
sage: M = FreeModule(IntegerRing(),2)
sage: E = End(M)
sage: B = E.basis()
sage: len(B)
4
sage: B[0]
Free module morphism defined by the matrix
[1 0]
[0 0]
Domain: Ambient free module of rank 2 over the principal ideal domain ...
Codomain: Ambient free module of rank 2 over the principal ideal domain ...
We create \(\mathrm{Hom}(\ZZ^3, \ZZ^2)\) and compute a basis.
sage: V3 = FreeModule(IntegerRing(),3)
sage: V2 = FreeModule(IntegerRing(),2)
sage: H = Hom(V3,V2)
sage: H
Set of Morphisms from Ambient free module of rank 3 over
the principal ideal domain Integer Ring
to Ambient free module of rank 2
over the principal ideal domain Integer Ring
in Category of finite dimensional modules with basis over
(euclidean domains and infinite enumerated sets and metric spaces)
sage: B = H.basis()
sage: len(B)
6
sage: B[0]
Free module morphism defined by the matrix
[1 0]
[0 0]
[0 0]...
-
class
sage.modules.free_module_homspace.
FreeModuleHomspace
(X, Y, category=None, check=True, base=None)¶ Bases:
sage.categories.homset.HomsetWithBase
-
basis
()¶ Return a basis for this space of free module homomorphisms.
OUTPUT:
tuple
EXAMPLES:
sage: H = Hom(ZZ^2, ZZ^1) sage: H.basis() (Free module morphism defined by the matrix [1] [0] Domain: Ambient free module of rank 2 over the principal ideal domain ... Codomain: Ambient free module of rank 1 over the principal ideal domain ..., Free module morphism defined by the matrix [0] [1] Domain: Ambient free module of rank 2 over the principal ideal domain ... Codomain: Ambient free module of rank 1 over the principal ideal domain ...)
-
identity
()¶ Return identity morphism in an endomorphism ring.
EXAMPLES:
sage: V=FreeModule(ZZ,5) sage: H=V.Hom(V) sage: H.identity() Free module morphism defined by the matrix [1 0 0 0 0] [0 1 0 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1] Domain: Ambient free module of rank 5 over the principal ideal domain ... Codomain: Ambient free module of rank 5 over the principal ideal domain ...
-
zero
()¶ EXAMPLES:
sage: E = ZZ^2 sage: F = ZZ^3 sage: H = Hom(E, F) sage: f = H.zero() sage: f Free module morphism defined by the matrix [0 0 0] [0 0 0] Domain: Ambient free module of rank 2 over the principal ideal domain Integer Ring Codomain: Ambient free module of rank 3 over the principal ideal domain Integer Ring sage: f(E.an_element()) (0, 0, 0) sage: f(E.an_element()) == F.zero() True
-
-
sage.modules.free_module_homspace.
is_FreeModuleHomspace
(x)¶ Return
True
ifx
is a free module homspace.EXAMPLES:
Notice that every vector space is a free module, but when we construct a set of morphisms between two vector spaces, it is a
VectorSpaceHomspace
, which qualifies as aFreeModuleHomspace
, since the former is special case of the latter.sage: H = Hom(ZZ^3, ZZ^2) sage: type(H) <class ‘sage.modules.free_module_homspace.FreeModuleHomspace_with_category’> sage: sage.modules.free_module_homspace.is_FreeModuleHomspace(H) True
sage: K = Hom(QQ^3, ZZ^2) sage: type(K) <class ‘sage.modules.free_module_homspace.FreeModuleHomspace_with_category’> sage: sage.modules.free_module_homspace.is_FreeModuleHomspace(K) True
sage: L = Hom(ZZ^3, QQ^2) sage: type(L) <class ‘sage.modules.free_module_homspace.FreeModuleHomspace_with_category’> sage: sage.modules.free_module_homspace.is_FreeModuleHomspace(L) True
sage: P = Hom(QQ^3, QQ^2) sage: type(P) <class ‘sage.modules.vector_space_homspace.VectorSpaceHomspace_with_category’> sage: sage.modules.free_module_homspace.is_FreeModuleHomspace(P) True
sage: sage.modules.free_module_homspace.is_FreeModuleHomspace(‘junk’) False