Module

baseChangeSnd_comp_restrictHom_eq_of_baseChangeSnd_comp.lean

Nyll.JacobianVarieties.Picard.baseChangeSnd_comp_restrictHom_eq_of_baseChangeSnd_comp
45 declarations indexed from sourceView source ↗

Restriction maps on Picard points commute with a compatible base change. The proof compares the pulled-back Poincare bundles using explicit pullback isomorphisms.

Declarations

JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.rigSection_fst''

The first projection of the rigidifying section.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem rigSection_fst'' {C T : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of κ))
    (t : T ⟶ Spec (CommRingCat.of κ))
    (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of κ))) cc) : rigSection cc t e ≫ pullback.fst cc t =
      t ≫ e.1
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.rigSection_snd''

The second projection of the rigidifying section.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem rigSection_snd'' {C T : Scheme.{u}} (cc : C ⟶ Spec (CommRingCat.of κ))
    (t : T ⟶ Spec (CommRingCat.of κ))
    (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of κ))) cc) : rigSection cc t e ≫ pullback.snd cc t =
      𝟙 T
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.baseChangeSnd_fst''

Changing the base leaves the first pullback projection unchanged.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem baseChangeSnd_fst'' {S : Type u} [CommRing S] {C T T' : Scheme.{u}}
    (cc : C ⟶ Spec (CommRingCat.of S))
    {t : T ⟶ Spec (CommRingCat.of S)} {t' : T' ⟶ Spec (CommRingCat.of S)}
    (ψ : SchemeHomOver t' t) : baseChangeSnd cc ψ ≫ pullback.fst cc t = pullback.fst cc t'
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.baseChangeSnd_snd''

The second projection after a change of base.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem baseChangeSnd_snd'' {S : Type u} [CommRing S] {C T T' : Scheme.{u}}
    (cc : C ⟶ Spec (CommRingCat.of S))
    {t : T ⟶ Spec (CommRingCat.of S)} {t' : T' ⟶ Spec (CommRingCat.of S)}
    (ψ : SchemeHomOver t' t) : baseChangeSnd cc ψ ≫ pullback.snd cc t = pullback.snd cc t' ≫ ψ.1
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.sectionBaseChange_fst''

The first projection of the base-changed section.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem sectionBaseChange_fst'' {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
    (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) :
    (sectionBaseChange κ e).1 ≫ pullback.fst c 𝔰 = 𝔰 ≫ e.1
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.sectionBaseChange_snd''

The second projection of the base-changed section.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem sectionBaseChange_snd'' {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
    (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) :
    (sectionBaseChange κ e).1 ≫ pullback.snd c 𝔰 = 𝟙 _
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.curveChange_fst''

The first projection after changing the curve.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem curveChange_fst'' {S : Type u} [CommRing S] {C C' T : Scheme.{u}}
    {c : C ⟶ Spec (CommRingCat.of S)}
    {c' : C' ⟶ Spec (CommRingCat.of S)} (f : C' ⟶ C) (hf : f ≫ c = c')
    (t : T ⟶ Spec (CommRingCat.of S)) : curveChange f hf t ≫ pullback.fst c t = pullback.fst c' t ≫
      f
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.curveChange_snd''

Changing the curve preserves the second projection.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Basic
theorem curveChange_snd'' {S : Type u} [CommRing S] {C C' T : Scheme.{u}}
    {c : C ⟶ Spec (CommRingCat.of S)}
    {c' : C' ⟶ Spec (CommRingCat.of S)} (f : C' ⟶ C) (hf : f ≫ c = c')
    (t : T ⟶ Spec (CommRingCat.of S)) : curveChange f hf t ≫ pullback.snd c t = pullback.snd c' t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.flatPt

Replace the base coordinate of a point while keeping its curve coordinate.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
def flatPt {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) (b : T ⟶ pullback y 𝔰)
    (hb : b ≫ pullback.snd y 𝔰 = t ≫ τ.1) : SchemeHomOver t (pullback.snd y 𝔰)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.flatPt_coe_fst

The flattened point has the original first coordinate.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
theorem flatPt_coe_fst {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
    (b : T ⟶ pullback y 𝔰)
    (hb : b ≫ pullback.snd y 𝔰 = t ≫ τ.1) : (flatPt y τ t b hb).1 ≫ pullback.fst y 𝔰 = b ≫
      pullback.fst y 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.flatPt_coe_snd

The flattened point lies over the specified base map.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
theorem flatPt_coe_snd {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
    (b : T ⟶ pullback y 𝔰)
    (hb : b ≫ pullback.snd y 𝔰 = t ≫ τ.1) : (flatPt y τ t b hb).1 ≫ pullback.snd y 𝔰 = t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.flatPt_comp_baseChangeSnd

Changing the base of the flattened point recovers the original map.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
theorem flatPt_comp_baseChangeSnd {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
    (b : T ⟶ pullback y 𝔰)
    (hb : b ≫ pullback.snd y 𝔰 = t ≫ τ.1) : (flatPt y τ t b hb).1 ≫ baseChangeSnd y τ = b
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.twistPt

Change the base coordinate of a point by the specified endomorphism.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
def twistPt {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (a : SchemeHomOver t (pullback.snd y 𝔰)) :
    SchemeHomOver (t ≫ τ.1) (pullback.snd y 𝔰)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.twistPt_coe

The underlying map of a twisted point.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
theorem twistPt_coe {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (a : SchemeHomOver t (pullback.snd y 𝔰)) :
    (twistPt y τ a).1 = a.1 ≫ baseChangeSnd y τ
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.twistPt_coe_fst

Twisting preserves the first coordinate.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Points
variable {Y : Scheme.{u}} (y : Y ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
theorem twistPt_coe_fst {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (a : SchemeHomOver t (pullback.snd y 𝔰)) :
    (twistPt y τ a).1 ≫ pullback.fst y 𝔰 = a.1 ≫ pullback.fst y 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piHom

Compare the two iterated pullbacks after twisting the base coordinate.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
def piHom : pullback (baseChange R c κ) (t ≫ τ.1) ⟶ pullback (baseChange R c κ) t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piInv

The inverse comparison between the iterated pullbacks.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
def piInv : pullback (baseChange R c κ) t ⟶ pullback (baseChange R c κ) (t ≫ τ.1)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piHom_snd

The comparison preserves the outer second projection.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piHom_snd : piHom c τ t ≫ pullback.snd _ _ = pullback.snd _ _
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piInv_snd

The inverse comparison preserves the outer second projection.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piInv_snd : piInv c τ t ≫ pullback.snd _ _ = pullback.snd _ _
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piHom_fst_fst

The comparison preserves the inner first projection.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piHom_fst_fst :
    piHom c τ t ≫ pullback.fst _ _ ≫ pullback.fst c 𝔰 = pullback.fst _ _ ≫ pullback.fst c 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piInv_fst_fst

The inverse comparison preserves the inner first projection.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piInv_fst_fst :
    piInv c τ t ≫ pullback.fst _ _ ≫ pullback.fst c 𝔰 = pullback.fst _ _ ≫ pullback.fst c 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piHom_fst_snd

The inner base coordinate after the comparison.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piHom_fst_snd :
    piHom c τ t ≫ pullback.fst _ _ ≫ pullback.snd c 𝔰 = pullback.snd _ _ ≫ t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piInv_fst_snd

The inner base coordinate after the inverse comparison.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piInv_fst_snd :
    piInv c τ t ≫ pullback.fst _ _ ≫ pullback.snd c 𝔰 = pullback.snd _ _ ≫ t ≫ τ.1
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piIso

The isomorphism between the two iterated pullbacks.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
def piIso : pullback (baseChange R c κ) (t ≫ τ.1) ≅ pullback (baseChange R c κ) t where
  hom := piHom c τ t
  inv := piInv c τ t
  hom_inv_id := by
    apply pullback.hom_ext
    · apply pullback.hom_ext
      · simp only [Category.assoc, Category.id_comp, piInv_fst_fst, piHom_fst_fst]
      · simp only [Category.assoc, Category.id_comp, piInv_fst_snd, piHom_snd_assoc]
        exact pullback.condition.symm
    · simp only [Category.assoc, piInv_snd, piHom_snd, Category.id_comp]
  inv_hom_id := by
    apply pullback.hom_ext
    · apply pullback.hom_ext
      · simp only [Category.assoc, Category.id_comp, piHom_fst_fst, piInv_fst_fst]
      · simp only [Category.assoc, Category.id_comp, piHom_fst_snd, piInv_snd_assoc]
        exact pullback.condition.symm
    · simp only [Category.assoc, piHom_snd, piInv_snd, Category.id_comp]
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piIso_hom

The forward map of the iterated pullback isomorphism.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piIso_hom : (piIso c τ t).hom = piHom c τ t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piIso_inv

The inverse map of the iterated pullback isomorphism.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem piIso_inv : (piIso c τ t).inv = piInv c τ t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.rigSection_piHom

The iterated pullback comparison respects the rigidifying section.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Pi
variable {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) (τ : SchemeHomOver (specMap R κ)
  (specMap R κ))
  {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
theorem rigSection_piHom (e : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) :
    rigSection (baseChange R c κ) (t ≫ τ.1) (sectionBaseChange κ e) ≫ piHom c τ t =
      rigSection (baseChange R c κ) t (sectionBaseChange κ e)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.objIso

Compare an iterated module pullback with pullback along the composite.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Transport
def objIso {P Q S : Scheme.{u}} (A : P ⟶ Q) (B : Q ⟶ S) (C : P ⟶ S) (h : A ≫ B = C) (L : S.Modules)
    :
    (Scheme.Modules.pullback A).obj ((Scheme.Modules.pullback B).obj L) ≅ (Scheme.Modules.pullback
      C).obj L
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.invHomIso

Cancel pullback along an isomorphism and its inverse.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Transport
def invHomIso {P Q : Scheme.{u}} (e : P ≅ Q) (N : Q.Modules) :
    (Scheme.Modules.pullback e.inv).obj ((Scheme.Modules.pullback e.hom).obj N) ≅ N
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.squareIso

Compare module pullbacks around a commutative square.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Transport
def squareIso {P Q P' Q' : Scheme.{u}} (A : P ⟶ Q) (B : Q ⟶ Q') (A' : P ⟶ P') (B' : P' ⟶ Q')
    (h : A ≫ B = A' ≫ B')
    (L : Q'.Modules) :
    (Scheme.Modules.pullback A).obj ((Scheme.Modules.pullback B).obj L) ≅
      (Scheme.Modules.pullback A').obj ((Scheme.Modules.pullback B').obj L)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.rigidifyTransport

Transport rigidification through an isomorphism preserving the section and base.

Source context 16 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Transport
def rigidifyTransport {P₁ P₂ T : Scheme.{u}} (e : P₁ ≅ P₂) (σ₁ : T ⟶ P₁) (σ₂ : T ⟶ P₂)
    (hσ : σ₁ ≫ e.hom = σ₂)
    (q₁ : P₁ ⟶ T) (q₂ : P₂ ⟶ T) (hq : e.hom ≫ q₂ = q₁) (N : P₂.Modules) :
    (Scheme.Modules.pullback e.inv).obj (Scheme.Modules.rigidify σ₁ q₁ ((Scheme.Modules.pullback
      e.hom).obj N)) ≅
      Scheme.Modules.rigidify σ₂ q₂ N
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.qMap

Map an iterated base change to the original universal family.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Poincare
variable {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {e : SchemeHomOver (𝟙 (Spec
  (CommRingCat.of R))) c}
  {G : RelativePic0Designation R c} (hGR : RepresentsRelSubPic c e (algEquivZeroCut c e) G)
  (hG : RepresentsRelSubPic (baseChange R c κ) (sectionBaseChange κ e)
    (algEquivZeroCut (baseChange R c κ) (sectionBaseChange κ e)) (G.baseChange κ))
  (hPG : Nonempty (hG.poincare.L ≅ (BaseChange.ofR c e κ
    (hGR.poincare.pullbackAlong ⟨pullback.fst G.toBase (specMap R κ), pullback.condition⟩)).L))
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
def qMap {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (p : SchemeHomOver t (G.baseChange κ).toBase) :
    pullback (baseChange R c κ) t ⟶ pullback c G.toBase
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.qMap_fst

The curve coordinate of the map to the universal family.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Poincare
variable {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {e : SchemeHomOver (𝟙 (Spec
  (CommRingCat.of R))) c}
  {G : RelativePic0Designation R c} (hGR : RepresentsRelSubPic c e (algEquivZeroCut c e) G)
  (hG : RepresentsRelSubPic (baseChange R c κ) (sectionBaseChange κ e)
    (algEquivZeroCut (baseChange R c κ) (sectionBaseChange κ e)) (G.baseChange κ))
  (hPG : Nonempty (hG.poincare.L ≅ (BaseChange.ofR c e κ
    (hGR.poincare.pullbackAlong ⟨pullback.fst G.toBase (specMap R κ), pullback.condition⟩)).L))
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
theorem qMap_fst {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (p : SchemeHomOver t (G.baseChange κ).toBase) :
    qMap p ≫ pullback.fst c G.toBase = pullback.fst _ _ ≫ pullback.fst c 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.qMap_snd

The parameter coordinate of the map to the universal family.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Poincare
variable {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {e : SchemeHomOver (𝟙 (Spec
  (CommRingCat.of R))) c}
  {G : RelativePic0Designation R c} (hGR : RepresentsRelSubPic c e (algEquivZeroCut c e) G)
  (hG : RepresentsRelSubPic (baseChange R c κ) (sectionBaseChange κ e)
    (algEquivZeroCut (baseChange R c κ) (sectionBaseChange κ e)) (G.baseChange κ))
  (hPG : Nonempty (hG.poincare.L ≅ (BaseChange.ofR c e κ
    (hGR.poincare.pullbackAlong ⟨pullback.fst G.toBase (specMap R κ), pullback.condition⟩)).L))
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
theorem qMap_snd {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (p : SchemeHomOver t (G.baseChange κ).toBase) :
    qMap p ≫ pullback.snd c G.toBase = pullback.snd _ _ ≫ p.1 ≫ pullback.fst G.toBase 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.nonempty_poincare_pullbackAlong_iso

Compare the base-changed Poincare bundle with its original pullback.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Poincare
variable {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {e : SchemeHomOver (𝟙 (Spec
  (CommRingCat.of R))) c}
  {G : RelativePic0Designation R c} (hGR : RepresentsRelSubPic c e (algEquivZeroCut c e) G)
  (hG : RepresentsRelSubPic (baseChange R c κ) (sectionBaseChange κ e)
    (algEquivZeroCut (baseChange R c κ) (sectionBaseChange κ e)) (G.baseChange κ))
  (hPG : Nonempty (hG.poincare.L ≅ (BaseChange.ofR c e κ
    (hGR.poincare.pullbackAlong ⟨pullback.fst G.toBase (specMap R κ), pullback.condition⟩)).L))
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
include hPG in
theorem nonempty_poincare_pullbackAlong_iso {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (p : SchemeHomOver t (G.baseChange κ).toBase) :
    Nonempty ((hG.poincare.pullbackAlong p).L ≅ (Scheme.Modules.pullback (qMap p)).obj
      hGR.poincare.L)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.nonempty_poincare_pullbackAlong_iso_of_fst_eq

Compare Poincare bundles at points with the same original coordinate.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Poincare
variable {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {e : SchemeHomOver (𝟙 (Spec
  (CommRingCat.of R))) c}
  {G : RelativePic0Designation R c} (hGR : RepresentsRelSubPic c e (algEquivZeroCut c e) G)
  (hG : RepresentsRelSubPic (baseChange R c κ) (sectionBaseChange κ e)
    (algEquivZeroCut (baseChange R c κ) (sectionBaseChange κ e)) (G.baseChange κ))
  (hPG : Nonempty (hG.poincare.L ≅ (BaseChange.ofR c e κ
    (hGR.poincare.pullbackAlong ⟨pullback.fst G.toBase (specMap R κ), pullback.condition⟩)).L))
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
include hPG in
theorem nonempty_poincare_pullbackAlong_iso_of_fst_eq {T : Scheme.{u}}
    {t : T ⟶ Spec (CommRingCat.of κ)}
    (p : SchemeHomOver (t ≫ τ.1) (G.baseChange κ).toBase) (q : SchemeHomOver t (G.baseChange
      κ).toBase)
    (hpq : p.1 ≫ pullback.fst G.toBase 𝔰 = q.1 ≫ pullback.fst G.toBase 𝔰) :
    Nonempty ((hG.poincare.pullbackAlong p).L ≅
      (Scheme.Modules.pullback (piHom c τ t)).obj (hG.poincare.pullbackAlong q).L)
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.piHom_fst_baseChangeSnd

The iterated pullback comparison cancels the change of base.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Curves
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
theorem piHom_fst_baseChangeSnd {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of R)) {T : Scheme.{u}}
    (t : T ⟶ Spec (CommRingCat.of κ)) :
    piHom c τ t ≫ pullback.fst _ _ ≫ baseChangeSnd c τ = pullback.fst _ _
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.baseChangeSnd_f_fst

A compatible curve map preserves its first coordinate under base change.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Curves
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
include hcomm in
theorem baseChangeSnd_f_fst : baseChangeSnd x₀ τ ≫ f ≫ pullback.fst x 𝔰 = f ≫ pullback.fst x 𝔰
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.curveChange_piHom

Changing the curve commutes with the iterated pullback comparison.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Curves
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
include hcomm in
theorem curveChange_piHom {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) :
    curveChange f hf (t ≫ τ.1) ≫ piHom x τ t = piHom x₀ τ t ≫ curveChange f hf t
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.nonempty_curveChange_piHom_iso

The commuting comparison square gives an isomorphism of module pullbacks.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Curves
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
include hcomm in
theorem nonempty_curveChange_piHom_iso {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
    (M : (pullback (baseChange R x κ) t).Modules) :
    Nonempty ((Scheme.Modules.pullback (curveChange f hf (t ≫ τ.1))).obj ((Scheme.Modules.pullback
      (piHom x τ t)).obj M) ≅
      (Scheme.Modules.pullback (piHom x₀ τ t)).obj ((Scheme.Modules.pullback (curveChange f hf
        t)).obj M))
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.twist_comp_snd

The composite from a twisted point has the twisted base coordinate.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Core
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  {εR : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) x} {ε₀R : SchemeHomOver (𝟙 (Spec
    (CommRingCat.of R))) x₀}
  {D_R : RelativePic0Designation R x} {D₀ : RelativePic0Designation R x₀}
  (hD_R : RepresentsRelSubPic x εR (algEquivZeroCut x εR) D_R)
  (hD₀ : RepresentsRelSubPic x₀ ε₀R (algEquivZeroCut x₀ ε₀R) D₀)
  (hD : RepresentsRelSubPic (baseChange R x κ) (sectionBaseChange κ εR)
    (algEquivZeroCut (baseChange R x κ) (sectionBaseChange κ εR)) (D_R.baseChange κ))
  (hPD : Nonempty (hD.poincare.L ≅ (BaseChange.ofR x εR κ
    (hD_R.poincare.pullbackAlong ⟨pullback.fst D_R.toBase (specMap R κ), pullback.condition⟩)).L))
  (hD' : RepresentsRelSubPic (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)
    (algEquivZeroCut (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)) (D₀.baseChange κ))
  (hPD' : Nonempty (hD'.poincare.L ≅ (BaseChange.ofR x₀ ε₀R κ
    (hD₀.poincare.pullbackAlong ⟨pullback.fst D₀.toBase (specMap R κ), pullback.condition⟩)).L))
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
  (ν : SchemeHomOver (D_R.baseChange κ).toBase (D₀.baseChange κ).toBase)
  (hν : ∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) (a : SchemeHomOver t (D_R.baseChange
    κ).toBase),
    Nonempty ((hD'.poincare.pullbackAlong (NeronModelInfra.schemeHomOverComp a ν)).L ≅
      Scheme.Modules.rigidify (rigSection (baseChange R x₀ κ) t (sectionBaseChange κ ε₀R))
        (pullback.snd (baseChange R x₀ κ) t)
        ((Scheme.Modules.pullback (curveChange f hf t)).obj (hD.poincare.pullbackAlong a).L)))
theorem twist_comp_snd {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (a : SchemeHomOver t (D_R.baseChange κ).toBase) :
    ((twistPt D_R.toBase τ a).1 ≫ ν.1) ≫ pullback.snd D₀.toBase 𝔰 = t ≫ τ.1
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.flatPt_twist_eq

Poincare classification identifies the flattened twisted image with the original image.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Core
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  {εR : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) x} {ε₀R : SchemeHomOver (𝟙 (Spec
    (CommRingCat.of R))) x₀}
  {D_R : RelativePic0Designation R x} {D₀ : RelativePic0Designation R x₀}
  (hD_R : RepresentsRelSubPic x εR (algEquivZeroCut x εR) D_R)
  (hD₀ : RepresentsRelSubPic x₀ ε₀R (algEquivZeroCut x₀ ε₀R) D₀)
  (hD : RepresentsRelSubPic (baseChange R x κ) (sectionBaseChange κ εR)
    (algEquivZeroCut (baseChange R x κ) (sectionBaseChange κ εR)) (D_R.baseChange κ))
  (hPD : Nonempty (hD.poincare.L ≅ (BaseChange.ofR x εR κ
    (hD_R.poincare.pullbackAlong ⟨pullback.fst D_R.toBase (specMap R κ), pullback.condition⟩)).L))
  (hD' : RepresentsRelSubPic (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)
    (algEquivZeroCut (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)) (D₀.baseChange κ))
  (hPD' : Nonempty (hD'.poincare.L ≅ (BaseChange.ofR x₀ ε₀R κ
    (hD₀.poincare.pullbackAlong ⟨pullback.fst D₀.toBase (specMap R κ), pullback.condition⟩)).L))
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
  (ν : SchemeHomOver (D_R.baseChange κ).toBase (D₀.baseChange κ).toBase)
  (hν : ∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) (a : SchemeHomOver t (D_R.baseChange
    κ).toBase),
    Nonempty ((hD'.poincare.pullbackAlong (NeronModelInfra.schemeHomOverComp a ν)).L ≅
      Scheme.Modules.rigidify (rigSection (baseChange R x₀ κ) t (sectionBaseChange κ ε₀R))
        (pullback.snd (baseChange R x₀ κ) t)
        ((Scheme.Modules.pullback (curveChange f hf t)).obj (hD.poincare.pullbackAlong a).L)))
include hD_R hD₀ hPD hPD' hcomm hν in
theorem flatPt_twist_eq {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of κ)}
    (a : SchemeHomOver t (D_R.baseChange κ).toBase) :
    flatPt D₀.toBase τ t ((twistPt D_R.toBase τ a).1 ≫ ν.1) (twist_comp_snd τ ν a) =
      NeronModelInfra.schemeHomOverComp a ν
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.comm_of_characterisation

A map characterized by Poincare pullback commutes with the base endomorphism.

Source context 18 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Core
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  {εR : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) x} {ε₀R : SchemeHomOver (𝟙 (Spec
    (CommRingCat.of R))) x₀}
  {D_R : RelativePic0Designation R x} {D₀ : RelativePic0Designation R x₀}
  (hD_R : RepresentsRelSubPic x εR (algEquivZeroCut x εR) D_R)
  (hD₀ : RepresentsRelSubPic x₀ ε₀R (algEquivZeroCut x₀ ε₀R) D₀)
  (hD : RepresentsRelSubPic (baseChange R x κ) (sectionBaseChange κ εR)
    (algEquivZeroCut (baseChange R x κ) (sectionBaseChange κ εR)) (D_R.baseChange κ))
  (hPD : Nonempty (hD.poincare.L ≅ (BaseChange.ofR x εR κ
    (hD_R.poincare.pullbackAlong ⟨pullback.fst D_R.toBase (specMap R κ), pullback.condition⟩)).L))
  (hD' : RepresentsRelSubPic (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)
    (algEquivZeroCut (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)) (D₀.baseChange κ))
  (hPD' : Nonempty (hD'.poincare.L ≅ (BaseChange.ofR x₀ ε₀R κ
    (hD₀.poincare.pullbackAlong ⟨pullback.fst D₀.toBase (specMap R κ), pullback.condition⟩)).L))
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (τ : SchemeHomOver (specMap R κ) (specMap R κ))
  (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ)
  (ν : SchemeHomOver (D_R.baseChange κ).toBase (D₀.baseChange κ).toBase)
  (hν : ∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) (a : SchemeHomOver t (D_R.baseChange
    κ).toBase),
    Nonempty ((hD'.poincare.pullbackAlong (NeronModelInfra.schemeHomOverComp a ν)).L ≅
      Scheme.Modules.rigidify (rigSection (baseChange R x₀ κ) t (sectionBaseChange κ ε₀R))
        (pullback.snd (baseChange R x₀ κ) t)
        ((Scheme.Modules.pullback (curveChange f hf t)).obj (hD.poincare.pullbackAlong a).L)))
include hD_R hD₀ hPD hPD' hcomm hν in
theorem comm_of_characterisation :
    baseChangeSnd D_R.toBase τ ≫ ν.1 = ν.1 ≫ baseChangeSnd D₀.toBase τ
JacobianVarieties.Picard.Proofs.RestrictedBaseChange.TwistNatAux.characterisation_pullbackHom

The Picard pullback map is characterized by rigidified curve pullback.

Source context 17 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
noncomputable section
namespace TwistNatAux
variable {R : Type u} [CommRing R] {κ : Type u} [CommRing κ] [Algebra R κ]
local notation "𝔰" => specMap R κ
section Clause1
variable {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
  {εR : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) x} {ε₀R : SchemeHomOver (𝟙 (Spec
    (CommRingCat.of R))) x₀}
  {D_R : RelativePic0Designation R x} {D₀ : RelativePic0Designation R x₀}
  (hD : RepresentsRelSubPic (baseChange R x κ) (sectionBaseChange κ εR)
    (algEquivZeroCut (baseChange R x κ) (sectionBaseChange κ εR)) (D_R.baseChange κ))
  (hD' : RepresentsRelSubPic (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)
    (algEquivZeroCut (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)) (D₀.baseChange κ))
  (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
    baseChange R x₀ κ)
  (hε : (sectionBaseChange κ ε₀R).1 ≫ f = (sectionBaseChange κ εR).1)
theorem characterisation_pullbackHom {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ))
    (a : SchemeHomOver t (D_R.baseChange κ).toBase) :
    Nonempty ((hD'.poincare.pullbackAlong
        (NeronModelInfra.schemeHomOverComp a (RepresentsRelSubPic.pullbackHom f hf hε hD hD'))).L ≅
      Scheme.Modules.rigidify (rigSection (baseChange R x₀ κ) t (sectionBaseChange κ ε₀R))
        (pullback.snd (baseChange R x₀ κ) t)
        ((Scheme.Modules.pullback (curveChange f hf t)).obj (hD.poincare.pullbackAlong a).L))
AlgebraicGeometry.RelPicard.baseChangeSnd_comp_restrictHom_eq_of_baseChangeSnd_comp

Picard restriction and maps with its Poincare characterization commute with base change.

Source context 15 commands

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

section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.RestrictedBaseChange
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.AlgebraicGeometry.RelPicard
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.SmoothProperCurve
open _root_.GoodReductionJacobian
open _root_.CategoryTheory.MonoidalCategory
attribute [local simp] TwistNatAux.twistPt_coe
attribute [local simp] TwistNatAux.piIso_hom
attribute [local simp] TwistNatAux.piIso_inv
open TwistNatAux in
theorem _root_.AlgebraicGeometry.RelPicard.baseChangeSnd_comp_restrictHom_eq_of_baseChangeSnd_comp
    {R : Type u} [CommRing R] (κ : Type u) [CommRing κ] [Algebra R κ]
    {𝔛 𝔛₀ : Scheme.{u}} {x : 𝔛 ⟶ Spec (CommRingCat.of R)} {x₀ : 𝔛₀ ⟶ Spec (CommRingCat.of R)}
    {εR : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) x} {ε₀R : SchemeHomOver (𝟙 (Spec
      (CommRingCat.of R))) x₀}
    {D_R : RelativePic0Designation R x} {D₀ : RelativePic0Designation R x₀}
    (hD_R : RepresentsRelSubPic x εR (algEquivZeroCut x εR) D_R)
    (hD₀ : RepresentsRelSubPic x₀ ε₀R (algEquivZeroCut x₀ ε₀R) D₀)
    (hD : RepresentsRelSubPic (baseChange R x κ) (sectionBaseChange κ εR)
      (algEquivZeroCut (baseChange R x κ) (sectionBaseChange κ εR)) (D_R.baseChange κ))
    (hPD : Nonempty (hD.poincare.L ≅ (BaseChange.ofR x εR κ
      (hD_R.poincare.pullbackAlong ⟨pullback.fst D_R.toBase (specMap R κ), pullback.condition⟩)).L))
    (hD' : RepresentsRelSubPic (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)
      (algEquivZeroCut (baseChange R x₀ κ) (sectionBaseChange κ ε₀R)) (D₀.baseChange κ))
    (hPD' : Nonempty (hD'.poincare.L ≅ (BaseChange.ofR x₀ ε₀R κ
      (hD₀.poincare.pullbackAlong ⟨pullback.fst D₀.toBase (specMap R κ), pullback.condition⟩)).L))
    (f : pullback x₀ (specMap R κ) ⟶ pullback x (specMap R κ)) (hf : f ≫ baseChange R x κ =
      baseChange R x₀ κ)
    (τ : SchemeHomOver (specMap R κ) (specMap R κ))
    (hcomm : baseChangeSnd x₀ τ ≫ f = f ≫ baseChangeSnd x τ) :
    (∀ hε : (sectionBaseChange κ ε₀R).1 ≫ f = (sectionBaseChange κ εR).1,
      baseChangeSnd D_R.toBase τ ≫ (RepresentsRelSubPic.pullbackHom f hf hε hD hD').1 =
        (RepresentsRelSubPic.pullbackHom f hf hε hD hD').1 ≫ baseChangeSnd D₀.toBase τ) ∧
    (∀ ν : SchemeHomOver (D_R.baseChange κ).toBase (D₀.baseChange κ).toBase,
      (∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of κ)) (a : SchemeHomOver t (D_R.baseChange
        κ).toBase),
        Nonempty ((hD'.poincare.pullbackAlong (NeronModelInfra.schemeHomOverComp a ν)).L ≅
          Scheme.Modules.rigidify (rigSection (baseChange R x₀ κ) t (sectionBaseChange κ ε₀R))
            (pullback.snd (baseChange R x₀ κ) t)
            ((Scheme.Modules.pullback (curveChange f hf t)).obj (hD.poincare.pullbackAlong a).L))) →
      baseChangeSnd D_R.toBase τ ≫ ν.1 = ν.1 ≫ baseChangeSnd D₀.toBase τ)