Skip to content

Commit

Permalink
Merge branch 'master' into two_neighbor_step_in_char_0
Browse files Browse the repository at this point in the history
  • Loading branch information
simonbrandhorst committed Oct 30, 2024
2 parents c25dddb + 020e83a commit 67a8d04
Show file tree
Hide file tree
Showing 142 changed files with 1,809 additions and 786 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
profile.pb.gz
alloc-profile.pb.gz
LocalPreferences.toml
Manifest.toml
Manifest*.toml
.DS_Store
*~
*.swp
Expand Down
6 changes: 3 additions & 3 deletions Artifacts.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[QSMDB]
git-tree-sha1 = "5c82e5ff3aa99f2aa660c9ffb3caa57ee535cc21"
git-tree-sha1 = "52686066016440cf2e6e286a923aed887658543c"
lazy = true

[[QSMDB.download]]
sha256 = "3f69aae0fca02d74764f709c622388c564e6e144a8b11347dadef5725a65b0a2"
url = "https://github.com/oscar-system/Oscar.jl/releases/download/archive-tag-1/qsmdb.tar.gz"
sha256 = "2b0a368c07d368f3973352b7f6e856214e25383d2cc3a78c70415afe247a997e"
url = "https://github.com/oscar-system/Oscar.jl/releases/download/archive-tag-1/QSMDB-2.tar.gz"

[gap_extraperfect]
git-tree-sha1 = "084fa12573e5089ceb3299f9d341f244b415da52"
Expand Down
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
cohomCalg_jll = "5558cf25-a90e-53b0-b813-cadaa3ae7ade"

[compat]
AbstractAlgebra = "0.43.1"
AlgebraicSolving = "0.7.0"
AbstractAlgebra = "0.43.7"
AlgebraicSolving = "0.8.0"
Distributed = "1.6"
GAP = "0.12.0"
Hecke = "0.34.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,18 @@ sum(M::SubquoModule{T},N::SubquoModule{T}) where T
intersect(M::SubquoModule{T}, N::SubquoModule{T}) where T
```

```@docs
annihilator(N::SubquoModule{T}) where T
```

```@docs
quotient(M::SubquoModule{T}, N::SubquoModule{T}) where T
```

```@docs
quotient(M::SubquoModule{T}, J::MPolyIdeal{T}) where T
```

## Submodules and Quotients

```@docs
Expand Down
4 changes: 4 additions & 0 deletions docs/src/CommutativeAlgebra/affine_algebras.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@ simplify(f::MPolyQuoRingElem)
==(f::MPolyQuoRingElem{T}, g::MPolyQuoRingElem{T}) where T
```

```@docs
is_invertible_with_inverse(f::MPolyQuoRingElem)
```

In the graded case, we additionally have:

```@docs
Expand Down
2 changes: 1 addition & 1 deletion docs/src/CommutativeAlgebra/ideals.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Given two ideals $I, J$ of a ring $R$, the saturation of $I$ with respect to $J$
$I:J^{\infty} = \bigl\{ f \in R \:\big|\: f J^k \!\subset I {\text{ for some }}k\geq 1 \bigr\} = \textstyle{\bigcup\limits_{k=1}^{\infty} (I:J^k)}.$

```@docs
saturation(I::MPolyIdeal{T}, J::MPolyIdeal{T}) where T
saturation(I::MPolyIdeal{T}, J::MPolyIdeal{T}; iteration::Bool=false) where T
saturation_with_index(I::MPolyIdeal{T}, J::MPolyIdeal{T}) where T
```

Expand Down
2 changes: 1 addition & 1 deletion docs/src/DeveloperDocumentation/design_decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ software frameworks on a lower level:
- Gap

So: Please use it. It is safe to assume all can be improved, however, if we try
to perfect every single line of code again and again, we we won't get anywhere;
to perfect every single line of code again and again, we won't get anywhere;
there is a balance to be found.
For preference:
```
Expand Down
5 changes: 3 additions & 2 deletions docs/src/Groups/action.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ action_function(Omega::GSetByElements)
action_homomorphism(Omega::GSetByElements{T}) where T<:GAPGroup
is_conjugate(Omega::GSet, omega1, omega2)
is_conjugate_with_data(Omega::GSet, omega1, omega2)
orbit(Omega::GSetByElements{<:GAPGroup}, omega::T) where T
orbit(Omega::GSetByElements{<:GAPGroup, S}, omega::S) where S
orbit(G::PermGroup, omega)
orbits(Omega::T) where T <: GSetByElements{TG} where TG <: GAPGroup
```
Expand All @@ -70,5 +70,6 @@ orbits(Omega::T) where T <: GSetByElements{TG} where TG <: GAPGroup
## Stabilizers

