Corollary 2.7, large-boundary case: the complement of at least seven rational sections has a continuous cyclic quotient of order two at every geometric base point. The open is constructed as the finite intersection of the complements of the actual section equations.
Source context 4 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open AlgebraicGeometry
namespace ShimizuYamaguchi26BranchedCoverings
attribute [local instance] MvPolynomial.gradedAlgebratheorem large_boundary_quotient_2_7
(A : Finset (Projectivization ℚ (ℚ × ℚ))) (hcard : 7 ≤ A.card)
{Ω : Type} [Field Ω] [IsSepClosed Ω]
(ξ : Spec (.of Ω) ⟶
(A.inf fun a => Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
(linearSectionEquation (rationalPointNumerator a)
(rationalPointDenominator a))).toScheme) :
∃ φ : π₁ᵉᵗ(ξ) →ₜ* Multiplicative (ZMod 2), Function.Surjective φ := by
classical
let O : Projectivization ℚ (ℚ × ℚ) → (ProjectiveLine ℤ).Opens := fun a =>
Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
(linearSectionEquation (rationalPointNumerator a) (rationalPointDenominator a))
let U : (ProjectiveLine ℤ).Opens := A.inf O
have hsize : 6 < Fintype.card ↥A := by
rw [Fintype.card_coe]
exact lt_of_lt_of_le (by decide : 6 < 7) hcard
obtain ⟨a, b, hab, hfour⟩ :=
exists_four_dvd_coordinateDeterminant_of_six_lt_card
(ι := ↥A) (fun a => rationalPointNumerator a.val)
(fun a => rationalPointDenominator a.val)
(fun a => rationalPointCoordinates_isCoprime a.val) hsize
have hne : a.val ≠ b.val := fun h => hab (Subtype.ext h)
have hU : U ≤ integralPairComplement
(rationalPointNumerator a.val) (rationalPointDenominator a.val)
(rationalPointNumerator b.val) (rationalPointDenominator b.val) := by
change A.inf O ≤ O a.val ⊓ O b.val
exact le_inf (Finset.inf_le a.property) (Finset.inf_le b.property)
exact exists_surjective_cyclicTwo_of_four_dvd_pairDeterminant
(rationalPointNumerator a.val) (rationalPointDenominator a.val)
(rationalPointNumerator b.val) (rationalPointDenominator b.val)
(rationalPointCoordinates_isCoprime a.val) (rationalPointCoordinates_isCoprime b.val)
hfour (rationalPoint_coordinateDeterminant_ne_zero a.val b.val hne) U hU ξ