Eisenstein Extension Generic#
This file implements the shared functionality for Eisenstein extensions.
AUTHORS:
David Roe
- class sage.rings.padics.eisenstein_extension_generic.EisensteinExtensionGeneric(poly, prec, print_mode, names, element_class)[source]#
Bases:
pAdicExtensionGeneric
Initializes
self
.EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2+7) # indirect doctest # needs sage.libs.ntl sage.rings.padics
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2)+Integer(7), names=('t',)); (t,) = B._first_ngens(1)# indirect doctest # needs sage.libs.ntl sage.rings.padics
- absolute_e()[source]#
Return the absolute ramification index of this ring or field
EXAMPLES:
sage: K.<a> = Qq(3^5) # needs sage.libs.ntl sage: K.absolute_e() # needs sage.libs.ntl 1 sage: x = polygen(ZZ, 'x') sage: L.<pi> = Qp(3).extension(x^2 - 3) # needs sage.libs.ntl sage: L.absolute_e() # needs sage.libs.ntl 2
>>> from sage.all import * >>> K = Qq(Integer(3)**Integer(5), names=('a',)); (a,) = K._first_ngens(1)# needs sage.libs.ntl >>> K.absolute_e() # needs sage.libs.ntl 1 >>> x = polygen(ZZ, 'x') >>> L = Qp(Integer(3)).extension(x**Integer(2) - Integer(3), names=('pi',)); (pi,) = L._first_ngens(1)# needs sage.libs.ntl >>> L.absolute_e() # needs sage.libs.ntl 2
- gen(n=0)[source]#
Return a generator for
self
as an extension of its ground ring.EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2 + 7) # needs sage.libs.ntl sage: B.gen() # needs sage.libs.ntl t + O(t^21)
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2) + Integer(7), names=('t',)); (t,) = B._first_ngens(1)# needs sage.libs.ntl >>> B.gen() # needs sage.libs.ntl t + O(t^21)
- inertia_subring()[source]#
Return the inertia subring.
Since an Eisenstein extension is totally ramified, this is just the ground field.
EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2 + 7) # needs sage.libs.ntl sage: B.inertia_subring() # needs sage.libs.ntl 7-adic Ring with capped relative precision 10
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2) + Integer(7), names=('t',)); (t,) = B._first_ngens(1)# needs sage.libs.ntl >>> B.inertia_subring() # needs sage.libs.ntl 7-adic Ring with capped relative precision 10
- residue_class_field()[source]#
Return the residue class field.
INPUT:
self
– a p-adic ring
OUTPUT:
the residue field
EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2 + 7) # needs sage.libs.ntl sage: B.residue_class_field() # needs sage.libs.ntl Finite Field of size 7
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2) + Integer(7), names=('t',)); (t,) = B._first_ngens(1)# needs sage.libs.ntl >>> B.residue_class_field() # needs sage.libs.ntl Finite Field of size 7
- residue_ring(n)[source]#
Return the quotient of the ring of integers by the \(n\)-th power of its maximal ideal.
EXAMPLES:
sage: S.<x> = ZZ[] sage: W.<w> = Zp(5).extension(x^2 - 5) # needs sage.libs.ntl sage: W.residue_ring(1) # needs sage.libs.ntl Ring of integers modulo 5
>>> from sage.all import * >>> S = ZZ['x']; (x,) = S._first_ngens(1) >>> W = Zp(Integer(5)).extension(x**Integer(2) - Integer(5), names=('w',)); (w,) = W._first_ngens(1)# needs sage.libs.ntl >>> W.residue_ring(Integer(1)) # needs sage.libs.ntl Ring of integers modulo 5
The following requires implementing more general Artinian rings:
sage: W.residue_ring(2) # needs sage.libs.ntl Traceback (most recent call last): ... NotImplementedError
>>> from sage.all import * >>> W.residue_ring(Integer(2)) # needs sage.libs.ntl Traceback (most recent call last): ... NotImplementedError
- uniformizer()[source]#
Return the uniformizer of
self
, i.e., a generator for the unique maximal ideal.EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2 + 7) # needs sage.libs.ntl sage: B.uniformizer() # needs sage.libs.ntl t + O(t^21)
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2) + Integer(7), names=('t',)); (t,) = B._first_ngens(1)# needs sage.libs.ntl >>> B.uniformizer() # needs sage.libs.ntl t + O(t^21)
- uniformizer_pow(n)[source]#
Return the \(n\)-th power of the uniformizer of
self
(as an element ofself
).EXAMPLES:
sage: A = Zp(7,10) sage: S.<x> = A[] # needs sage.libs.ntl sage: B.<t> = A.ext(x^2 + 7) # needs sage.libs.ntl sage: B.uniformizer_pow(5) # needs sage.libs.ntl t^5 + O(t^25)
>>> from sage.all import * >>> A = Zp(Integer(7),Integer(10)) >>> S = A['x']; (x,) = S._first_ngens(1)# needs sage.libs.ntl >>> B = A.ext(x**Integer(2) + Integer(7), names=('t',)); (t,) = B._first_ngens(1)# needs sage.libs.ntl >>> B.uniformizer_pow(Integer(5)) # needs sage.libs.ntl t^5 + O(t^25)