```@docs
stabilizer(G::Oscar.GAPGroup, pnt::Any, actfun::Function)
stabilizer(G::GAPGroup, pnt::Any, actfun::Function)
stabilizer(Omega::GSet)
```
4 changes: 2 additions & 2 deletions docs/src/PolyhedralGeometry/Polyhedra/constructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ julia> P = polyhedron(([-1 0; 1 0], [0,1]), ([0 1], [0]))
Polyhedron in ambient dimension 2
julia> facets(P)
2-element SubObjectIterator{AffineHalfspace{QQFieldElem}} over the Halfspaces of R^2 described by:
2-element SubObjectIterator{AffineHalfspace{QQFieldElem}} over the halfspaces of R^2 described by:
-x_1 <= 0
x_1 <= 1
julia> affine_hull(P)
1-element SubObjectIterator{AffineHyperplane{QQFieldElem}} over the Hyperplanes of R^2 described by:
1-element SubObjectIterator{AffineHyperplane{QQFieldElem}} over the hyperplanes of R^2 described by:
x_2 = 0
Expand Down
8 changes: 7 additions & 1 deletion docs/src/PolyhedralGeometry/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,13 @@ Some methods will require input or return output in form of an `IncidenceMatrix`
IncidenceMatrix
```

From the example it can be seen that this type supports `julia`'s matrix functionality. There are also functions to retrieve specific rows or columns as a `Set` over the non-zero indices.
The unique nature of the `IncidenceMatrix` allows for different ways of construction:

```@docs
incidence_matrix
```

From the examples it can be seen that this type supports `julia`'s matrix functionality. There are also functions to retrieve specific rows or columns as a `Set` over the non-zero indices.

```@docs
row(i::IncidenceMatrix, n::Int)
Expand Down
2 changes: 1 addition & 1 deletion etc/test_formatting.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Pkg
Pkg.activate(; temp=true)
Pkg.add("Test")
Pkg.add("JuliaFormatter")
Pkg.add(name="JuliaFormatter", version="1")
using Test
using JuliaFormatter

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1052,7 +1052,7 @@ julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters =
Hypersurface model over a concrete base
julia> zero_section_class(qsm_model)
Cohomology class on a normal toric variety given by x32 + 2*x33 + 3*x34 + x35 - x36
Cohomology class on a normal toric variety given by e2 + 2*u + 3*e4 + e1 - w
```
"""
function zero_section_class(m::AbstractFTheoryModel)
Expand Down Expand Up @@ -1741,7 +1741,7 @@ end


@doc raw"""
simplified dual_graph(m::AbstractFTheoryModel)
simplified_dual_graph(m::AbstractFTheoryModel)
This method returns the simplified dual graph of the QSM model in question.
Note that no labels are (currently) attached to the vertices/nodes or edges.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ julia> x1, x2, x3, x4, x, y, z = gens(cox_ring(ambient_space(t)))
julia> blowup_center = ideal_sheaf(ambient_space(t), ideal([x, y, x1]))
Sheaf of ideals
on normal toric variety
on normal, simplicial toric variety
with restrictions
1: Ideal (x_5_1, x_4_1, x_1_1)
2: Ideal (1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ function hypersurface_model(base::NormalToricVariety, fiber_ambient_space::Norma
@req length(ds) == 1 "Inconsistency in determining the degree of the hypersurface equation"
@req ds[1] == divisor_class(anticanonical_divisor_class(ambient_space)).coeff "Degree of hypersurface equation differs from anticanonical bundle"
explicit_model_sections = Dict{String, MPolyRingElem}()
gens_S = gens(cox_ring(ambient_space))
gens_S = gens(cox_ring(base))
for k in 1:length(gens_S)
explicit_model_sections[string(gens_S[k])] = gens_S[k]
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
[1, 2, 3, 4, 6]
],
"zero_section_class": "z",
"zero_section": ["1", "1", "0"]
"zero_section": ["1", "1", "0"],
"resolutions": [
[
[
Expand Down Expand Up @@ -289,11 +289,8 @@
["e99_4", "e99_8"],
["e99_4", "e99_9"],
["e99_8", "e99_9"],
["e99_9", "e99_11"],
["e99_9", "e99_11"]

["y", "z"],
["x", "ea_1"],
["z", "ea_2"]
],
[
"e9_1", "e9_2", "e9_3", "e9_4",
Expand Down Expand Up @@ -328,8 +325,7 @@
"e63_1", "e63_2", "e63_3", "e63_4", "e63_5", "e63_6", "e63_7", "e63_8", "e63_9", "e63_10", "e63_11", "e63_12", "e63_13", "e63_14",
"e75_1", "e75_2", "e75_3", "e75_4", "e75_5", "e75_6", "e75_7", "e75_8", "e75_9", "e75_10", "e75_11", "e75_12", "e75_13", "e75_14",
"e87_1", "e87_2", "e87_3", "e87_4", "e87_5", "e87_6", "e87_7", "e87_8", "e87_9", "e87_10", "e87_11", "e87_12", "e87_13", "e87_14",
"e99_1", "e99_2", "e99_3", "e99_4", "e99_5", "e99_6", "e99_7", "e99_8", "e99_9", "e99_10", "e99_11", "e99_12", "e99_13", "e99_14",
"ea_1", "ea_2", "ea_3"
"e99_1", "e99_2", "e99_3", "e99_4", "e99_5", "e99_6", "e99_7", "e99_8", "e99_9", "e99_10", "e99_11", "e99_12", "e99_13", "e99_14"
]
]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ function literature_model(model_dict::Dict{String, Any}; model_parameters::Dict{
if model_dict["arxiv_data"]["id"] == "1903.00009"

# Read in the QSM-model form the database
model_dict["literature_identifier"] = "1903.00009"
model_dict["literature_identifier"] = "1903_00009"
k = model_parameters["k"]
qsmd_path = artifact"QSMDB"
qsm_model = load(joinpath(qsmd_path, "$k.mrdi"))
Expand Down Expand Up @@ -276,6 +276,11 @@ function literature_model(model_dict::Dict{String, Any}; model_parameters::Dict{
@req dim(base_space) == Int(model_dict["model_data"]["base_dim"]) "Model requires base dimension different from dimension of provided base"
end

# Add additional information that is always known for weierstrass/tate
if (model_dict["model_descriptors"]["type"] == "weierstrass") || (model_dict["model_descriptors"]["type"] == "tate")
model_dict["model_data"]["zero_section_class"] = "z"
end

# Construct the model
model = _construct_literature_model_over_concrete_base(model_dict, base_space, defining_classes_provided, completeness_check)
@vprint :FTheoryModelPrinter 0 "Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!\n\n"
Expand Down Expand Up @@ -634,7 +639,7 @@ function _set_all_attributes(model::AbstractFTheoryModel, model_dict::Dict{Strin
set_zero_section(model, string.(model_dict["model_data"]["zero_section"]))
end

if haskey(model_dict["model_data"], "zero_section_class")
if haskey(model_dict["model_data"], "zero_section_class") && base_space(model) isa NormalToricVariety
set_zero_section_class(model, string.(model_dict["model_data"]["zero_section_class"]))
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,6 @@ function _create_literature_model_index()
JSON.print(file, index)
end
open(joinpath(@__DIR__,"model_indices.json"), "w") do file
JSON.print(file, sort(model_indices), 2)
JSON.print(file, model_indices, 2)
end
end
72 changes: 36 additions & 36 deletions experimental/FTheoryTools/src/LiteratureModels/model_indices.json
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
{
"model1109_3454.json": "1",
"model1208_2695-1.json": "2",
"model1208_2695-2.json": "3",
"model1212_2949-1.json": "4",
"model1212_2949-2.json": "5",
"model1212_2949-3.json": "6",
"model1212_2949-4.json": "7",
"model1212_2949-5.json": "8",
"model1212_2949-6.json": "9",
"model1212_2949-7.json": "10",
"model1408_4808-1-WSF.json": "13",
"model1511_03209.json": "46",
"model1408_4808-1.json": "14",
"model1408_4808-10-WSF.json": "31",
"model1408_4808-10.json": "32",
"model1408_4808-11-WSF.json": "33",
"model1408_4808-11.json": "34",
"model1408_4808-1-WSF.json": "13",
"model1212_2949-6.json": "9",
"model1408_4808-14.json": "40",
"model1408_4808-12-WSF.json": "35",
"model1408_4808-12.json": "36",
"model1408_4808-13-WSF.json": "37",
"model1408_4808-13.json": "38",
"model1408_4808-14-WSF.json": "39",
"model1408_4808-14.json": "40",
"model1408_4808-15-WSF.json": "41",
"model1408_4808-15.json": "42",
"model1408_4808-16-WSF.json": "43",
"model1408_4808-16.json": "44",
"model1408_4808-2-WSF.json": "15",
"model1408_4808-2.json": "16",
"model1408_4808-3-WSF.json": "17",
"model1408_4808-3.json": "18",
"model1408_4808-4-WSF.json": "19",
"model1408_4808-4.json": "20",
"model1408_4808-5-WSF.json": "21",
"model1212_2949-2.json": "5",
"model1212_2949-7.json": "10",
"model1408_4808-5.json": "22",
"model1408_4808-6-WSF.json": "23",
"model1408_4808-6.json": "24",
"model1212_2949-1.json": "4",
"model1408_4808-7-WSF.json": "25",
"model1408_4808-7.json": "26",
"model1408_4808-8-WSF.json": "27",
"model1408_4808-8.json": "28",
"model1208_2695-2.json": "3",
"model1408_4808-14-WSF.json": "39",
"model1903_00009.json": "45",
"model1408_4808-4-WSF.json": "19",
"model1408_4808-9-WSF.json": "29",
"model1408_4808-9.json": "30",
"model1408_4808-6-WSF.json": "23",
"model1408_4808-13-WSF.json": "37",
"model1408_4808-11-WSF.json": "33",
"model1408_4808-10-WSF.json": "31",
"model1212_2949-3.json": "6",
"model1507_05954-1.json": "11",
"model1212_2949-4.json": "7",
"model1408_4808-8.json": "28",
"model1507_05954-2.json": "12",
"model1511_03209.json": "46",
"model1903_00009.json": "45"
"model1408_4808-4.json": "20",
"model1408_4808-13.json": "38",
"model1408_4808-6.json": "24",
"model1408_4808-15.json": "42",
"model1109_3454.json": "1",
"model1408_4808-5-WSF.json": "21",
"model1408_4808-11.json": "34",
"model1208_2695-1.json": "2",
"model1408_4808-8-WSF.json": "27",
"model1408_4808-10.json": "32",
"model1408_4808-9.json": "30",
"model1408_4808-16.json": "44",
"model1408_4808-3.json": "18",
"model1408_4808-2.json": "16",
"model1408_4808-3-WSF.json": "17",
"model1212_2949-5.json": "8",
"model1408_4808-2-WSF.json": "15",
"model1408_4808-16-WSF.json": "43"
}
22 changes: 19 additions & 3 deletions experimental/FTheoryTools/src/Serialization/hypersurface_models.jl
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ function save_object(s::SerializerState, h::HypersurfaceModel)
attrs_dict[key] = value
end
end
if has_resolutions(h)
res = resolutions(h)
resolution_loci = [k[1] for k in res]
exceptional_divisors = [k[2] for k in res]
attrs_dict[:resolution_loci] = resolution_loci
attrs_dict[:exceptional_divisors] = exceptional_divisors
end
!isempty(attrs_dict) && save_typed_object(s, attrs_dict, :__attrs)
end
end
Expand All @@ -66,16 +73,25 @@ end
##########################################

function load_object(s::DeserializerState, ::Type{<:HypersurfaceModel}, params::Tuple{NormalToricVariety, NormalToricVariety, NormalToricVariety, <:MPolyRing, <:MPolyRing})
base_space, ambient_space, fiber_ambient_space, R1, R2 = params
base_space, amb_space, fiber_ambient_space, R1, R2 = params
defining_equation = load_object(s, MPolyRingElem, R1, :hypersurface_equation)
defining_equation_parametrization = load_object(s, MPolyRingElem, R2, :hypersurface_equation_parametrization)
explicit_model_sections = haskey(s, :explicit_model_sections) ? load_typed_object(s, :explicit_model_sections) : Dict{String, MPolyRingElem}()
defining_classes = haskey(s, :defining_classes) ? load_typed_object(s, :defining_classes) : Dict{String, ToricDivisorClass}()
model = HypersurfaceModel(explicit_model_sections, defining_equation_parametrization, defining_equation, base_space, ambient_space, fiber_ambient_space)
model = HypersurfaceModel(explicit_model_sections, defining_equation_parametrization, defining_equation, base_space, amb_space, fiber_ambient_space)
model.defining_classes = defining_classes
attrs_data = haskey(s, :__attrs) ? load_typed_object(s, :__attrs) : Dict{Symbol, Any}()
for (key, value) in attrs_data
set_attribute!(model, Symbol(key), value)
if (key != :resolution_loci) && (key != :exceptional_divisors)
set_attribute!(model, Symbol(key), value)
end
end
if haskey(attrs_data, :resolution_loci)
resolution_loci = attrs_data[:resolution_loci]
exceptional_divisors = attrs_data[:exceptional_divisors]
@req length(exceptional_divisors) == length(exceptional_divisors) "Inconsistency upon loading resolutions"
set_attribute!(model, :resolutions, [[resolution_loci[i], exceptional_divisors[i]] for i in 1:length(resolution_loci)])
end
@req cox_ring(ambient_space(model)) == parent(hypersurface_equation(model)) "Hypersurface polynomial not in Cox ring of toric ambient space"
return model
end
Loading

0 comments on commit 67a8d04

Please sign in to comment.