ModuleabelJacobi_comp_eq_mul_abelJacobi_of_iso_of_classify.lean
Nyll.JacobianVarieties.Picard.abelJacobi_comp_eq_mul_abelJacobi_of_iso_of_classify
24 declarations indexed from sourceView source ↗ Module documentation
Abel–Jacobi morphisms under a curve isomorphism
Classified transport along a curve isomorphism compares the two Abel–Jacobi morphisms.
Declarations
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.inverseIso
DocumentationTensor inverses of isomorphic objects are isomorphic via the given inverse evaluations.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Monoidal
variable {𝒞 : Type*} [Category 𝒞] [MonoidalCategory 𝒞] [SymmetricCategory 𝒞]
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.inverseOfIso
DocumentationTransport the given tensor-inverse evaluation along an isomorphism of its first factor.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Monoidal
variable {𝒞 : Type*} [Category 𝒞] [MonoidalCategory 𝒞] [SymmetricCategory 𝒞]
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.rigSection_snd
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Modules
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.sectionPullbackIso
DocumentationPulling a base module to the curve and then back along the section recovers that module.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Modules
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.nonempty_iso_unit_of_field
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.qinv
DocumentationA chosen tensor inverse of the line bundle restricted to the second rigidifying section.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.qinv_isInvertible
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.qinvIso
DocumentationThe chosen inverse evaluates the restriction at the second section to the unit module.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.twist
DocumentationChange the rigidifying section using the inverse of the restricted line bundle.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.twist_L
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.twist_cut
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Twist
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.Sub2c.classify_congr
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace Sub2c
section Rep
variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)}
(ε₁ ε₂ : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c)
{D₁ D₂ : RelativePic0Designation R c}
(h₁ : RepresentsRelSubPic c ε₁ (algEquivZeroCut c ε₁) D₁)
(h₂ : RepresentsRelSubPic c ε₂ (algEquivZeroCut c ε₂) D₂)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.epsT
DocumentationTransport the section along the specified inverse curve morphism.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.epsT_comp
Source context 15 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
include hgf in
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.Phi
DocumentationPull back the line bundle and adjust its rigidifying section.
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.Phi_L
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.Phi_cut
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.I2.curveChange_comp_eq_id
Source context 15 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace I2
section Transform
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec (CommRingCat.of
R))) c')
(f : C' ⟶ C) (g : C ⟶ C') (hf : f ≫ c = c') (hg : g ≫ c' = c) (hgf : g ≫ f = 𝟙 C)
include hgf in
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.AJT.poincare_mul
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace AJT
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.AJT.isIso_curveChange
Source context 15 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace AJT
section Transport
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(e : C ≅ C') (he : e.hom ≫ c' = c) (he' : e.inv ≫ c = c')
include he in
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.AJT.graphOver_comp_curveChange
Source context 14 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace AJT
section Transport
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(e : C ≅ C') (he : e.hom ≫ c' = c) (he' : e.inv ≫ c = c')
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.AJT.transport_ofPoint
Source context 15 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace AJT
section Transport
variable {R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
(e : C ≅ C') (he : e.hom ≫ c' = c) (he' : e.inv ≫ c = c')
include he in
JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison.AJT.Phi_L_iso_of_field
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
noncomputable section
namespace AJT
AlgebraicGeometry.RelPicard.abelJacobi_comp_eq_mul_abelJacobi_of_iso_of_classify
DocumentationClassified transport along a curve isomorphism compares the two Abel–Jacobi morphisms.
Source context 11 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicGeometry.RelPicard
open _root_.JacobianVarieties.Picard.Proofs.AbelJacobiIsoComparison
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.GoodReductionJacobian
open _root_.AlgebraicGeometry.RelPicard
universe u
Lean source · full declarationtheorem abelJacobi_comp_eq_mul_abelJacobi_of_iso_of_classify
{R : Type u} [CommRing R] {C C' : Scheme.{u}}
{c : C ⟶ Spec (CommRingCat.of R)} {c' : C' ⟶ Spec (CommRingCat.of R)}
[IsProper c] [SmoothOfRelativeDimension 1 c] [GeometricallyIntegral c]
[IsProper c'] [SmoothOfRelativeDimension 1 c'] [GeometricallyIntegral c']
(ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (ε' : SchemeHomOver (𝟙 (Spec
(CommRingCat.of R))) c')
(e : C ≅ C') (he : e.hom ≫ c' = c) (he' : e.inv ≫ c = c')
{D : RelativePic0Designation R c} {D' : RelativePic0Designation R c'}
(h : RepresentsRelSubPic c ε (algEquivZeroCut c ε) D)
(h' : RepresentsRelSubPic c' ε' (algEquivZeroCut c' ε') D')
(aj : SchemeHomOver c D.toBase) (aj' : SchemeHomOver c' D'.toBase)
(haj : ∀ (K : Type u) [Field K] (t : Spec (CommRingCat.of K) ⟶ Spec (CommRingCat.of R)) (x :
SchemeHomOver t c),
Nonempty ((h.poincare.pullbackAlong
⟨x.1 ≫ aj.1, (Category.assoc _ _ _).trans ((congrArg (x.1 ≫ ·) aj.2).trans x.2)⟩).L ≅
(RelEffCartierDiv.ofPoint c x.1 x.2).lineBundle ⊗
(RelEffCartierDiv.ofPoint c (t ≫ ε.1)
((Category.assoc _ _ _).trans ((congrArg (t ≫ ·) ε.2).trans (Category.comp_id
t)))).idealModule))
(haj' : ∀ (K : Type u) [Field K] (t : Spec (CommRingCat.of K) ⟶ Spec (CommRingCat.of R)) (x :
SchemeHomOver t c'),
Nonempty ((h'.poincare.pullbackAlong
⟨x.1 ≫ aj'.1, (Category.assoc _ _ _).trans ((congrArg (x.1 ≫ ·) aj'.2).trans x.2)⟩).L ≅
(RelEffCartierDiv.ofPoint c' x.1 x.2).lineBundle ⊗
(RelEffCartierDiv.ofPoint c' (t ≫ ε'.1)
((Category.assoc _ _ _).trans ((congrArg (t ≫ ·) ε'.2).trans (Category.comp_id
t)))).idealModule))
(θ : SchemeHomOver D.toBase D'.toBase)
(hθ : ∀ {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of R))
(M : RigidifiedLineBundle c ε t) (hM : FibrewiseAlgEquivZero M)
(N : RigidifiedLineBundle c' ε' t) (hN : FibrewiseAlgEquivZero N)
(Q : T.Modules), Scheme.Modules.IsInvertible Q →
Nonempty (N.L ≅ (Scheme.Modules.pullback (curveChange (c := c) (c' := c') e.inv he' t)).obj
M.L ⊗
(Scheme.Modules.pullback (pullback.snd c' t)).obj Q) →
postComp θ (h.classify t M hM) = h'.classify t N hN)
(K : Type u) [Field K] (t : Spec (CommRingCat.of K) ⟶ Spec (CommRingCat.of R)) (x :
SchemeHomOver t c) :
(RepresentsRelSubPic.relativeGroupLaw (P := algEquivZeroGroupCut c' ε') h').mul t
⟨x.1 ≫ aj.1 ≫ θ.1, by rw [Category.assoc, Category.assoc, θ.2, aj.2, x.2]⟩
⟨t ≫ ε.1 ≫ e.hom ≫ aj'.1, by
rw [Category.assoc, Category.assoc, Category.assoc, aj'.2, he, ε.2, Category.comp_id]⟩ =
⟨(x.1 ≫ e.hom) ≫ aj'.1, by rw [Category.assoc, Category.assoc, aj'.2, he, x.2]⟩ := by
let a : SchemeHomOver t D.toBase :=
⟨x.1 ≫ aj.1, (Category.assoc _ _ _).trans ((congrArg (x.1 ≫ ·) aj.2).trans x.2)⟩
have hAa : (⟨x.1 ≫ aj.1 ≫ θ.1, by rw [Category.assoc, Category.assoc, θ.2, aj.2, x.2]⟩ :
SchemeHomOver t D'.toBase) = postComp θ a := Subtype.ext (Category.assoc _ _ _).symm
have pε : (t ≫ ε.1) ≫ c = t := (Category.assoc _ _ _).trans ((congrArg (t ≫ ·) ε.2).trans
(Category.comp_id t))
have peε : (t ≫ ε.1 ≫ e.hom) ≫ c' = t := by
rw [Category.assoc, Category.assoc, he, ε.2, Category.comp_id]
have pex : (x.1 ≫ e.hom) ≫ c' = t := by rw [Category.assoc, he, x.2]
let xB : SchemeHomOver t c' := ⟨t ≫ ε.1 ≫ e.hom, peε⟩
let xg : SchemeHomOver t c' := ⟨x.1 ≫ e.hom, pex⟩
have hB : (⟨t ≫ ε.1 ≫ e.hom ≫ aj'.1, by
rw [Category.assoc, Category.assoc, Category.assoc, aj'.2, he, ε.2, Category.comp_id]⟩ :
SchemeHomOver t D'.toBase) =
⟨xB.1 ≫ aj'.1, (Category.assoc _ _ _).trans ((congrArg (xB.1 ≫ ·) aj'.2).trans xB.2)⟩ :=
Subtype.ext (by simp only [xB, Category.assoc])
rw [hAa, hB]
let M : RigidifiedLineBundle c ε t := h.poincare.pullbackAlong a
have hM : FibrewiseAlgEquivZero M := (algEquivZeroCut c ε).pullback_mem _ _ a _ h.poincare_mem
have ha : a = h.classify t M hM := h.classify_unique _ M hM a ⟨Iso.refl _⟩
have hθa : postComp θ a = h'.classify t (I2.Phi ε ε' e.inv e.hom he' he e.hom_inv_id t M)
(I2.Phi_cut ε ε' e.inv e.hom he' he e.hom_inv_id t M hM) := by
conv_lhs => rw [ha]
exact hθ t M hM _ _ _ (Sub2c.qinv_isInvertible _ ε' _) ⟨Iso.refl _⟩
obtain ⟨e1⟩ : Nonempty ((h'.poincare.pullbackAlong (postComp θ a)).L ≅
(I2.Phi ε ε' e.inv e.hom he' he e.hom_inv_id t M).L) := by
rw [hθa]
exact h'.classify_spec _ _ _
obtain ⟨e2⟩ := AJT.Phi_L_iso_of_field ε ε' e.inv e.hom he' he e.hom_inv_id t M
obtain ⟨iM⟩ := haj K t x
obtain ⟨iB⟩ := haj' K t xB
obtain ⟨ig⟩ := haj' K t xg
obtain ⟨⟨T1⟩, -⟩ := AJT.transport_ofPoint e he he' x.1 x.2 (x.1 ≫ e.hom) pex rfl
obtain ⟨-, ⟨T2⟩⟩ := AJT.transport_ofPoint e he he' (t ≫ ε.1) pε (t ≫ ε.1 ≫ e.hom) peε
(Category.assoc _ _ _).symm
obtain ⟨dd⟩ := ((RelEffCartierDiv.ofPoint c' (t ≫ ε.1 ≫ e.hom)
peε).isInvertible_I).isInvertible_module.dual.2
have key : (I2.Phi ε ε' e.inv e.hom he' he e.hom_inv_id t M).L ⊗
(h'.poincare.pullbackAlong
⟨xB.1 ≫ aj'.1, (Category.assoc _ _ _).trans ((congrArg (xB.1 ≫ ·) aj'.2).trans xB.2)⟩).L ≅
(h'.poincare.pullbackAlong
⟨xg.1 ≫ aj'.1, (Category.assoc _ _ _).trans ((congrArg (xg.1 ≫ ·) aj'.2).trans xg.2)⟩).L :=
((e2 ≪≫ (Scheme.Modules.pullback _).mapIso iM ≪≫ Scheme.Modules.pullbackTensorObjIso _ _ _ ≪≫
(T1 ⊗ᵢ T2)) ⊗ᵢ iB) ≪≫
α_ _ _ _ ≪≫ whiskerLeftIso _ ((α_ _ _ _).symm ≪≫ (dd ⊗ᵢ Iso.refl _) ≪≫ λ_ _) ≪≫ ig.symm
obtain ⟨emul⟩ := AJT.poincare_mul (P := algEquivZeroGroupCut c' ε') h' t (postComp θ a)
⟨xB.1 ≫ aj'.1, (Category.assoc _ _ _).trans ((congrArg (xB.1 ≫ ·) aj'.2).trans xB.2)⟩
exact h'.ext_of_iso t _ _ ⟨emul ≪≫ (e1 ⊗ᵢ Iso.refl _) ≪≫ key⟩