# Projective Algebraic Sets

For finitely many homogeneous polynomials $f_1,\dots f_r \in k[x_0,\dots x_n]$, and $I=(f_1,\dots , f_n) \leq k[x_0,\dots x_n]$ the homogeneous ideal they generate, we denote by $X = V(I) \subseteq \mathbb{P}^n$ the projective algebraic set defined by $I$ and call $k$ its base field.

Let $\mathbb{P}^n(k)=(k^{n+1}\setminus\{0\})/k^*$ be the set of $k$-points of projective space of dimension $n$. If $k \subseteq K$ is any field extension, we denote the set of $K$-points of $X$ by

\[\begin{aligned}X(K) &= \{ P \in \mathbb{P}^n(K) \mid f_1(P)=\dots = f_n(P)=0\}\\ &=\{P \in \mathbb{P}^n(K) \mid \forall f\in I : f(P)=0\}.\end{aligned}\]

Most properties of the projective variety $X$ refer to $X(K)$ where $K$ is an algebraically closed field. Just like for affine schemes there are a few exceptions to this rule, for instance, whether $X$ is irreducible or not depends on its base field. See `is_irreducible(X::AbsProjectiveScheme)`

for details. Further exceptions are documented in the individual methods.

# Relation to schemes

One can view a projective algebraic set as a scheme. See Projective schemes.

More formally we define a projective algebraic set as follows:

`AbsProjectiveAlgebraicSet`

— Type`AbsProjectiveAlgebraicSet <: AbsProjectiveScheme`

A projective, geometrically reduced scheme of finite type over a field.

## Constructors

Projective algebraic sets can be created from homogeneous polynomials and homogeneous ideals in standard graded rings.

`algebraic_set`

— Method`algebraic_set(I::MPolyIdeal{MPolyDecRingElem})`

Return the projrective algebraic set defined by the homogeneous ideal $I$.

```
julia> P,(x0,x1) = graded_polynomial_ring(QQ,[:x0,:x1]);
julia> algebraic_set(ideal([x0,x1]))
Projective algebraic set
in projective 1-space over QQ with coordinates [x0, x1]
defined by ideal(x1, x0)
```

`algebraic_set`

— Method`algebraic_set(p::MPolyDecRingElem; check::Bool=true)`

Return the projective algebraic set defined by the homogeneous polynomial `p`

.

Algebraic sets can also be constructed from projective schemes.

`algebraic_set`

— Method`algebraic_set(X::AbsProjectiveScheme; is_reduced::Bool=false, check::Bool=true) -> ProjectiveAlgebraicSet`

Convert `X`

to a `ProjectiveAlgebraicSet`

by considering its underlying reduced scheme.

If `is_reduced`

is `true`

assume that `X`

is already reduced.

```
julia> P, (x0, x1, x2) = graded_polynomial_ring(QQ,[:x0,:x1,:x2]);
julia> X = projective_scheme(ideal([x0*x1^2, x2]))
Projective scheme
over rational field
defined by ideal(x0*x1^2, x2)
julia> Y = algebraic_set(X)
Projective algebraic set
in projective 2-space over QQ with coordinates [x0, x1, x2]
defined by ideal(x2, x0*x1)
```

`set_theoretic_intersection`

— Method`set_theoretic_intersection(X::AbsProjectiveAlgebraicSet, Y::AbsProjectiveAlgebraicSet) -> AbsProjectiveAlgebraicSet`

Return the set theoretic intersection of `X`

and `Y`

as as algebraic sets in projective space.

This is the reduced subscheme of the scheme theoretic intersection.

`irreducible_components`

— Method`irreducible_components(X::AbsProjectiveAlgebraicSet) -> Vector{ProjectiveVariety}`

Return the irreducible components of $X$ defined over the base field of $X$.

Note that even if $X$ is irreducible, there may be several geometrically irreducible components.

```
julia> P1 = projective_space(QQ,1)
Projective space of dimension 1
over rational field
with homogeneous coordinates [s0, s1]
julia> (s0,s1) = homogeneous_coordinates(P1);
julia> X = algebraic_set((s0^2+s1^2)*s1)
Projective algebraic set
in projective 1-space over QQ with coordinates [s0, s1]
defined by ideal(s0^2*s1 + s1^3)
julia> (X1,X2) = irreducible_components(X)
2-element Vector{ProjectiveAlgebraicSet{QQField, MPolyQuoRing{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}}}:
V(s0^2 + s1^2)
V(s1)
julia> X1 # irreducible but not geometrically irreducible
Projective algebraic set
in projective 1-space over QQ with coordinates [s0, s1]
defined by ideal(s0^2 + s1^2)
```

`geometric_irreducible_components`

— Method`geometric_irreducible_components(X::AbsProjectiveAlgebraicSet) -> Vector{ProjectiveVariety}`

Return the geometrically irreducible components of `X`

.

They are the irreducible components of `X`

seen over an algebraically closed field.

This is expensive and involves taking field extensions.

## Attributes

In addition to the attributes inherited from Projective schemes the following are available.

`vanishing_ideal`

— Method`vanishing_ideal(X::AbsProjectiveAlgebraicSet) -> Ideal`

Return the ideal of all homogeneous polynomials vanishing in $X$.

`fat_ideal`

— Method`fat_ideal(X::AbsProjectiveAlgebraicSet) -> Ideal`

Return a homogeneous ideal whose radical is the vanishing ideal of `X`

.

## Methods

Inherited from Projective schemes

## Properties

Inherited from Projective schemes