# fraction fields

The fraction field of a ring (which must be an integral domain) is obtained with the function frac.
 i1 : frac ZZ o1 = QQ o1 : Ring i2 : R = ZZ/101[x,y]/(x^3 + 1 + y^3) o2 = R o2 : QuotientRing i3 : frac R o3 = frac R o3 : FractionField
After defining a ring such as R, fractions in its fraction field can be obtained by writing them explicitly.
 i4 : x o4 = x o4 : R i5 : 1/x 1 o5 = - x o5 : frac R i6 : x/1 o6 = x o6 : R
Alternatively, after applying the function use, or assigning the fraction ring to a global variable, the symbols you used become associated with the corresponding elements of the fraction field.
 i7 : use frac R o7 = frac R o7 : FractionField i8 : x o8 = x o8 : frac R
Fractions are reduced to the extent possible. This is done by computing the syzygies between the numerator and denominator, and picking one of low degree.
 i9 : f = (x-y)/(x^6-y^6) -1 o9 = ------------- 2 2 x + x*y + y o9 : frac R i10 : (x^3 - y^3) * f o10 = - x + y o10 : frac R
The parts of a fraction may be extracted.
 i11 : numerator f o11 = -1 o11 : R i12 : denominator f 2 2 o12 = x + x*y + y o12 : R
Alternatively, the functions lift and liftable can be used.
 i13 : liftable(1/f,R) o13 = true i14 : liftable(f,R) o14 = false i15 : lift(1/f,R) 2 2 o15 = - x - x*y - y o15 : R
Note that computations, such as Gröbner bases, over fraction fields can be quite slow.