# 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)

An unramified extension of Qp or Zp.

discriminant(K=None)

Returns the discriminant of self over the subring K.

INPUTS:

- K -- a subring/subfield (defaults to the base ring).


EXAMPLES:

sage: R.<a> = Zq(125)
sage: R.discriminant()
Traceback (most recent call last):
...
NotImplementedError

gen(n=0)

Returns 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()
a + O(5^20)

has_pth_root()

Returns whether or not $$\ZZ_p$$ has a primitive $$p^{\mbox{th}}$$ root of unity.

Since adjoining a $$p^{\mbox{th}}$$ root of unity yields a totally ramified extension, self will contain one if and only if the ground ring does.

INPUT:

• self – a p-adic ring

OUTPUT:

• boolean – whether self has primitive $$p^{\mbox{th}}$$ root of unity.

EXAMPLES:

sage: R.<a> = Zq(1024); R.has_pth_root()
True
sage: R.<a> = Zq(17^5); R.has_pth_root()
False

has_root_of_unity(n)

Returns whether or not $$\ZZ_p$$ has a primitive $$n^{\mbox{th}}$$ root of unity.

INPUT:

• self – a p-adic ring
• n – an integer

OUTPUT:

• boolean – whether self has primitive $$n^{\mbox{th}}$$ root of unity

EXAMPLES:

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

inertia_degree(K=None)

Returns the inertia degree of self over the subring K.

INPUTS:

- K -- a subring (or subfield) of self.  Defaults to the
base.


EXAMPLES:

sage: R.<a> = Zq(125); R.inertia_degree()
3

is_galois(K=None)

Returns True if this extension is Galois.

Every unramified extension is Galois.

INPUTS:

- K -- a subring/subfield (defaults to the base ring).


EXAMPLES:

sage: R.<a> = Zq(125); R.is_galois()
True

ramification_index(K=None)

Returns the ramification index of self over the subring K.

INPUTS:

- K -- a subring (or subfield) of self.  Defaults to the
base.


EXAMPLES:

sage: R.<a> = Zq(125); R.ramification_index()
1

residue_class_field()

Returns the residue class field.

EXAMPLES:

sage: R.<a> = Zq(125); R.residue_class_field()
Finite Field in a0 of size 5^3

uniformizer()

Returns 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)
sage: R.uniformizer()
5 + O(5^21)

uniformizer_pow(n)

Returns the nth power of the uniformizer of self (as an element of self).

EXAMPLES:

sage: R.<a> = ZqCR(125)
sage: R.uniformizer_pow(5)
5^5 + O(5^25)


#### Previous topic

Eisenstein Extension Generic

#### Next topic

$$p$$-Adic Base Leaves