Moduleexists_forall_basis_pushforward_dualNumberThickening_of_forall_basis.lean
Nyll.JacobianVarieties.Picard.exists_forall_basis_pushforward_dualNumberThickening_of_forall_basis
17 declarations indexed from sourceView source ↗ Module documentation
Lifting pushforward bases to dual-number thickenings
Lift a basis of the structure-sheaf pushforward through a cartesian dual-number thickening. The proof uses the unique constant and infinitesimal decomposition on affine opens.
Declarations
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.thick
DocumentationThe projection from the dual-number thickening to the original base change.
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.zeroSec
DocumentationThe zero section of the dual-number thickening.
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.zeroSec_thick
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.surjective_spec_fst
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.isPullback_zeroSec
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.surjective_zeroSec
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.isClosedImmersion_zeroSec
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.thick_zeroSec_apply
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.zeroSec_thick_apply
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.thick_preimage_zeroSec_preimage
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.isAffineOpen_zeroSec_preimage
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.exists_basis_of_dualNumber_decomp
Source context 19 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
Lean source · full declarationtheorem exists_basis_of_dualNumber_decomp
{P Pε Q Qε : Type*} [CommRing P] [CommRing Pε] [CommRing Q] [CommRing Qε]
(σ : P →+* Pε) (σ' : Q →+* Qε) (φ : P →+* Q) (φε : Pε →+* Qε)
(hcomm : ∀ x, φε (σ x) = σ' (φ x)) (εP : Pε) (εQ : Qε) (hε : φε εP = εQ)
(hX : ∀ u : Pε, ∃ a b : P, u = σ a + εP * σ b)
(hYex : ∀ y : Qε, ∃ a b : Q, y = σ' a + εQ * σ' b)
(hYuniq : ∀ a b : Q, σ' a + εQ * σ' b = 0 → a = 0 ∧ b = 0)
{d : ℕ} :
let _ : Algebra P Q := φ.toAlgebra
let _ : Algebra Pε Qε := φε.toAlgebra
∀ (bₐ : Module.Basis (Fin d) P Q),
∃ b : Module.Basis (Fin d) Pε Qε, ∀ i, b i = σ' (bₐ i) := by
intro algQ algQε bₐ
have smulQ : ∀ (p : P) (q : Q), p • q = φ p * q := fun _ _ => rfl
have smulQε : ∀ (p : Pε) (q : Qε), p • q = φε p * q := fun _ _ => rfl
have expand : ∀ a : Q, σ' a = ∑ i, (σ (bₐ.repr a i)) • σ' (bₐ i) := by
intro a
conv_lhs => rw [← bₐ.sum_repr a]
rw [map_sum]
refine Finset.sum_congr rfl fun i _ => ?_
rw [smulQ, map_mul, smulQε, hcomm]
have hli : LinearIndependent Pε (fun i => σ' (bₐ i)) := by
rw [Fintype.linearIndependent_iff]
intro g hg i
choose a b hab using fun i => hX (g i)
have hsum : ∑ i, g i • σ' (bₐ i) = σ' (∑ i, a i • bₐ i) + εQ * σ' (∑ i, b i • bₐ i) := by
rw [map_sum, map_sum, Finset.mul_sum, ← Finset.sum_add_distrib]
refine Finset.sum_congr rfl fun i _ => ?_
rw [smulQε, hab i, map_add, map_mul, hcomm, hcomm, hε, smulQ, smulQ, map_mul, map_mul]
ring
rw [hsum] at hg
obtain ⟨h1, h2⟩ := hYuniq _ _ hg
have ha : a i = 0 := (Fintype.linearIndependent_iff.mp bₐ.linearIndependent a h1) i
have hb : b i = 0 := (Fintype.linearIndependent_iff.mp bₐ.linearIndependent b h2) i
rw [hab i, ha, hb, map_zero, mul_zero, add_zero]
have hsp : ⊤ ≤ Submodule.span Pε (Set.range fun i => σ' (bₐ i)) := by
rintro y -
obtain ⟨a, b, rfl⟩ := hYex y
refine Submodule.add_mem _ ?_ ?_
· rw [expand a]
exact Submodule.sum_mem _ fun i _ => Submodule.smul_mem _ _ (Submodule.subset_span ⟨i, rfl⟩)
· rw [expand b, Finset.mul_sum]
refine Submodule.sum_mem _ fun i _ => ?_
rw [smulQε, ← mul_assoc, ← hε, ← map_mul, ← smulQε]
exact Submodule.smul_mem _ _ (Submodule.subset_span ⟨i, rfl⟩)
exact ⟨Module.Basis.mk hli hsp, fun i => Module.Basis.mk_apply hli hsp i⟩
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.preimage_thick_eq
Source context 21 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
section Geom
variable {C' : Scheme.{u}} (c' : C' ⟶ Spec (.of R))
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.liftSec
DocumentationPull a section to the thickening using the cartesian preimage identity.
Source context 21 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
section Geom
variable {C' : Scheme.{u}} (c' : C' ⟶ Spec (.of R))
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.liftSec_restrict
Source context 21 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
section Geom
variable {C' : Scheme.{u}} (c' : C' ⟶ Spec (.of R))
JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard.ThickeningAux.exists_basis_thick_preimage
Source context 21 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.DualThickeningBasis
attribute [-instance]
AlgebraicGeometry.SmoothOfRelativeDimension.fiberToSpecResidueField
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_snd
AlgebraicGeometry.SmoothOfRelativeDimension.pullback_fst
AlgebraicGeometry.SmoothOfRelativeDimension.smooth_one
AlgebraicGeometry.SmoothProperCurve.isIntegral_pullback_Spec_field
AlgebraicGeometry.IsProper.fiberToSpecResidueField
attribute [-simp]
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_hom_app_coe
AlgebraicGeometry.RelPicard.BaseChange.relSubPicPresheafRestrictIso_inv_app_coe
AlgebraicGeometry.RelPicard.BaseChange.restrict_P
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_snd
AlgebraicGeometry.SmoothProperCurve.sectionBaseChange_coe_fst
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
namespace AlgebraicGeometry
namespace RelPicard
namespace ThickeningAux
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry
variable {R : Type u} [CommRing R] {C : Scheme.{u}} (c : C ⟶ Spec (.of R)) (A : Type u) [CommRing
A] [Algebra R A]
section Geom
variable {C' : Scheme.{u}} (c' : C' ⟶ Spec (.of R))
Lean source · full declarationtheorem exists_basis_thick_preimage
{f₀ : Limits.pullback c' (specMap R A) ⟶ Limits.pullback c (specMap R A)} [IsAffineHom f₀]
{fε₀ : Limits.pullback c' (specMap R (DualNumber A)) ⟶ Limits.pullback c (specMap R (DualNumber
A))}
(hw : fε₀ ≫ thick c A = thick c' A ≫ f₀)
(hover : fε₀ ≫ Limits.pullback.snd c (specMap R (DualNumber A)) = Limits.pullback.snd c'
(specMap R (DualNumber A)))
{d : ℕ} (U W : (Limits.pullback c (specMap R A)).Opens) (hWU : W ≤ U) (hWaff : IsAffineOpen W)
(e : Fin d → Γ(Limits.pullback c' (specMap R A), f₀ ⁻¹ᵁ U))
(bₐ : Module.Basis (Fin d) Γ(Limits.pullback c (specMap R A), W) Γ((Scheme.Modules.pushforward
f₀).obj (𝟙_ _), W))
(hbₐ : ∀ i, bₐ i = (Limits.pullback c' (specMap R A)).presheaf.map (homOfLE
(Scheme.Hom.preimage_mono f₀ hWU)).op (e i))
(hWε : thick c A ⁻¹ᵁ W ≤ thick c A ⁻¹ᵁ U) :
∃ b : Module.Basis (Fin d) Γ(Limits.pullback c (specMap R (DualNumber A)), thick c A ⁻¹ᵁ W)
Γ((Scheme.Modules.pushforward fε₀).obj (𝟙_ _), thick c A ⁻¹ᵁ W),
∀ i, b i = ((Scheme.Modules.pushforward fε₀).obj (𝟙_ _)).presheaf.map (homOfLE hWε).op
(show Γ((Scheme.Modules.pushforward fε₀).obj (𝟙_ _), thick c A ⁻¹ᵁ U) from liftSec c A c'
hw U (e i)) := by
have hpre : fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W) = thick c' A ⁻¹ᵁ (f₀ ⁻¹ᵁ W) := preimage_thick_eq c A c' hw W
let σ : Γ(Limits.pullback c (specMap R A), W) →+* Γ(Limits.pullback c (specMap R (DualNumber A)),
thick c A ⁻¹ᵁ W) :=
((thick c A).appLE W (thick c A ⁻¹ᵁ W) le_rfl).hom
let σ' : Γ(Limits.pullback c' (specMap R A), f₀ ⁻¹ᵁ W) →+*
Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) :=
((thick c' A).appLE (f₀ ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) hpre.le).hom
let φ : Γ(Limits.pullback c (specMap R A), W) →+* Γ(Limits.pullback c' (specMap R A), f₀ ⁻¹ᵁ W)
:= (f₀.app W).hom
let φε : Γ(Limits.pullback c (specMap R (DualNumber A)), thick c A ⁻¹ᵁ W) →+*
Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) := (fε₀.app
(thick c A ⁻¹ᵁ W)).hom
let iX := algebraOfHom (Limits.pullback.snd c (specMap R (DualNumber A))) (thick c A ⁻¹ᵁ W)
let iY := algebraOfHom (Limits.pullback.snd c' (specMap R (DualNumber A))) (fε₀ ⁻¹ᵁ (thick c A
⁻¹ᵁ W))
let εP : Γ(Limits.pullback c (specMap R (DualNumber A)), thick c A ⁻¹ᵁ W) := algebraMap
(DualNumber A) _ DualNumber.eps
let εQ : Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) :=
algebraMap (DualNumber A) _ DualNumber.eps
have key : ∀ {S T : Scheme.{u}} {g₁ g₂ : S ⟶ T} (_ : g₁ = g₂) {U' : T.Opens} {V' : S.Opens}
(e₁ : V' ≤ g₁ ⁻¹ᵁ U') (e₂ : V' ≤ g₂ ⁻¹ᵁ U'), g₁.appLE U' V' e₁ = g₂.appLE U' V' e₂ := by
rintro _ _ _ _ rfl _ _ _ _; rfl
have hcomm : ∀ x, φε (σ x) = σ' (φ x) := by
intro x
change ((thick c A).appLE W (thick c A ⁻¹ᵁ W) le_rfl ≫ fε₀.app (thick c A ⁻¹ᵁ W)).hom x =
(f₀.app W ≫ (thick c' A).appLE (f₀ ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) hpre.le).hom x
have hmap :
(thick c A).appLE W (thick c A ⁻¹ᵁ W) le_rfl ≫ fε₀.app (thick c A ⁻¹ᵁ W) =
f₀.app W ≫ (thick c' A).appLE (f₀ ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) hpre.le := by
calc
_ = (thick c A).appLE W (thick c A ⁻¹ᵁ W) le_rfl ≫
fε₀.appLE (thick c A ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) le_rfl :=
congrArg ((thick c A).appLE W (thick c A ⁻¹ᵁ W) le_rfl ≫ ·)
(Scheme.Hom.app_eq_appLE fε₀)
_ = (fε₀ ≫ thick c A).appLE W (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))
(by intro x hx; exact hx) :=
Scheme.Hom.appLE_comp_appLE fε₀ (thick c A) W (thick c A ⁻¹ᵁ W)
(fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) le_rfl le_rfl
_ = (thick c' A ≫ f₀).appLE W (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))
(by rw [Scheme.Hom.comp_preimage]; exact hpre.le) := key hw _ _
_ = _ := Scheme.Hom.comp_appLE (thick c' A) f₀ W
(fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) (by rw [Scheme.Hom.comp_preimage]; exact hpre.le)
exact congrArg
(fun k : Γ(Limits.pullback c (specMap R A), W) ⟶
Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) => k.hom x)
hmap
have hε : φε εP = εQ := by
change ((Limits.pullback.snd c (specMap R (DualNumber A))).appLE ⊤ (thick c A ⁻¹ᵁ W) le_top ≫
fε₀.app (thick c A ⁻¹ᵁ W)).hom ((Scheme.ΓSpecIso (.of (DualNumber A))).inv.hom
DualNumber.eps) =
((Limits.pullback.snd c' (specMap R (DualNumber A))).appLE ⊤ (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))
le_top).hom
((Scheme.ΓSpecIso (.of (DualNumber A))).inv.hom DualNumber.eps)
have hmap :
(Limits.pullback.snd c (specMap R (DualNumber A))).appLE ⊤ (thick c A ⁻¹ᵁ W)
(by intro x hx; trivial) ≫ fε₀.app (thick c A ⁻¹ᵁ W) =
(Limits.pullback.snd c' (specMap R (DualNumber A))).appLE ⊤
(fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) (by intro x hx; trivial) := by
calc
_ = (Limits.pullback.snd c (specMap R (DualNumber A))).appLE ⊤ (thick c A ⁻¹ᵁ W)
(by intro x hx; trivial) ≫
fε₀.appLE (thick c A ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) le_rfl :=
congrArg
((Limits.pullback.snd c (specMap R (DualNumber A))).appLE ⊤ (thick c A ⁻¹ᵁ W)
(by intro x hx; trivial) ≫ ·) (Scheme.Hom.app_eq_appLE fε₀)
_ = (fε₀ ≫ Limits.pullback.snd c (specMap R (DualNumber A))).appLE ⊤
(fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) (by intro x hx; trivial) :=
Scheme.Hom.appLE_comp_appLE fε₀ (Limits.pullback.snd c (specMap R (DualNumber A)))
⊤ (thick c A ⁻¹ᵁ W) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))
(by intro x hx; trivial) le_rfl
_ = _ := key hover _ _
exact congrArg
(fun k : Γ(Spec (.of (DualNumber A)), ⊤) ⟶
Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) =>
k.hom ((Scheme.ΓSpecIso (.of (DualNumber A))).inv.hom DualNumber.eps)) hmap
have hX : ∀ u, ∃ a b, u = σ a + εP * σ b := by
intro u
obtain ⟨ab, hab, -⟩ :=
AlgebraicGeometry.RelPicard.existsUnique_eq_appLE_add_eps_mul_appLE_of_isAffineOpen
c A W hWaff (thick c A ⁻¹ᵁ W) rfl u
exact ⟨ab.1, ab.2, hab⟩
have hY := AlgebraicGeometry.RelPicard.existsUnique_eq_appLE_add_eps_mul_appLE_of_isAffineOpen
c' A (f₀ ⁻¹ᵁ W) (hWaff.preimage f₀) (fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W)) hpre.symm
have hYex : ∀ y, ∃ a b, y = σ' a + εQ * σ' b := by
intro y
obtain ⟨ab, hab, -⟩ := hY y
exact ⟨ab.1, ab.2, hab⟩
have hYuniq : ∀ a b, σ' a + εQ * σ' b = 0 → a = 0 ∧ b = 0 := by
intro a b hab
have h0 : (0 : Γ(Limits.pullback c' (specMap R (DualNumber A)), fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))) =
σ' (0 : Γ(Limits.pullback c' (specMap R A), f₀ ⁻¹ᵁ W) × Γ(Limits.pullback c' (specMap R A),
f₀ ⁻¹ᵁ W)).1 +
εQ * σ' (0 : Γ(Limits.pullback c' (specMap R A), f₀ ⁻¹ᵁ W) × Γ(Limits.pullback c'
(specMap R A), f₀ ⁻¹ᵁ W)).2 := by
change (0 : Γ(Limits.pullback c' (specMap R (DualNumber A)),
fε₀ ⁻¹ᵁ (thick c A ⁻¹ᵁ W))) = σ' 0 + εQ * σ' 0
rw [map_zero, mul_zero, add_zero]
have := (hY 0).unique (y₁ := (a, b)) (y₂ := (0, 0)) hab.symm h0
exact ⟨congrArg Prod.fst this, congrArg Prod.snd this⟩
obtain ⟨b, hb⟩ := exists_basis_of_dualNumber_decomp σ σ' φ φε hcomm εP εQ hε hX hYex hYuniq bₐ
refine ⟨b, fun i => ?_⟩
exact (hb i).trans ((congrArg σ' (hbₐ i)).trans (liftSec_restrict c A c' hw hWU (e i)).symm)
AlgebraicGeometry.RelPicard.exists_forall_basis_pushforward_dualNumberThickening_of_forall_basis
Source context 16 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicGeometry.RelPicard
open _root_.JacobianVarieties.Picard.Proofs.DualThickeningBasis
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.AlgebraicGeometry
open _root_.NeronModelInfra
open _root_.AlgebraicGeometry.RelPicard
open _root_.AlgebraicGeometry.Scheme.TwoAffineOpenCover
attribute [local instance] ThickeningAux.surjective_zeroSec
attribute [local instance] ThickeningAux.isClosedImmersion_zeroSec
open _root_.JacobianVarieties.Picard.Proofs.DualThickeningBasis.AlgebraicGeometry.RelPicard in
open ThickeningAux in