Module

SeparableChartSections.lean

Nyll.JacobianVarieties.Picard.SeparableChartSections
2 declarations indexed from sourceView source ↗

Picard chart sections after a finite separable field extension

Choose a field factor of the actual finite etale splitting algebra, and transport the base-changed sections through the native iterated-pullback isomorphism. The Riemann--Roch condition is preserved by equality of the actual fibre points.

Declarations

AlgebraicGeometry.RelPicard.HasChartSections.of_iso

Transporting sections by an isomorphism of curves preserves the actual Riemann--Roch point-removal condition on all geometric fibres.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
open AlgebraicGeometry.SmoothProperCurve NeronModelInfra AlgebraicCurve
namespace AlgebraicGeometry.RelPicard
theorem HasChartSections.of_iso
    {R : Type u} [CommRing R] {C D : Scheme.{u}}
    {c : C ⟶ Spec (CommRingCat.of R)} {d : D ⟶ Spec (CommRingCat.of R)}
    (a : C ≅ D) (ha : a.hom ≫ d = c) {n g r : ℕ}
    (γ : Fin n → Fin (r - g) → SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
    (hγ : HasChartSections c γ) :
    HasChartSections d (fun i j =>
      ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩) := by
  intro k _ _ s
  obtain ⟨L, hL, hKL, M, e, he, hRR, hdim⟩ := hγ k s
  let p : pullback c s ⟶ pullback d s :=
    pullback.map c s d s a.hom (𝟙 _) (𝟙 _)
      (by rw [Category.comp_id, ha]) (by rw [Category.comp_id, Category.id_comp])
  have hp : IsIso p := inferInstance
  let E : pullback c s ≅ pullback d s := asIso p
  let e' : M.C ≅ pullback d s := e ≪≫ E
  have hEsnd : E.hom ≫ pullback.snd d s = pullback.snd c s := by
    change p ≫ pullback.snd d s = _
    simp only [p, pullback.lift_snd, Category.comp_id]
  have he' : e'.hom ≫ pullback.snd d s = M.toBase := by
    change (e.hom ≫ E.hom) ≫ pullback.snd d s = M.toBase
    rw [Category.assoc, hEsnd, he]
  refine ⟨L, hL, hKL, M, e', he', hRR, ?_⟩
  intro Z hZ hdeg
  obtain ⟨i, hi⟩ := hdim Z hZ hdeg
  refine ⟨i, ?_⟩
  have hpoints (j : Fin (r - g)) :
      (⟨(sectionFibrePoint
          ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩ s).1 ≫
            e'.inv,
        by rw [Category.assoc, ← he', e'.inv_hom_id_assoc]
           exact (sectionFibrePoint
             ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩ s).2⟩ :
          SchemeHomOver (𝟙 (Spec (CommRingCat.of k))) M.toBase) =
      ⟨(sectionFibrePoint (γ i j) s).1 ≫ e.inv,
        by rw [Category.assoc, ← he, e.inv_hom_id_assoc]
           exact (sectionFibrePoint (γ i j) s).2⟩ := by
    have hpoint : (sectionFibrePoint (γ i j) s).1 ≫ E.hom =
        (sectionFibrePoint
          ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩ s).1 := by
      apply pullback.hom_ext
      · simp only [E, asIso_hom, p, Category.assoc, pullback.lift_fst,
          pullback.lift_fst_assoc, sectionFibrePoint]
      · simp only [Category.assoc, hEsnd, sectionFibrePoint, pullback.lift_snd]
    apply Subtype.ext
    change _ ≫ (E.inv ≫ e.inv) = _
    rw [← hpoint, Category.assoc, E.hom_inv_id_assoc]
  have hsum : (∑ j : Fin (r - g), Finsupp.single
      (M.pointEquivPlace
        ⟨(sectionFibrePoint
          ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩ s).1 ≫
            e'.inv,
          by rw [Category.assoc, ← he', e'.inv_hom_id_assoc]
             exact (sectionFibrePoint
               ⟨(γ i j).1 ≫ a.hom, by rw [Category.assoc, ha]; exact (γ i j).2⟩ s).2⟩)
        (1 : ℤ)) = ∑ j : Fin (r - g), Finsupp.single
      (M.pointEquivPlace
        ⟨(sectionFibrePoint (γ i j) s).1 ≫ e.inv,
          by rw [Category.assoc, ← he, e.inv_hom_id_assoc]
             exact (sectionFibrePoint (γ i j) s).2⟩) (1 : ℤ) := by
    apply Finset.sum_congr rfl
    intro j _
    rw [hpoints]
  rw [hsum]
  exact hi
AlgebraicGeometry.RelPicard.exists_finite_separable_hasChartSections_of_field

A smooth proper geometrically integral pointed curve over any field has actual Picard chart sections after a finite separable field extension.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
open AlgebraicGeometry.SmoothProperCurve NeronModelInfra AlgebraicCurve
namespace AlgebraicGeometry.RelPicard
theorem exists_finite_separable_hasChartSections_of_field
    (K : Type u) [Field K] {C : Scheme.{u}}
    (c : C ⟶ Spec (CommRingCat.of K)) [IsProper c]
    [SmoothOfRelativeDimension 1 c] [GeometricallyIntegral c]
    (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of K))) c) :
    ∃ (L : Type u) (_ : Field L) (_ : Algebra K L) (_ : Module.Finite K L)
      (_ : Algebra.IsSeparable K L) (n g r : ℕ) (_ : 2 * g < r)
      (γ : Fin n → Fin (r - g) →
        SchemeHomOver (𝟙 (Spec (CommRingCat.of L))) (SmoothProperCurve.baseChange K c L)),
      HasChartSections (SmoothProperCurve.baseChange K c L) γ