Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
""" Structure maps for finite fields
This module provides classes for isomorphisms between finite fields and vector spaces.
AUTHORS:
- Kwankyu Lee (2017-11-07): initial version
"""
#***************************************************************************** # Copyright (C) 2017 Kwankyu <ekwankyu@gmail.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # http://www.gnu.org/licenses/ #*****************************************************************************
""" Base class of the vector space isomorphism between a finite field and a vector space over a subfield of the finite field. """ """ Return the string representation of this isomorphism between a finite field and a vector space.
EXAMPLES::
sage: E = GF(16) sage: F = GF(4) sage: V, phi, psi = E.vector_space(E, map=True) sage: phi Isomorphism: From: Vector space of dimension 1 over Finite Field in z4 of size 2^4 To: Finite Field in z4 of size 2^4
"""
""" EXAMPLES::
sage: E = GF(9) sage: F = GF(3) sage: V, phi, psi = E.vector_space(E, map=True) sage: phi.is_injective() True """
""" EXAMPLES::
sage: E = GF(9) sage: F = GF(3) sage: V, phi, psi = E.vector_space(E, map=True) sage: phi.is_surjective() True """
""" Isomorphisms from vector spaces to finite fields. """ """ Initialize.
INPUT:
- ``V`` -- vector space
- ``K`` -- finite field
- ``C`` -- matrix
EXAMPLES::
sage: E = GF(16) sage: F = GF(4) sage: V, phi, psi = E.vector_space(E, map=True) sage: phi Isomorphism: From: Vector space of dimension 1 over Finite Field in z4 of size 2^4 To: Finite Field in z4 of size 2^4 """ C = C.__copy__() C.set_immutable()
r""" TESTS::
sage: E = GF(64) sage: F = GF(4) sage: V, phi, psi = E.vector_space(F, map=True) sage: phi(V.zero()) 0 sage: [phi(v) for v in V.basis()] [1, z6, z6^2] """
# 1x1 matrix return self._C[0][0] * v[0] else: # expand v as a vector over GF(p)
""" Isomorphisms from finite fields to vector spaces """ """ Initialize.
INPUT:
- ``K`` -- finite field GF((p^m)^n)
- ``V`` -- vector space of rank n over GF(p^m)
- ``C`` -- matrix
EXAMPLES::
sage: E = GF(16) sage: F = GF(4) sage: V, phi, psi = E.vector_space(E, map=True) sage: psi Isomorphism: From: Finite Field in z4 of size 2^4 To: Vector space of dimension 1 over Finite Field in z4 of size 2^4 """ C = C.__copy__() C.set_immutable()
r""" TESTS::
sage: E = GF(64) sage: F = GF(4) sage: V, phi, psi = E.vector_space(F, map=True) sage: psi(E.zero()) (0, 0, 0) sage: psi(E.one()) (1, 0, 0) sage: psi(E.gen()) (0, 1, 0) """ else: return w
|