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- Initialize - 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 - selfas 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 of- self).- 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)