Skip to content

Commit

Permalink
Intersect. Theory: Code cleanup, correction, new example (#4180)
Browse files Browse the repository at this point in the history
* Intersect. Theory: Code cleanup, correction, new example

Co-authored-by: Lars Göttgens <[email protected]>
  • Loading branch information
wdecker and lgoettgens authored Oct 7, 2024
1 parent 1217ab3 commit c8a64e6
Show file tree
Hide file tree
Showing 8 changed files with 220 additions and 131 deletions.
12 changes: 12 additions & 0 deletions docs/src/AlgebraicGeometry/Surfaces/AdjunctionProcess.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,20 @@ exceptional cases. In particular, if $X$ has non-negative Kodaira dimension, th
!!! note
The surfaces in the examples below are taken from the OSCAR data base of nongeneral type surfaces in $\mathbb P^4$. To ease subsequent computations, the surfaces in the data base where constructed over finite fields. Note, however, that the recipes used in the constructions also work in characteristic zero. So all computations can be confirmed in characteristic zero, although this may be time consuming.

## Adjunction Process

What we describe here goes back to joint work of Wolfram Decker and Frank-Olaf Schreyer. See [DES93](@cite), [DS00](@cite).

```@docs
adjunction_process(X::AbsProjectiveVariety, steps::Int=0)
```

## Contact

Please direct questions about this part of OSCAR to the following people:
* [Wolfram Decker](https://math.rptu.de/en/wgs/agag/people/head/decker).

You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).

Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).

13 changes: 13 additions & 0 deletions docs/src/AlgebraicGeometry/Surfaces/ParametrizationSurfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ CurrentModule = Oscar

# Rational Parametrization of Rational Surfaces

What we present here relies on the function `adjunction_process` discussed in the previous section.

## Parametrization

```@docs
parametrization(X::AbsProjectiveVariety)
```

## Contact

Please direct questions about this part of OSCAR to the following people:
* [Wolfram Decker](https://math.rptu.de/en/wgs/agag/people/head/decker).

You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).

Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).
2 changes: 1 addition & 1 deletion docs/src/InvariantTheory/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ CurrentModule = Oscar
# [Introduction](@id invariant_theory)

The invariant theory part of OSCAR provides functionality for computing polynomial invariants
of group actions, focusing on finite and linearly reductive groups, respectively.
of group actions, focusing on finite groups, tori, and linearly reductive groups, respectively.

The basic setting in this context consists of a group $G$, a field $K$, a vector space
$V$ over $K$ of finite dimension $n,$ and a representation $\rho: G \to \text{GL}(V)$ of $G$ on $V$.
Expand Down
18 changes: 12 additions & 6 deletions experimental/IntersectionTheory/docs/src/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,26 @@ CurrentModule = Oscar

In this chapter, we
- introduce OSCAR tools which support computations in intersection theory, and
- give examples which illustrate how intersection theory is used to
solve problems from enumerative geometry.
- give examples which illustrate how intersection theory is used to solve problems from enumerative geometry.

!!! note
Making use of OSCAR, a first version of what we present here was
written by Jeiao Song as a julia package.

Making use of OSCAR, a first version of what we present here was written by Jeiao Song as a julia package.
This package was "heavily inspired by the Macaulay2 package Schubert2 and the Sage library Chow. Some
functionalities from [the Sage library] Schubert3 are also implemented."

!!! note
Schubert2 was written by Daniel R. Grayson, Michael E. Stillman, Stein A. Strømme, David Eisenbud, and Charley Crissman
while Chow is due to Manfred Lehn and Christoph Sorger. Schubert3 as well as the Singular library schubert.lib were
written by Dang Tuan Hiep. The basis for all this work, including ours, is the Maple package Schubert written
by Sheldon Katz and Stein A. Strømme.

Throughout the chapter, the varieties we consider are smooth projective varieties over the complex numbers.

!!! note
The Chow ring of a variety `X` is the group of cycles of `X` modulo an equivalence relation,
together with the intersection pairing which defines the multiplication of the ring. Here,
in contrast to most textbooks, we consider numerical equivalence classes of cycles rather than
rational equivalence classes.
rational equivalence classes.

Our approach is abstract in the sense that we do not work with concrete varieties; that is,
our varieties are not given by equations. Instead, we represent a variety by specifying its
Expand Down
6 changes: 3 additions & 3 deletions experimental/IntersectionTheory/src/IntersectionTheory.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ using ..Oscar

import Base: +, -, *, ^, ==, div, zero, one, parent
import ..Oscar: AffAlgHom, Ring, MPolyDecRingElem, symmetric_power, exterior_power, pullback, canonical_bundle, graph, euler_characteristic, pullback
import ..Oscar: basis, betti, chow_ring, codomain, degree, det, dim, domain, dual, gens, hilbert_polynomial, hom, integral, rank, signature, partitions
import ..Oscar: basis, betti_numbers, chow_ring, codomain, degree, det, dim, domain, dual, gens, hilbert_polynomial, hom, integral, rank, signature, partitions
import ..Oscar.AbstractAlgebra: combinations
import ..Oscar.AbstractAlgebra.Generic: FunctionalMap
import ..Oscar: pullback, pushforward, base, OO, product, compose
Expand All @@ -22,7 +22,7 @@ export abstract_projective_bundle
export abstract_projective_space
export abstract_variety
export base
export betti
export betti_numbers
export blowup
export blowup_points
export bundles
Expand Down Expand Up @@ -100,7 +100,7 @@ export abstract_projective_bundle
export abstract_projective_space
export abstract_variety
export base
export betti
export betti_numbers
export blowup
export blowup_points
export bundles
Expand Down
13 changes: 7 additions & 6 deletions experimental/IntersectionTheory/src/Main.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1373,18 +1373,19 @@ Return an additive basis of the Chow ring of `X` in codimension `k`.
basis(X::AbstractVariety, k::Int) = basis(X)[k+1]

@doc raw"""
betti(X::AbstractVariety)
betti_numbers(X::AbstractVariety)
Return the Betti numbers of the Chow ring of `X`. Note that these are not
necessarily equal to the usual Betti numbers, i.e., the dimensions of
(co)homologies.
Return the Betti numbers of the Chow ring of `X`.
!!! note
The Betti number of `X` in a given degree is the number of elements of `basis(X)` in that degree.
# Examples
```jldoctest
julia> P2xP2 = abstract_projective_space(2, symbol = "k")*abstract_projective_space(2, symbol = "l")
AbstractVariety of dim 4
julia> betti(P2xP2)
julia> betti_numbers(P2xP2)
5-element Vector{Int64}:
1
2
Expand All @@ -1402,7 +1403,7 @@ julia> basis(P2xP2)
```
"""
betti(X::AbstractVariety) = length.(basis(X))
betti_numbers(X::AbstractVariety) = length.(basis(X))

@doc raw"""
integral(x::MPolyDecRingElem)
Expand Down
Loading

0 comments on commit c8a64e6

Please sign in to comment.