A common superclass for all extensions of Qp and Zp.

AUTHORS:

• David Roe

Initialization

EXAMPLES:

sage: R = Zp(5,5)
sage: S.<x> = R[]
sage: f = x^5 + 75*x^3 - 15*x^2 +125*x - 5
sage: W.<w> = R.ext(f) #indirect doctest

defining_polynomial()

Returns the polynomial defining this extension.

EXAMPLES:

sage: R = Zp(5,5)
sage: S.<x> = R[]
sage: f = x^5 + 75*x^3 - 15*x^2 +125*x - 5
sage: W.<w> = R.ext(f)
sage: W.defining_polynomial()
(1 + O(5^5))*x^5 + (O(5^6))*x^4 + (3*5^2 + O(5^6))*x^3 + (2*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + O(5^6))*x^2 + (5^3 + O(5^6))*x + (4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + O(5^6))

degree()

Returns the degree of this extension.

EXAMPLES:

sage: R.<a> = Zq(125); R.degree()
3
sage: R = Zp(5); S.<x> = ZZ[]; f = x^5 - 25*x^3 + 5; W.<w> = R.ext(f)
sage: W.degree()
5

fraction_field(print_mode=None)

Returns the fraction field of this extension, which is just the extension of base.fraction_field() determined by the same polynomial.

INPUT:

• print_mode – a dictionary containing print options. Defaults to the same options as this ring.

OUTPUT:

• the fraction field of self.

EXAMPLES:

sage: U.<a> = Zq(17^4, 6, print_mode='val-unit', print_max_terse_terms=3)
sage: U.fraction_field()
Unramified Extension of 17-adic Field with capped relative precision 6 in a defined by (1 + O(17^6))*x^4 + (O(17^6))*x^3 + (7 + O(17^6))*x^2 + (10 + O(17^6))*x + (3 + O(17^6))
sage: U.fraction_field({"pos":False}) == U.fraction_field()
False

ground_ring()

Returns the ring of which this ring is an extension.

EXAMPLE:

sage: R = Zp(5,5)
sage: S.<x> = R[]
sage: f = x^5 + 75*x^3 - 15*x^2 +125*x - 5
sage: W.<w> = R.ext(f)
sage: W.ground_ring()
5-adic Ring with capped relative precision 5

ground_ring_of_tower()

Returns the p-adic base ring of which this is ultimately an extension.

Currently this function is identical to ground_ring(), since relative extensions have not yet been implemented.

EXAMPLES:

sage: Qq(27,30,names='a').ground_ring_of_tower()
3-adic Field with capped relative precision 30

integer_ring(print_mode=None)

Returns the ring of integers of self, which is just the extension of base.integer_ring() determined by the same polynomial.

INPUT:

• print_mode – a dictionary containing print options. Defaults to the same options as this ring.

OUTPUT:

• the ring of elements of self with nonnegative valuation.

EXAMPLES:

sage: U.<a> = Qq(17^4, 6, print_mode='val-unit', print_max_terse_terms=3)
sage: U.integer_ring()
Unramified Extension of 17-adic Ring with capped relative precision 6 in a defined by (1 + O(17^6))*x^4 + (O(17^6))*x^3 + (7 + O(17^6))*x^2 + (10 + O(17^6))*x + (3 + O(17^6))
sage: U.fraction_field({"pos":False}) == U.fraction_field()
False

modulus()

Returns the polynomial defining this extension.

EXAMPLES:

sage: R = Zp(5,5)
sage: S.<x> = R[]
sage: f = x^5 + 75*x^3 - 15*x^2 +125*x - 5
sage: W.<w> = R.ext(f)
sage: W.modulus()
(1 + O(5^5))*x^5 + (O(5^6))*x^4 + (3*5^2 + O(5^6))*x^3 + (2*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + O(5^6))*x^2 + (5^3 + O(5^6))*x + (4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + O(5^6))

polynomial_ring()

Returns the polynomial ring of which this is a quotient.

EXAMPLES:

sage: Qq(27,30,names='a').polynomial_ring()
Univariate Polynomial Ring in x over 3-adic Field with capped relative precision 30

random_element()

Returns a random element of self.

This is done by picking a random element of the ground ring self.degree() times, then treating those elements as coefficients of a polynomial in self.gen().

EXAMPLES:

sage: R.<a> = Zq(125, 5); R.random_element()
3*a + (2*a + 1)*5 + (4*a^2 + 3*a + 4)*5^2 + (a^2 + 2*a)*5^3 + (a + 2)*5^4 + O(5^5)
sage: R = Zp(5,3); S.<x> = ZZ[]; f = x^5 + 25*x^2 - 5; W.<w> = R.ext(f)
sage: W.random_element()
3 + 4*w + 3*w^2 + w^3 + 4*w^4 + w^5 + w^6 + 3*w^7 + w^8 + 2*w^10 + 4*w^11 + w^12 + 2*w^13 + 4*w^14 + O(w^15)


#### Previous topic

$$p$$-Adic Base Generic

#### Next topic

Eisenstein Extension Generic