Fraction Field of Integral Domains¶

AUTHORS:

• William Stein (with input from David Joyner, David Kohel, and Joe Wetherell)
• Burcin Erocal

EXAMPLES:

Quotienting is a constructor for an element of the fraction field:

sage: R.<x> = QQ[]
sage: (x^2-1)/(x+1)
x - 1
sage: parent((x^2-1)/(x+1))
Fraction Field of Univariate Polynomial Ring in x over Rational Field


The GCD is not taken (since it doesn’t converge sometimes) in the inexact case:

sage: Z.<z> = CC[]
sage: I = CC.gen()
sage: (1+I+z)/(z+0.1*I)
(z + 1.00000000000000 + I)/(z + 0.100000000000000*I)
sage: (1+I*z)/(z+1.1)
(I*z + 1.00000000000000)/(z + 1.10000000000000)


TESTS:

sage: F = FractionField(IntegerRing())
True

sage: F = FractionField(PolynomialRing(RationalField(),'x'))
True

sage: F = FractionField(PolynomialRing(IntegerRing(),'x'))
True

sage: F = FractionField(PolynomialRing(RationalField(),2,'x'))
True

sage.rings.fraction_field.FractionField(R, names=None)

Create the fraction field of the integral domain R.

INPUT:

• R – an integral domain
• names – ignored

EXAMPLES:

We create some example fraction fields:

sage: FractionField(IntegerRing())
Rational Field
sage: FractionField(PolynomialRing(RationalField(),'x'))
Fraction Field of Univariate Polynomial Ring in x over Rational Field
sage: FractionField(PolynomialRing(IntegerRing(),'x'))
Fraction Field of Univariate Polynomial Ring in x over Integer Ring
sage: FractionField(PolynomialRing(RationalField(),2,'x'))
Fraction Field of Multivariate Polynomial Ring in x0, x1 over Rational Field


Dividing elements often implicitly creates elements of the fraction field:

sage: x = PolynomialRing(RationalField(), 'x').gen()
sage: f = x/(x+1)
sage: g = x**3/(x+1)
sage: f/g
1/x^2
sage: g/f
x^2


The input must be an integral domain:

sage: Frac(Integers(4))
Traceback (most recent call last):
...
TypeError: R must be an integral domain.

class sage.rings.fraction_field.FractionField_1poly_field(R, element_class=<class 'sage.rings.fraction_field_element.FractionFieldElement_1poly_field'>)

The fraction field of a univariate polynomial ring over a field.

Many of the functions here are included for coherence with number fields.

class_number()

Here for compatibility with number fields and function fields.

EXAMPLES:

sage: R.<t> = GF(5)[]; K = R.fraction_field()
sage: K.class_number()
1

maximal_order()

Returns the maximal order in this fraction field.

EXAMPLES:

sage: K = FractionField(GF(5)['t'])
sage: K.maximal_order()
Univariate Polynomial Ring in t over Finite Field of size 5

ring_of_integers()

Returns the ring of integers in this fraction field.

EXAMPLES:

sage: K = FractionField(GF(5)['t'])
sage: K.ring_of_integers()
Univariate Polynomial Ring in t over Finite Field of size 5

class sage.rings.fraction_field.FractionField_generic(R, element_class=<type 'sage.rings.fraction_field_element.FractionFieldElement'>, category=Category of quotient fields)

Bases: sage.rings.ring.Field

The fraction field of an integral domain.

base_ring()

Return the base ring of self; this is the base ring of the ring which this fraction field is the fraction field of.

EXAMPLES:

sage: R = Frac(ZZ['t'])
sage: R.base_ring()
Integer Ring

characteristic()

Return the characteristic of this fraction field.

EXAMPLES:

sage: R = Frac(ZZ['t'])
sage: R.base_ring()
Integer Ring
sage: R = Frac(ZZ['t']); R.characteristic()
0
sage: R = Frac(GF(5)['w']); R.characteristic()
5

construction()

EXAMPLES:

sage: Frac(ZZ['x']).construction()
(FractionField, Univariate Polynomial Ring in x over Integer Ring)
sage: K = Frac(GF(3)['t'])
sage: f, R = K.construction()
sage: f(R)
Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3
sage: f(R) == K
True

gen(i=0)

Return the i-th generator of self.

EXAMPLES:

sage: R = Frac(PolynomialRing(QQ,'z',10)); R
Fraction Field of Multivariate Polynomial Ring in z0, z1, z2, z3, z4, z5, z6, z7, z8, z9 over Rational Field
sage: R.0
z0
sage: R.gen(3)
z3
sage: R.3
z3

is_exact()

Return if self is exact which is if the underlying ring is exact.

EXAMPLES:

sage: Frac(ZZ['x']).is_exact()
True
sage: Frac(CDF['x']).is_exact()
False

is_field(proof=True)

Return True, since the fraction field is a field.

EXAMPLES:

sage: Frac(ZZ).is_field()
True

is_finite()

Tells whether this fraction field is finite.

Note

A fraction field is finite if and only if the associated integral domain is finite.

EXAMPLE:

sage: Frac(QQ['a','b','c']).is_finite()
False

ngens()

This is the same as for the parent object.

EXAMPLES:

sage: R = Frac(PolynomialRing(QQ,'z',10)); R
Fraction Field of Multivariate Polynomial Ring in z0, z1, z2, z3, z4, z5, z6, z7, z8, z9 over Rational Field
sage: R.ngens()
10

random_element(*args, **kwds)

Returns a random element in this fraction field.

EXAMPLES:

sage: F = ZZ['x'].fraction_field()
sage: F.random_element()
(2*x - 8)/(-x^2 + x)

sage: F.random_element(degree=5)
(-12*x^5 - 2*x^4 - x^3 - 95*x^2 + x + 2)/(-x^5 + x^4 - x^3 + x^2)

ring()

Return the ring that this is the fraction field of.

EXAMPLES:

sage: R = Frac(QQ['x,y'])
sage: R
Fraction Field of Multivariate Polynomial Ring in x, y over Rational Field
sage: R.ring()
Multivariate Polynomial Ring in x, y over Rational Field

sage.rings.fraction_field.is_FractionField(x)

Test whether or not x inherits from FractionField_generic.

EXAMPLES:

sage: from sage.rings.fraction_field import is_FractionField
sage: is_FractionField(Frac(ZZ['x']))
True
sage: is_FractionField(QQ)
False


Infinity Rings

Next topic

Fraction Field Elements