Ideals of function fields#
Ideals of an order of a function field include all fractional ideals of the order. Sage provides basic arithmetic with fractional ideals.
The fractional ideals of the maximal order of a global function field forms a multiplicative monoid. Sage allows advanced arithmetic with the fractional ideals. For example, an ideal of the maximal order can be factored into a product of prime ideals.
EXAMPLES:
Ideals in the maximal order of a rational function field:
sage: K.<x> = FunctionField(QQ)
sage: O = K.maximal_order()
sage: I = O.ideal(x^3 + 1); I
Ideal (x^3 + 1) of Maximal order of Rational function field in x over Rational Field
sage: I^2
Ideal (x^6 + 2*x^3 + 1) of Maximal order of Rational function field in x over Rational Field
sage: ~I
Ideal (1/(x^3 + 1)) of Maximal order of Rational function field in x over Rational Field
sage: ~I * I
Ideal (1) of Maximal order of Rational function field in x over Rational Field
Ideals in the equation order of an extension of a rational function field:
sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field
sage: O = L.equation_order() # optional - sage.rings.function_field
sage: I = O.ideal(y); I # optional - sage.rings.function_field
Ideal (x^3 + 1, -y) of Order in Function field in y defined by y^2 - x^3 - 1
sage: I^2 # optional - sage.rings.function_field
Ideal (x^3 + 1, (-x^3 - 1)*y) of Order in Function field in y defined by y^2 - x^3 - 1
Ideals in the maximal order of a global function field:
sage: K.<x> = FunctionField(GF(2)); R.<y> = K[] # optional - sage.rings.finite_rings
sage: L.<y> = K.extension(y^2 - x^3*y - x) # optional - sage.rings.finite_rings sage.rings.function_field
sage: O = L.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field
sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field
sage: I^2 # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (x) of Maximal order of Function field in y defined by y^2 + x^3*y + x
sage: ~I # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (1/x*y) of Maximal order of Function field in y defined by y^2 + x^3*y + x
sage: ~I * I # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (1) of Maximal order of Function field in y defined by y^2 + x^3*y + x
sage: J = O.ideal(x + y) * I # optional - sage.rings.finite_rings sage.rings.function_field
sage: J.factor() # optional - sage.rings.finite_rings sage.rings.function_field
(Ideal (y) of Maximal order of Function field in y defined by y^2 + x^3*y + x)^2 *
(Ideal (x^3 + x + 1, y + x) of Maximal order of Function field in y defined by y^2 + x^3*y + x)
Ideals in the maximal infinite order of a global function field:
sage: K.<x> = FunctionField(GF(3^2)); R.<t> = K[] # optional - sage.rings.finite_rings
sage: F.<y> = K.extension(t^3 + t^2 - x^4) # optional - sage.rings.finite_rings sage.rings.function_field
sage: Oinf = F.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field
sage: I = Oinf.ideal(1/y) # optional - sage.rings.finite_rings sage.rings.function_field
sage: I + I == I # optional - sage.rings.finite_rings sage.rings.function_field
True
sage: I^2 # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (1/x^4*y) of Maximal infinite order of Function field in y defined by y^3 + y^2 + 2*x^4
sage: ~I # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (y) of Maximal infinite order of Function field in y defined by y^3 + y^2 + 2*x^4
sage: ~I * I # optional - sage.rings.finite_rings sage.rings.function_field
Ideal (1) of Maximal infinite order of Function field in y defined by y^3 + y^2 + 2*x^4
sage: I.factor() # optional - sage.rings.finite_rings sage.rings.function_field
(Ideal (1/x^3*y^2) of Maximal infinite order of Function field in y defined by y^3 + y^2 + 2*x^4)^4
AUTHORS:
William Stein (2010): initial version
Maarten Derickx (2011-09-14): fixed ideal_with_gens_over_base()
Kwankyu Lee (2017-04-30): added ideals for global function fields
- class sage.rings.function_field.ideal.FunctionFieldIdeal(ring)#
Bases:
Element
Base class of fractional ideals of function fields.
INPUT:
ring
– ring of the ideal
EXAMPLES:
sage: K.<x> = FunctionField(GF(7)) # optional - sage.rings.finite_rings sage: O = K.equation_order() # optional - sage.rings.finite_rings sage: O.ideal(x^3 + 1) # optional - sage.rings.finite_rings Ideal (x^3 + 1) of Maximal order of Rational function field in x over Finite Field of size 7
- base_ring()#
Return the base ring of this ideal.
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(x^2 + 1) # optional - sage.rings.function_field sage: I.base_ring() # optional - sage.rings.function_field Order in Function field in y defined by y^2 - x^3 - 1
- divisor()#
Return the divisor corresponding to the ideal.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x*(x + 1)^2/(x^2 + x + 1)) # optional - sage.rings.finite_rings sage: I.divisor() # optional - sage.rings.finite_rings Place (x) + 2*Place (x + 1) - Place (x + z2) - Place (x + z2 + 1) sage: Oinf = K.maximal_order_infinite() # optional - sage.rings.finite_rings sage: I = Oinf.ideal((x + 1)/(x^3 + 1)) # optional - sage.rings.finite_rings sage: I.divisor() # optional - sage.rings.finite_rings 2*Place (1/x) sage: K.<x> = FunctionField(GF(2)); _.<T> = PolynomialRing(K) # optional - sage.rings.finite_rings sage: F.<y> = K.extension(T^3 - x^2*(x^2 + x + 1)^2) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = F.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor() # optional - sage.rings.finite_rings sage.rings.function_field 2*Place (x, (1/(x^3 + x^2 + x))*y^2) + 2*Place (x^2 + x + 1, (1/(x^3 + x^2 + x))*y^2) sage: Oinf = F.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = Oinf.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor() # optional - sage.rings.finite_rings sage.rings.function_field -2*Place (1/x, 1/x^4*y^2 + 1/x^2*y + 1) - 2*Place (1/x, 1/x^2*y + 1) sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] # optional - sage.rings.finite_rings sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = L.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor() # optional - sage.rings.finite_rings sage.rings.function_field - Place (x, x*y) + 2*Place (x + 1, x*y) sage: Oinf = L.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = Oinf.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor() # optional - sage.rings.finite_rings sage.rings.function_field - Place (1/x, 1/x*y)
- divisor_of_poles()#
Return the divisor of poles corresponding to the ideal.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x*(x + 1)^2/(x^2 + x + 1)) # optional - sage.rings.finite_rings sage: I.divisor_of_poles() # optional - sage.rings.finite_rings Place (x + z2) + Place (x + z2 + 1) sage: K.<x> = FunctionField(GF(2)) # optional - sage.rings.finite_rings sage: Oinf = K.maximal_order_infinite() # optional - sage.rings.finite_rings sage: I = Oinf.ideal((x + 1)/(x^3 + 1)) # optional - sage.rings.finite_rings sage: I.divisor_of_poles() # optional - sage.rings.finite_rings 0 sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] # optional - sage.rings.finite_rings sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = L.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor_of_poles() # optional - sage.rings.finite_rings sage.rings.function_field Place (x, x*y)
- divisor_of_zeros()#
Return the divisor of zeros corresponding to the ideal.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x*(x + 1)^2/(x^2 + x + 1)) # optional - sage.rings.finite_rings sage: I.divisor_of_zeros() # optional - sage.rings.finite_rings Place (x) + 2*Place (x + 1) sage: K.<x> = FunctionField(GF(2)) # optional - sage.rings.finite_rings sage: Oinf = K.maximal_order_infinite() # optional - sage.rings.finite_rings sage: I = Oinf.ideal((x + 1)/(x^3 + 1)) # optional - sage.rings.finite_rings sage: I.divisor_of_zeros() # optional - sage.rings.finite_rings 2*Place (1/x) sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] # optional - sage.rings.finite_rings sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = L.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.divisor_of_zeros() # optional - sage.rings.finite_rings sage.rings.function_field 2*Place (x + 1, x*y)
- factor()#
Return the factorization of this ideal.
Subclass of this class should define
_factor()
method that returns a list of prime ideal and multiplicity pairs.EXAMPLES:
sage: K.<x> = FunctionField(GF(4)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x^3*(x + 1)^2) # optional - sage.rings.finite_rings sage: I.factor() # optional - sage.rings.finite_rings (Ideal (x) of Maximal order of Rational function field in x over Finite Field in z2 of size 2^2)^3 * (Ideal (x + 1) of Maximal order of Rational function field in x over Finite Field in z2 of size 2^2)^2 sage: Oinf = K.maximal_order_infinite() # optional - sage.rings.finite_rings sage: I = Oinf.ideal((x + 1)/(x^3 + 1)) # optional - sage.rings.finite_rings sage: I.factor() # optional - sage.rings.finite_rings (Ideal (1/x) of Maximal infinite order of Rational function field in x over Finite Field in z2 of size 2^2)^2 sage: K.<x> = FunctionField(GF(2)); _.<T> = PolynomialRing(K) # optional - sage.rings.finite_rings sage: F.<y> = K.extension(T^3 - x^2*(x^2 + x + 1)^2) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = F.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: I == I.factor().prod() # optional - sage.rings.finite_rings sage.rings.function_field True sage: Oinf = F.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field sage: f= 1/x # optional - sage.rings.finite_rings sage.rings.function_field sage: I = Oinf.ideal(f) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.factor() # optional - sage.rings.finite_rings sage.rings.function_field (Ideal ((1/(x^4 + x^3 + x^2))*y^2 + 1/x^2*y + 1) of Maximal infinite order of Function field in y defined by y^3 + x^6 + x^4 + x^2) * (Ideal ((1/(x^4 + x^3 + x^2))*y^2 + 1) of Maximal infinite order of Function field in y defined by y^3 + x^6 + x^4 + x^2) sage: K.<x> = FunctionField(QQ); _.<Y> = K[] sage: F.<y> = K.extension(Y^3 - x^2*(x^2 + x + 1)^2) # optional - sage.rings.function_field sage: O = F.maximal_order() # optional - sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.function_field sage: I == I.factor().prod() # optional - sage.rings.function_field True sage: K.<x> = FunctionField(QQ); _.<Y> = K[] sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.function_field sage: O = L.maximal_order() # optional - sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.function_field sage: I == I.factor().prod() # optional - sage.rings.function_field True
- gens_reduced()#
Return reduced generators.
For now, this method just looks at the generators and sees if any can be removed without changing the ideal. It prefers principal representations (a single generator) over all others, and otherwise picks the generator set with the shortest print representation.
This method is provided so that ideals in function fields have the method
gens_reduced()
, just like ideals of number fields. Sage linear algebra machinery sometimes requires this.EXAMPLES:
sage: K.<x> = FunctionField(GF(7)) # optional - sage.rings.finite_rings sage: O = K.equation_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x, x^2, x^2 + x) # optional - sage.rings.finite_rings sage: I.gens_reduced() # optional - sage.rings.finite_rings (x,)
- place()#
Return the place associated with this prime ideal.
EXAMPLES:
sage: K.<x> = FunctionField(GF(4)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x^2 + x + 1) # optional - sage.rings.finite_rings sage: I.place() # optional - sage.rings.finite_rings Traceback (most recent call last): ... TypeError: not a prime ideal sage: I = O.ideal(x^3 + x + 1) # optional - sage.rings.finite_rings sage: I.place() # optional - sage.rings.finite_rings Place (x^3 + x + 1) sage: K.<x> = FunctionField(GF(2)) # optional - sage.rings.finite_rings sage: Oinf = K.maximal_order_infinite() # optional - sage.rings.finite_rings sage: I = Oinf.ideal((x + 1)/(x^3 + 1)) # optional - sage.rings.finite_rings sage: p = I.factor()[0][0] # optional - sage.rings.finite_rings sage: p.place() # optional - sage.rings.finite_rings Place (1/x) sage: K.<x> = FunctionField(GF(2)); _.<t> = PolynomialRing(K) # optional - sage.rings.finite_rings sage: F.<y> = K.extension(t^3 - x^2*(x^2+x+1)^2) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = F.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: [f.place() for f,_ in I.factor()] # optional - sage.rings.finite_rings sage.rings.function_field [Place (x, (1/(x^3 + x^2 + x))*y^2), Place (x^2 + x + 1, (1/(x^3 + x^2 + x))*y^2)] sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] # optional - sage.rings.finite_rings sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: O = L.maximal_order() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.finite_rings sage.rings.function_field sage: [f.place() for f,_ in I.factor()] # optional - sage.rings.finite_rings sage.rings.function_field [Place (x, x*y), Place (x + 1, x*y)] sage: K.<x> = FunctionField(GF(3^2)); R.<t> = PolynomialRing(K) # optional - sage.rings.finite_rings sage: F.<y> = K.extension(t^3 + t^2 - x^4) # optional - sage.rings.finite_rings sage.rings.function_field sage: Oinf = F.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = Oinf.ideal(1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.factor() # optional - sage.rings.finite_rings sage.rings.function_field (Ideal (1/x^3*y^2) of Maximal infinite order of Function field in y defined by y^3 + y^2 + 2*x^4)^3 sage: J = I.factor()[0][0] # optional - sage.rings.finite_rings sage.rings.function_field sage: J.is_prime() # optional - sage.rings.finite_rings sage.rings.function_field True sage: J.place() # optional - sage.rings.finite_rings sage.rings.function_field Place (1/x, 1/x^3*y^2) sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[] # optional - sage.rings.finite_rings sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: Oinf = L.maximal_order_infinite() # optional - sage.rings.finite_rings sage.rings.function_field sage: I = Oinf.ideal(1/x) # optional - sage.rings.finite_rings sage.rings.function_field sage: I.factor() # optional - sage.rings.finite_rings sage.rings.function_field (Ideal (1/x*y) of Maximal infinite order of Function field in y defined by y^2 + y + (x^2 + 1)/x)^2 sage: J = I.factor()[0][0] # optional - sage.rings.finite_rings sage.rings.function_field sage: J.is_prime() # optional - sage.rings.finite_rings sage.rings.function_field True sage: J.place() # optional - sage.rings.finite_rings sage.rings.function_field Place (1/x, 1/x*y)
- ring()#
Return the ring to which this ideal belongs.
EXAMPLES:
sage: K.<x> = FunctionField(GF(7)) # optional - sage.rings.finite_rings sage: O = K.equation_order() # optional - sage.rings.finite_rings sage: I = O.ideal(x, x^2, x^2 + x) # optional - sage.rings.finite_rings sage: I.ring() # optional - sage.rings.finite_rings Maximal order of Rational function field in x over Finite Field of size 7
- class sage.rings.function_field.ideal.FunctionFieldIdealInfinite(ring)#
Bases:
FunctionFieldIdeal
Base class of ideals of maximal infinite orders
- class sage.rings.function_field.ideal.FunctionFieldIdealInfinite_module(ring, module)#
Bases:
FunctionFieldIdealInfinite
,Ideal_generic
A fractional ideal specified by a finitely generated module over the integers of the base field.
INPUT:
ring
– order in a function fieldmodule
– module
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: O.ideal(y) # optional - sage.rings.function_field Ideal (x^3 + 1, -y) of Order in Function field in y defined by y^2 - x^3 - 1
- module()#
Return the module over the maximal order of the base field that underlies this ideal.
The formation of the module is compatible with the vector space corresponding to the function field.
EXAMPLES:
sage: K.<x> = FunctionField(GF(7)) # optional - sage.rings.finite_rings sage: O = K.maximal_order(); O # optional - sage.rings.finite_rings Maximal order of Rational function field in x over Finite Field of size 7 sage: K.polynomial_ring() # optional - sage.rings.finite_rings Univariate Polynomial Ring in x over Rational function field in x over Finite Field of size 7 sage: I = O.ideal([x^2 + 1, x*(x^2+1)]) # optional - sage.rings.finite_rings sage: I.gens() # optional - sage.rings.finite_rings (x^2 + 1,) sage: I.module() # optional - sage.rings.finite_rings Free module of degree 1 and rank 1 over Maximal order of Rational function field in x over Finite Field of size 7 Echelon basis matrix: [x^2 + 1] sage: V, from_V, to_V = K.vector_space(); V # optional - sage.rings.finite_rings Vector space of dimension 1 over Rational function field in x over Finite Field of size 7 sage: I.module().is_submodule(V) # optional - sage.rings.finite_rings True
- class sage.rings.function_field.ideal.FunctionFieldIdeal_module(ring, module)#
Bases:
FunctionFieldIdeal
,Ideal_generic
A fractional ideal specified by a finitely generated module over the integers of the base field.
INPUT:
ring
– an order in a function fieldmodule
– a module of the order
EXAMPLES:
An ideal in an extension of a rational function field:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(y) # optional - sage.rings.function_field sage: I # optional - sage.rings.function_field Ideal (x^3 + 1, -y) of Order in Function field in y defined by y^2 - x^3 - 1 sage: I^2 # optional - sage.rings.function_field Ideal (x^3 + 1, (-x^3 - 1)*y) of Order in Function field in y defined by y^2 - x^3 - 1
- gen(i)#
Return the
i
-th generator in the current basis of this ideal.EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(x^2 + 1) # optional - sage.rings.function_field sage: I.gen(1) # optional - sage.rings.function_field (x^2 + 1)*y
- gens()#
Return a set of generators of this ideal.
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(x^2 + 1) # optional - sage.rings.function_field sage: I.gens() # optional - sage.rings.function_field (x^2 + 1, (x^2 + 1)*y)
- intersection(other)#
Return the intersection of this ideal and
other
.EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(y^3); J = O.ideal(y^2) # optional - sage.rings.function_field sage: Z = I.intersection(J); Z # optional - sage.rings.function_field Ideal (x^6 + 2*x^3 + 1, (-x^3 - 1)*y) of Order in Function field in y defined by y^2 - x^3 - 1 sage: y^2 in Z # optional - sage.rings.function_field False sage: y^3 in Z # optional - sage.rings.function_field True
- module()#
Return the module over the maximal order of the base field that underlies this ideal.
The formation of the module is compatible with the vector space corresponding to the function field.
OUTPUT:
a module over the maximal order of the base field of the ideal
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order(); O # optional - sage.rings.function_field Order in Function field in y defined by y^2 - x^3 - 1 sage: I = O.ideal(x^2 + 1) # optional - sage.rings.function_field sage: I.gens() # optional - sage.rings.function_field (x^2 + 1, (x^2 + 1)*y) sage: I.module() # optional - sage.rings.function_field Free module of degree 2 and rank 2 over Maximal order of Rational function field in x over Rational Field Echelon basis matrix: [x^2 + 1 0] [ 0 x^2 + 1] sage: V, from_V, to_V = L.vector_space(); V # optional - sage.rings.function_field Vector space of dimension 2 over Rational function field in x over Rational Field sage: I.module().is_submodule(V) # optional - sage.rings.function_field True
- ngens()#
Return the number of generators in the basis.
EXAMPLES:
sage: K.<x> = FunctionField(QQ); R.<y> = K[] sage: L.<y> = K.extension(y^2 - x^3 - 1) # optional - sage.rings.function_field sage: O = L.equation_order() # optional - sage.rings.function_field sage: I = O.ideal(x^2 + 1) # optional - sage.rings.function_field sage: I.ngens() # optional - sage.rings.function_field 2
- class sage.rings.function_field.ideal.IdealMonoid(R)#
Bases:
UniqueRepresentation
,Parent
The monoid of ideals in orders of function fields.
INPUT:
R
– order
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: M = O.ideal_monoid(); M # optional - sage.rings.finite_rings Monoid of ideals of Maximal order of Rational function field in x over Finite Field of size 2
- ring()#
Return the ring of which this is the ideal monoid.
EXAMPLES:
sage: K.<x> = FunctionField(GF(2)) # optional - sage.rings.finite_rings sage: O = K.maximal_order() # optional - sage.rings.finite_rings sage: M = O.ideal_monoid(); M.ring() is O # optional - sage.rings.finite_rings True