Skip to content

Commit

Permalink
Intersect. Theory: Code cleanup, correction, new example
Browse files Browse the repository at this point in the history
  • Loading branch information
wdecker committed Oct 7, 2024
1 parent 1217ab3 commit 13cbc14
Show file tree
Hide file tree
Showing 4 changed files with 185 additions and 121 deletions.
14 changes: 10 additions & 4 deletions experimental/IntersectionTheory/docs/src/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,18 @@ 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.

Expand Down
15 changes: 8 additions & 7 deletions experimental/IntersectionTheory/src/Main.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1295,7 +1295,7 @@ function schur_functor(F::AbstractBundle, λ::Partition)
λ = conjugate(λ)
X = F.parent
w = _wedge(sum(λ), chern_character(F))
S, ei = polynomial_ring(QQ, "e#" => 1:length(w))
S, ei = polynomial_ring(QQ, ["e$i" for i in 1:length(w)])
e = i -> i < 0 ? S() : ei[i+1]
M = [e(λ[i]-i+j) for i in 1:length(λ), j in 1:length(λ)]
sch = det(matrix(S, M)) # Jacobi-Trudi
Expand Down 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 13cbc14

Please sign in to comment.