Affine Algebraic Sets
An affine algebraic set over an algebraically closed field $\overline{k}$ is the common vanishing locus $V$ of finitely many polynomials $f_1,\dots f_r \in \overline{k}[x_1,\dots x_n]$, or equivalently of the ideal $I \subseteq \overline{k}[x_1,\dots x_n]$ they generate. Structural questions about varieties can be answered by considering the corresponding ideal of vanishing. For instance Hilbert's Nullstellensatz states that $V$ is empty if and only if $I=(1)$.
In Oscar we work with algebraic sets over non-closed fields, by viewing them as reduced schemes. By abuse of terminology we say that a scheme is an affine algebraic set if it is isomorphic to one. For example a hypersurface complement is an affine algebraic set. In particular, affine algebraic sets are not necessarily Zariski closed in their ambient affine space.
More formally they are defined as follows:
AbsAffineAlgebraicSet
— TypeAbsAffineAlgebraicSet <: AbsSpec
An affine, geometrically reduced subscheme of an affine space over a field.
Constructors
The recommended way to create an algebraic set is as a vanishing locus of an ideal or a polynomial.
vanishing_locus
— Methodvanishing_locus(I::MPolyIdeal; check::Bool=true)
Return the vanishing locus of $I$ as an algebraic set.
This computes the radical of $I$ if check=true
. Otherwise, Oscar takes on faith that $I$ is radical.
julia> R, (x,y) = GF(2)[:x,:y];
julia> X = Oscar.vanishing_locus(ideal([y^2+y+x^3+1,x]))
Vanishing locus
in Affine 2-space over GF(2)
of ideal(x, y^2 + y + 1)
vanishing_locus
— Methodvanishing_locus(p::MPolyRingElem, check::Bool=true)
Return the vanishing locus of the multivariate polynomial p
.
This computes the radical of $I$ if check=true
. Otherwise Oscar takes on faith that $I$ is radical.
julia> R, (x,y) = QQ[:x,:y];
julia> X = Oscar.vanishing_locus((y^2+y+x^3+1)*x^2)
Vanishing locus
in Affine 2-space over QQ
of ideal(x^4 + x*y^2 + x*y + x)
julia> R, (x,y) = GF(2)[:x,:y];
julia> X = Oscar.vanishing_locus((y^2+y+x^3+1)*x^2)
Vanishing locus
in Affine 2-space over GF(2)
of ideal(x^4 + x*y^2 + x*y + x)
But we can also convert an affine scheme.
affine_algebraic_set
— Methodaffine_algebraic_set(X::Spec; check::Bool=true) -> AffineAlgebraicSet
Convert X
to an AffineAlgebraicSet
by taking the underlying reduced scheme.
If check=false
, assumes that X
is already reduced.
set_theoretic_intersection
— Methodset_theoretic_intersection(X::AbsAffineAlgebraicSet, Y::AbsAffineAlgebraicSet) -> AbsAffineAlgebraicSet
Return the set theoretic intersection of X
and Y
as an AlgebraicSet.
This is the reduced subscheme of the scheme theoretic intersection.
closure
— Methodclosure(X::AbsAffineAlgebraicSet)
Return the closure of $X$ in its ambient affine space.
Attributes
In addition to the attributes inherited from Affine schemes the following are available.
irreducible_components
— Methodirreducible_components(X::AbsAffineAlgebraicSet) -> Vector{AffineVariety}
Return the irreducible components of $X$ defined over the base field of $X$.
Note that they may be reducible over the algebraic closure. See also geometric_irreducible_components
.
geometric_irreducible_components
— Methodgeometric_irreducible_components(X::AbsAffineAlgebraicSet)
Return the geometrically irreducible components of $X$.
They are the irreducible components $V_{ij}$ of $X$ seen over an algebraically closed field and given as a vector of tuples $(A_i, V_{ij}, d_{ij})$, say, where $A_i$ is an algebraic set which is irreducible over the base field of $X$ and $V_{ij}$ represents a corresponding class of galois conjugated geometrically irreducible components of $A_i$ defined over a number field of degree $d_{ij}$ whose generator prints as _a
.
This is expensive and involves taking field extensions.
vanishing_ideal
— Methodvanishing_ideal(X::AbsAffineAlgebraicSet) -> Ideal
Return the ideal of all polynomials vanishing in $X$.
ideal
— Methodideal(X::AbsAffineAlgebraicSet) -> Ideal
Return the ideal of all polynomials vanishing in $X$.
Methods
Inherited from Affine schemes
Properties
Inherited from Affine schemes