Skip to content

Commit

Permalink
Added D3-tadpole cancellation check for G4-fluxes
Browse files Browse the repository at this point in the history
  • Loading branch information
emikelsons committed Sep 9, 2024
1 parent 29d75bb commit 96eb31c
Show file tree
Hide file tree
Showing 39 changed files with 110 additions and 72 deletions.
9 changes: 0 additions & 9 deletions docs/oscar_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1722,15 +1722,6 @@ @PhDThesis{Lev05
school = {Technische Universität Kaiserslautern}
}

@PhDThesis{Lin16,
author = {Ling, Lin},
title = {Gauge Fluxes in F-theory Compactifications},
year = {2016},
doi = {10.11588/heidok.00021601},
type = {doctoralthesis},
school = {Heidelberg U.}
}

@Book{Liu06,
author = {Liu, Qing},
title = {Algebraic geometry and arithmetic curves. Transl. by Reinie Erné},
Expand Down
33 changes: 18 additions & 15 deletions experimental/FTheoryTools/src/AbstractFTheoryModels/attributes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1013,10 +1013,10 @@ end


@doc raw"""
zero_section_coordinates(m::AbstractFTheoryModel)
zero_section(m::AbstractFTheoryModel)
Return the zero section coordinates of the given model.
If no zero section coordinates are known, an error is raised.
Return the zero section of the given model.
If no zero section is known, an error is raised.
This information is not typically stored as an attribute for
Weierstrass and global Tate models, whose zero sections are known.
Expand All @@ -1026,38 +1026,38 @@ Assuming that the first row of the given grading is the grading under Kbar
Hypersurface model over a not fully specified base
julia> zero_section_coordinates(h)
julia> zero_section(h)
3-element Vector{QQMPolyRingElem}:
0
1
0
```
"""
function zero_section_coordinates(m::AbstractFTheoryModel)
@req has_zero_section_coordinates(m) "No zero section coordinates stored for this model"
return get_attribute(m, :zero_section_coordinates)
function zero_section(m::AbstractFTheoryModel)
@req has_zero_section(m) "No zero section stored for this model"
return get_attribute(m, :zero_section)
end


@doc raw"""
zero_section(m::AbstractFTheoryModel)
zero_section_class(m::AbstractFTheoryModel)
Return the zero section of a model as a cohomology class in the toric ambient space.
If no zero section is known, an error is raised.
Return the zero section class of a model as a cohomology class in the toric ambient space.
If no zero section class is known, an error is raised.
This information is not typically available for
Weierstrass and global Tate models, whose zero sections are known.
Weierstrass and global Tate models, whose zero section classs are known.
```jldoctest; setup = :(Oscar.LazyArtifacts.ensure_artifact_installed("QSMDB", Oscar.LazyArtifacts.find_artifacts_toml(Oscar.oscardir)))
julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base
julia> zero_section(qsm_model)
julia> zero_section_class(qsm_model)
Cohomology class on a normal toric variety given by x32 + 2*x33 + 3*x34 + x35 - x36
```
"""
function zero_section(m::AbstractFTheoryModel)
@req has_zero_section(m) "No zero section stored for this model"
return get_attribute(m, :zero_section)
function zero_section_class(m::AbstractFTheoryModel)
@req has_zero_section_class(m) "No zero section class stored for this model"
return get_attribute(m, :zero_section_class)
end


Expand Down Expand Up @@ -1234,6 +1234,9 @@ error.
julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base
julia> h = euler_characteristic(qsm_model; check = false)
378
julia> h = euler_characteristic(qsm_model; check = false)
378
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -634,19 +634,19 @@ function set_weighted_resolution_zero_sections(m::AbstractFTheoryModel, vs::Vect
set_attribute!(m, :weighted_resolution_zero_sections => result)
end

function set_zero_section_coordinates(m::AbstractFTheoryModel, desired_value::Vector{String})
function set_zero_section(m::AbstractFTheoryModel, desired_value::Vector{String})
R, _ = polynomial_ring(QQ, collect(keys(explicit_model_sections(m))), cached = false)
f = hom(R, cox_ring(base_space(m)), collect(values(explicit_model_sections(m))))
set_attribute!(m, :zero_section_coordinates => [f(eval_poly(l, R)) for l in desired_value])
set_attribute!(m, :zero_section => [f(eval_poly(l, R)) for l in desired_value])
end

function set_zero_section(m::AbstractFTheoryModel, desired_value::String)
function set_zero_section_class(m::AbstractFTheoryModel, desired_value::String)
divs = torusinvariant_prime_divisors(ambient_space(m))
cohomology_ring(ambient_space(m); check=false)
cox_gens = string.(gens(cox_ring(ambient_space(m))))
@req desired_value in cox_gens "Specified zero section is invalid"
index = findfirst(x -> x==desired_value, cox_gens)
set_attribute!(m, :zero_section => cohomology_class(divs[index]))
set_attribute!(m, :zero_section_class => cohomology_class(divs[index]))
end

function set_gauge_algebra(m::AbstractFTheoryModel, algebras::Vector{String})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ has_weighted_resolutions(m::AbstractFTheoryModel) = has_attribute(m, :weighted_r
has_weighted_resolution_generating_sections(m::AbstractFTheoryModel) = has_attribute(m, :weighted_resolution_generating_sections)
has_weighted_resolution_zero_sections(m::AbstractFTheoryModel) = has_attribute(m, :weighted_resolution_zero_sections)
has_zero_section(m::AbstractFTheoryModel) = has_attribute(m, :zero_section)
has_zero_section_coordinates(m::AbstractFTheoryModel) = has_attribute(m, :zero_section_coordinates)
has_zero_section_class(m::AbstractFTheoryModel) = has_attribute(m, :zero_section_class)
has_gauge_algebra(m::AbstractFTheoryModel) = has_attribute(m, :gauge_algebra)
has_global_gauge_quotients(m::AbstractFTheoryModel) = has_attribute(m, :global_gauge_quotients)

Expand Down
55 changes: 49 additions & 6 deletions experimental/FTheoryTools/src/G4Fluxes/properties.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ end
@doc raw"""
passes_verticality_checks(gf::G4Flux)
G4-fluxes are subject to verticality conditions described in [Lin16](@cite).
G4-fluxes are subject to verticality conditions described in [Wei18](@cite).
It is hard to verify that these condition are met. However,
we can execute a number of simple consistency checks, by
verifying that $\int_{Y}{G_4 \wedge [D_1] \wedge [zero section]} = 0$ and $\int_{Y}{G_4 \wedge [D_1] \wedge [D_2]} = 0$
Expand Down Expand Up @@ -92,17 +92,17 @@ true
"""
@attr Bool function passes_verticality_checks(g4::G4Flux)
m = model(g4)
@req (m isa WeierstrassModel || m isa GlobalTateModel || m isa HypersurfaceModel) "Verticality checks for G4-fluxes only supported for Weierstrass, global Tate and hypersurface models"
@req base_space(m) isa NormalToricVariety "Verticality checks for G4-flux currently supported only for toric base"
@req ambient_space(m) isa NormalToricVariety "Verticality checks for G4-flux currently supported only for toric ambient space"
@req has_zero_section(m) "For verticality checks, a model zero section needs to be specified"
@req (m isa WeierstrassModel || m isa GlobalTateModel || m isa HypersurfaceModel) "Tadpole cancellation checks for G4-fluxes only supported for Weierstrass, global Tate and hypersurface models"
@req base_space(m) isa NormalToricVariety "Tadpole cancellation checks for G4-flux currently supported only for toric base"
@req ambient_space(m) isa NormalToricVariety "Tadpole cancellation checks for G4-flux currently supported only for toric ambient space"
@req has_zero_section_class(m) "For verticality checks, a model zero section class needs to be specified"

# Compute the cohomology class corresponding to the hypersurface equation
cy = polynomial(cohomology_class(toric_divisor_class(ambient_space(m), degree(hypersurface_equation(m)))))

n = length(gens(cox_ring(base_space(m))))
c_ds = [polynomial(cohomology_class(d)) for d in torusinvariant_prime_divisors(ambient_space(m))[1:n]]
zero_sec = zero_section(m)
zero_sec = zero_section_class(m)

# now execute verticality checks
for i in 1:n
Expand All @@ -117,3 +117,46 @@ true
end
return true
end


@doc raw"""
passes_tadpole_cancellation_check(gf::G4Flux)
G4-fluxes are subject to the D3-tadpole cancellation condition described in [Wei18](@cite).
This check verifies that $euler_characteristic(Y)/24 - 1/2 * \int_{Y}{G_4 \wedge G_4}$ is a non-negative integer.
```jldoctest; setup = :(Oscar.LazyArtifacts.ensure_artifact_installed("QSMDB", Oscar.LazyArtifacts.find_artifacts_toml(Oscar.oscardir)))
julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base
julia> divs = torusinvariant_prime_divisors(ambient_space(qsm_model));
julia> e1 = cohomology_class(divs[35]);e2 = cohomology_class(divs[32]);e4 = cohomology_class(divs[34]);
julia> u = cohomology_class(divs[33]);v = cohomology_class(divs[30]);pb_Kbar = cohomology_class(sum([divs[k] for k in 1:29]));
julia> g4_class = (-3) // kbar3(qsm_model) * (5 * e1 * e4 + pb_Kbar * (-3 * e1 - 2 * e2 - 6 * e4 + pb_Kbar - 4 * u + v));
julia> g4 = g4_flux(qsm_model, g4_class, check = false)
G4-flux candidate lacking elementary quantization checks
julia> passes_tadpole_cancellation_check(g4)
true
```
"""
@attr Bool function passes_tadpole_cancellation_check(g4::G4Flux)
m = model(g4)
@req (m isa WeierstrassModel || m isa GlobalTateModel || m isa HypersurfaceModel) "Tadpole cancellation checks for G4-fluxes only supported for Weierstrass, global Tate and hypersurface models"
@req base_space(m) isa NormalToricVariety "Tadpole cancellation checks for G4-flux currently supported only for toric base"
@req ambient_space(m) isa NormalToricVariety "Tadpole cancellation checks for G4-flux currently supported only for toric ambient space"

# Compute the cohomology class corresponding to the hypersurface equation
cy = polynomial(cohomology_class(toric_divisor_class(ambient_space(m), degree(hypersurface_equation(m)))))

# Now check if the D3-tadpole cancellation condition holds
numb = euler_characteristic(m; check = false)/24 - 1/2*integrate(cohomology_class(ambient_space(m), polynomial(cohomology_class(g4)) * polynomial(cohomology_class(g4)) * cy); check = false)
if numb > 0 && is_integer(numb)
return true
end
return false
end
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
[1, 1, 0]
],
"hypersurface_equation": "w^2 + b * v^2 * w - u * (c0 * u^3 + c1 * u^2 * v + c2 * u * v^2 + c3 * v^3)",
"zero_section_coordinates": ["0", "1", "0"],
"zero_section": ["0", "1", "0"],
"generating_sections": [["0", "1", "-b"]]
},
"birational_models": ["model1208_2695-2.json"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
[-1, 0, 1, 2, -1, 0, -1],
[-1, -1, -1, -1, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"]
"zero_section": ["0", "0", "1"]
},
"associated_models": [
"model1408_4808-1-WSF.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
[-1, 1, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^4*e3^6*u^3 + s2*e1^2*e2^3*e3^4*u^2*v + s3*e1^2*e2^2*e3^2*u*v^2 + s4*e1^2*e2*v^3 + s5*e1*e2^2*e3^3*u^2*w + s6*e1*e2*e3*u*v*w + s8*u*w^2",
"zero_section_coordinates": ["s4", "1", "1", "1", "-s8", "0"]
"zero_section": ["s4", "1", "1", "1", "-s8", "0"]
},
"associated_models": [
"model1408_4808-1.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, 0, 1, -1, 0, 0],
[-1, -1, -1, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(12*s1^2*s9^6 + s9^5*(8*s2*s5^2 - 12*s1*s6*s5) + s5^2*s6^2*s9^4)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[ 1, 1, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^2*e3*e4^4*u^3 + s2*e1*e2^2*e3^2*e4^2*u^2*v + s3*e2^2*e3^3*u*v^2 + s5*e1^2*e2*e4^3*u^2*w + s6*e1*e2*e3*e4*u*v*w + s9*e1*v*w^2",
"zero_section_coordinates": ["1", "0", "s5", "1", "1", "-s5", "1"],
"zero_section": ["1", "0", "s5", "1", "1", "-s5", "1"],
"generating_sections": [
["s9", "1", "1", "-s3", "1", "1", "0"]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, 0, -1, 0, 1, 0],
[-1, -1, 0, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(s6^2 - 4*s5*s7 - 4*s2*s9)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^2*e3*e4*u^3 + s2*e1*e2^2*e3^2*u^2*v + s5*e1^2*e2*e4^2*u^2*w + s6*e1*e2*e3*e4*u*v*w + s7*e2*e3^2*v^2*w + s9*e1*e4^2*v*w^2",
"zero_section_coordinates": ["0", "1", "1", "s7", "-s9", "1", "1"],
"zero_section": ["0", "1", "1", "s7", "-s9", "1", "1"],
"generating_sections": [
["1", "s5", "1", "1", "-s9", "0", "1"],
["1", "1", "s2", "-s7", "1", "1", "0"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, 0, 1, 0, 0],
[-1, -1, -1, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"torsion_sections": [
["1//12*(s6^2 - 4*s2*s9)", "0", "1"]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^2*e3*e5^4*u^3 + s2*e1*e2^2*e3^2*e4^2*e5^2*u^2*v + s3*e2^2*e3^3*e4^4*u*v^2 + s6*e1*e2*e3*e4*e5*u*v*w + s9*e1*v*w^2",
"zero_section_coordinates": ["1", "s1", "1", "1", "1", "-s9", "0", "1"],
"zero_section": ["1", "s1", "1", "1", "1", "-s9", "0", "1"],
"torsion_sections": [
["s9", "1", "1", "-s3", "1", "1", "1", "0"]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, -1, 0, 1, 0],
[-1, 0, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(12*s1^2*s9^6 - s5^2*s9^4*( - s6^2 + 4*s5*s7) - 12*s1*s5*s6*s9^5)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^2*e3*e4*u^3 + s5*e1^2*e2*e4^2*e5^2*u^2*w + s6*e1*e2*e3*e4*e5*u*v*w + s7*e2*e3^2*v^2*w + s9*e1*e4^2*e5^3*v*w^2",
"zero_section_coordinates": ["0", "1", "1", "s7", "-s9", "1", "1", "1"],
"zero_section": ["0", "1", "1", "s7", "-s9", "1", "1", "1"],
"generating_sections": [
["1", "1", "s1", "1", "1", "1", "-s7", "0"]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[0, -1, 0, 1, 0],
[-1, 0, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
["1//12*(8*s2*s5^2*s9^5 - s5^2*s9^4*( - s6^2 + 4*s5*s7))", " -1//2*s2*s5^3*s6*s9^7", "s5*s9^2"]
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s2*e1*e2^2*e3^2*u^2*v + s5*e1^2*e2*e4^2*u^2*w + s6*e1*e2*e3*e4*e5*u*v*w + s7*e2*e3^2*e5^2*v^2*w + s9*e1*e4^2*e5^2*v*w^2",
"zero_section_coordinates": ["0", "1", "1", "s7", "-s9", "1", "1", "1"],
"zero_section": ["0", "1", "1", "s7", "-s9", "1", "1", "1"],
"generating_sections": [
["1", "1", "s2", "-s7", "1", "1", "0", "1"]
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, 0, 1, 0],
[-1, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"torsion_sections": [
["1//12*s6^2", "1//2*s1*s7*s9", "1"],
["1//12*s6^2", "-1//2*s1*s7*s9", "1"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0, 0, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^2*e3*e4*u^3 + s6*e1*e2*e3*e4*e5*e6*u*v*w + s7*e2*e3^2*e6^3*v^2*w + s9*e1*e4^2*e5^3*v*w^2",
"zero_section_coordinates": ["0", "1", "1", "s7", "-s9", "1", "1", "1", "1"],
"zero_section": ["0", "1", "1", "s7", "-s9", "1", "1", "1", "1"],
"torsion_sections": [
["1", "1", "s1", "1", "1", "1", "-s7", "0", "1"],
["1", "s1", "1", "1", "1", "-s9", "1", "1", "0"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
[-1, 0, 1, 2, -1, 0, 1, -1, 0],
[-1, -1, -1, -1, 0, 0, 0, 1, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(12*s1^2*s9^6 + 4*(2*s2*(s5^2 - 3*s1*s8) - 3*s1*s5*s6)*s9^5 + ((s6^2 - 4*s5*s7)*s5^2 + 12*(s2^2 + 2*s1*s3)*s8^2 - 4*(4*s3*s5^2 + s2*s6*s5 - 3*s1*(s6^2 + 2*s5*s7))*s8)*s9^4 - 2*s8*( - 4*(s6*s7 + 3*s4*s8)*s5^2 + (s6^3 - 10*s3*s8*s6 + 4*s2*s7*s8)*s5 + 2*s8*(9*s1*s6*s7 + 6*s1*s4*s8 + s2*(s6^2 + 6*s3*s8)))*s9^3 + s8^2*(s6^4 - 2*s5*s7*s6^2 - 8*s5^2*s7^2 + 12*(s3^2 + 2*s2*s4)*s8^2 - 4*(9*s4*s5*s6 - s7*(5*s2*s6 + 6*s1*s7) + s3*(s6^2 + 2*s5*s7))*s8)*s9^2 - 2*s8^3*(12*s3*s4*s8^2 + 2*(s7*(s3*s6 + 4*s2*s7) - 3*s4*(s6^2 + 2*s5*s7))*s8 + s6*s7*(s6^2 - 4*s5*s7))*s9 + s8^4*((s6^2 - 4*s5*s7)*s7^2 + 4*(2*s3*s7 - 3*s4*s6)*s8*s7 + 12*s4^2*s8^2))",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
[1, 1, 0, 0]
],
"hypersurface_equation": "s1*u^3*e1^2 + s2*u^2*v*e1^2 + s3*u*v^2*e1^2 + s4*v^3*e1^2 + s5*u^2*w*e1 + s6*u*v*w*e1 + s7*v^2*w*e1 + s8*u*w^2 + s9*v*w^2",
"zero_section_coordinates": ["s9", "-s8", "1", "0"],
"zero_section": ["s9", "-s8", "1", "0"],
"generating_sections": [
["-s9", "s8", "s1 * s9^3 - s4 * s8^3 + s3 * s9 * s8^2 - s2 * s9^2 * s8", "s7 * s8^2 - s6 * s9 * s8 + s5 * s9^2"]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
[-1, 0, 1, -1, 0, 1, -1, 0],
[-1, -1, -1, 0, 0, 0, 1, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(s6^2 - 4*s5*s7 + 8*s3*s8 - 4*s2*s9)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
[1, 1, 0, 0, 0]
],
"hypersurface_equation": "s1*e2^2*e1^2*u^3 + s2*e2^2*e1*u^2*v + s3*e2^2*u*v^2 + s5*e2*e1^2*u^2*w + s6*e2*e1*u*v*w + s7*e2*v^2*w + s8*e1^2*u*w^2 + s9*e1*v*w^2",
"zero_section_coordinates": ["s9", "-s8", "1", "1", "0"],
"zero_section": ["s9", "-s8", "1", "1", "0"],
"generating_sections": [
["s7", "1", "-s3", "0", "1"],
["0", "1", "1", "s7", "-s9"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
[-1, 0, 1, 2, -1, 0, 1, -1],
[-1, -1, -1, -1, 0, 0, 0, 1]
],
"zero_section_coordinates": ["0", "0", "1"],
"zero_section": ["0", "0", "1"],
"generating_sections": [
[
"1//12*(s8^4*(12*s4^2*s8^2 - s7^2*( - s6^2 + 4*s5*s7) + s7*s8*(8*s3*s7 - 12*s4*s6)))",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
[1, 1, 0, 0, 0]
],
"hypersurface_equation": "s1*e1^2*e2^4*u^3 + s2*e1^2*e2^3*u^2*v + s3*e1^2*e2^2*u*v^2 + s4*e1^2*e2*v^3 + s5*e1*e2^2*u^2*w + s6*e1*e2*u*v*w + s7*e1*v^2*w + s8*u*w^2",
"zero_section_coordinates": ["-s7", "1", "s8", "1", "0"],
"zero_section": ["-s7", "1", "s8", "1", "0"],
"generating_sections": [
["0", "1", "s4", "1", "-s7"]
]
Expand Down
Loading

0 comments on commit 96eb31c

Please sign in to comment.