Unramified Extension Generic#
This file implements the shared functionality for unramified extensions.
AUTHORS:
David Roe
- class sage.rings.padics.unramified_extension_generic.UnramifiedExtensionGeneric(poly, prec, print_mode, names, element_class)#
Bases:
pAdicExtensionGeneric
An unramified extension of
or .- absolute_f()#
Return the degree of the residue field of this ring/field over its prime subfield.
EXAMPLES:
sage: K.<a> = Qq(3^5) # needs sage.libs.ntl sage: K.absolute_f() # needs sage.libs.ntl 5 sage: x = polygen(ZZ, 'x') sage: L.<pi> = Qp(3).extension(x^2 - 3) # needs sage.libs.ntl sage: L.absolute_f() # needs sage.libs.ntl 1
K.<a> = Qq(3^5) # needs sage.libs.ntl K.absolute_f() # needs sage.libs.ntl x = polygen(ZZ, 'x') L.<pi> = Qp(3).extension(x^2 - 3) # needs sage.libs.ntl L.absolute_f() # needs sage.libs.ntl
- discriminant(K=None)#
Return the discriminant of
self
over the subring .INPUT:
K
– a subring/subfield (defaults to the base ring).
EXAMPLES:
sage: R.<a> = Zq(125) # needs sage.libs.ntl sage: R.discriminant() # needs sage.libs.ntl Traceback (most recent call last): ... NotImplementedError
R.<a> = Zq(125) # needs sage.libs.ntl R.discriminant() # needs sage.libs.ntl
- gen(n=0)#
Return a generator for this unramified extension.
This is an element that satisfies the polynomial defining this extension. Such an element will reduce to a generator of the corresponding residue field extension.
EXAMPLES:
sage: R.<a> = Zq(125); R.gen() # needs sage.libs.ntl a + O(5^20)
R.<a> = Zq(125); R.gen() # needs sage.libs.ntl
- has_pth_root()#
Return whether or not
has a primitive -th root of unity.Since adjoining a
-th root of unity yields a totally ramified extension,self
will contain one if and only if the ground ring does.INPUT:
self
– a -adic ring
OUTPUT:
boolean – whether
self
has primitive -th root of unity.EXAMPLES:
sage: R.<a> = Zq(1024); R.has_pth_root() # needs sage.libs.ntl True sage: R.<a> = Zq(17^5); R.has_pth_root() # needs sage.libs.ntl False
R.<a> = Zq(1024); R.has_pth_root() # needs sage.libs.ntl R.<a> = Zq(17^5); R.has_pth_root() # needs sage.libs.ntl
- has_root_of_unity(n)#
Return whether or not
has a primitive -th root of unity.INPUT:
self
– a -adic ringn
– an integer
OUTPUT:
boolean
EXAMPLES:
sage: # needs sage.libs.ntl sage: R.<a> = Zq(37^8) sage: R.has_root_of_unity(144) True sage: R.has_root_of_unity(89) True sage: R.has_root_of_unity(11) False
# needs sage.libs.ntl R.<a> = Zq(37^8) R.has_root_of_unity(144) R.has_root_of_unity(89) R.has_root_of_unity(11)
- is_galois(K=None)#
Return
True
if this extension is Galois.Every unramified extension is Galois.
INPUT:
K
– a subring/subfield (defaults to the base ring).
EXAMPLES:
sage: R.<a> = Zq(125); R.is_galois() # needs sage.libs.ntl True
R.<a> = Zq(125); R.is_galois() # needs sage.libs.ntl
- residue_class_field()#
Returns the residue class field.
EXAMPLES:
sage: R.<a> = Zq(125); R.residue_class_field() # needs sage.libs.ntl Finite Field in a0 of size 5^3
R.<a> = Zq(125); R.residue_class_field() # needs sage.libs.ntl
- residue_ring(n)#
Return the quotient of the ring of integers by the
-th power of its maximal ideal.EXAMPLES:
sage: R.<a> = Zq(125) # needs sage.libs.ntl sage: R.residue_ring(1) # needs sage.libs.ntl Finite Field in a0 of size 5^3
R.<a> = Zq(125) # needs sage.libs.ntl R.residue_ring(1) # needs sage.libs.ntl
The following requires implementing more general Artinian rings:
sage: R.residue_ring(2) # needs sage.libs.ntl Traceback (most recent call last): ... NotImplementedError
R.residue_ring(2) # needs sage.libs.ntl
- uniformizer()#
Return a uniformizer for this extension.
Since this extension is unramified, a uniformizer for the ground ring will also be a uniformizer for this extension.
EXAMPLES:
sage: R.<a> = ZqCR(125) # needs sage.libs.ntl sage: R.uniformizer() # needs sage.libs.ntl 5 + O(5^21)
R.<a> = ZqCR(125) # needs sage.libs.ntl R.uniformizer() # needs sage.libs.ntl
- uniformizer_pow(n)#
Return the
-th power of the uniformizer ofself
(as an element ofself
).EXAMPLES:
sage: R.<a> = ZqCR(125) # needs sage.libs.ntl sage: R.uniformizer_pow(5) # needs sage.libs.ntl 5^5 + O(5^25)
R.<a> = ZqCR(125) # needs sage.libs.ntl R.uniformizer_pow(5) # needs sage.libs.ntl