Definitions/Def_GoodReductionJacobian_NsmulEigenSubdatum.lean
Deck action and eigensections along multiplication by n
Throughout, R is a commutative ring, f : A \to \operatorname{Spec} R a morphism of schemes carrying a relative group law L, and n a natural number; L.schemeNsmul n : A \to A is the n-fold multiplication morphism and, for an R-point x (an element of SchemeHomOver (π (Spec (CommRingCat.of R))) f), L.translate x : A \to A is the translation obtained from the group law applied to the identity point of A and to f followed by x. For an x satisfying T_x followed by [n] equals [n], deckApp is the ring endomorphism of \Gamma(A, [n]^{-1}U) obtained from T_x by appLE, using that this identity forces [n]^{-1}U \le T_x^{-1}([n]^{-1}U); accompanying lemmas record that it commutes with restriction along U \le U', fixes sections pulled back along [n], and fixes nsmulConst n U r, the image of r \in R under the structure map R \to \Gamma(A, [n]^{-1}U) attached to [n] followed by f. Two further lemmas identify the R- and \Gamma(A,U)-actions on the datum OModulePresheaf.pushforwardUnit f (L.schemeNsmul n) with multiplication by nsmulConst and by the appLE-image.
Under the standing hypothesis hG that every x in L.torsionSubset of level n satisfies the above identity, and for a function \chi from R-points to R, IsEigensection asserts that s \in \Gamma(A, [n]^{-1}U) satisfies deckApp of x applied to s equals nsmulConst n U (Ο x) times s for all such x. These sections form an R-submodule eigenSubmodule, stable under multiplication by sections of \mathcal O_A over U and under restriction; eigenSubdatum assembles them into an OModulePresheaf over f, with eigenInclusion the componentwise injective inclusion into the pushforward datum. Multiplication carries a \chi- and a \psi-eigensection to a \chi\psi-eigensection (IsEigensection.mul, eigenMul), and 1 is a 1-eigensection (eigenOne). Finally IsNsmulCharacter Ο is the conjunction of three conditions: \chi is 1 outside the n-torsion subset, \chi of the identity point is 1, and \chi is multiplicative on pairs of points of the n-torsion subset for the group law's multiplication; the constant function 1 satisfies it.
Relation to Mathlib
Mathlib has no relative group law on a scheme over Spec R, and no presheaf-of-modules datum of the shape OModulePresheaf; both, and hence the eigen-submodules and eigen-datum built here, are the project's own notions.
Where it is used
These definitions belong to the infrastructure for relative group laws and the relative Picard functor used in the good-reduction analysis of Jacobians, where the direct image of the structure sheaf along multiplication by n is decomposed according to characters of the n-torsion points.
References
- D. Mumford, Abelian Varieties, Tata Institute of Fundamental Research Studies in Mathematics 5, Oxford University Press, 1970, Β§Β§7, 15
- S. Bosch, W. LΓΌtkebohmert and M. Raynaud, NΓ©ron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 250 lines
- 36 declarations
- used in the statements of 12 theorems and imported by 13 proofs
- imports 2 definition modules
Source file: Definitions/Def_GoodReductionJacobian_NsmulEigenSubdatum.lean
Imports
Imported by
- no other definition module
Declarations
- theorem
GoodReductionJacobian.RelativeGroupLaw.appLE_congr_hom - theorem
GoodReductionJacobian.RelativeGroupLaw.preimage_le_preimage_preimage_of_comp_eq - theorem
GoodReductionJacobian.RelativeGroupLaw.appLE_comp_appLE_of_comp_eq - def
GoodReductionJacobian.RelativeGroupLaw.deckApp - theorem
GoodReductionJacobian.RelativeGroupLaw.deckApp_def - theorem
GoodReductionJacobian.RelativeGroupLaw.deckApp_map - theorem
GoodReductionJacobian.RelativeGroupLaw.deckApp_appLE - def
GoodReductionJacobian.RelativeGroupLaw.nsmulConst - theorem
GoodReductionJacobian.RelativeGroupLaw.nsmulConst_def - theorem
GoodReductionJacobian.RelativeGroupLaw.pushforwardUnit_smul_eq - theorem
GoodReductionJacobian.RelativeGroupLaw.pushforwardUnit_sections_smul_eq - theorem
GoodReductionJacobian.RelativeGroupLaw.map_nsmulConst - theorem
GoodReductionJacobian.RelativeGroupLaw.deckApp_nsmulConst - def
GoodReductionJacobian.RelativeGroupLaw.IsEigensection - theorem
GoodReductionJacobian.RelativeGroupLaw.isEigensection_iff - def
GoodReductionJacobian.RelativeGroupLaw.eigenSubmodule - theorem
GoodReductionJacobian.RelativeGroupLaw.mem_eigenSubmodule_iff - theorem
GoodReductionJacobian.RelativeGroupLaw.sections_smul_mem_eigenSubmodule - theorem
GoodReductionJacobian.RelativeGroupLaw.res_mem_eigenSubmodule - def
GoodReductionJacobian.RelativeGroupLaw.eigenSubdatum - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenSubdatum_obj - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenSubdatum_res_coe - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenSubdatum_smul_coe - def
GoodReductionJacobian.RelativeGroupLaw.eigenInclusion - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenInclusion_app - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenInclusion_injective - theorem
GoodReductionJacobian.RelativeGroupLaw.IsEigensection.mul - theorem
GoodReductionJacobian.RelativeGroupLaw.isEigensection_one_appLE - theorem
GoodReductionJacobian.RelativeGroupLaw.isEigensection_one_one - def
GoodReductionJacobian.RelativeGroupLaw.eigenMul - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenMul_coe - def
GoodReductionJacobian.RelativeGroupLaw.eigenOne - theorem
GoodReductionJacobian.RelativeGroupLaw.eigenOne_coe - def
GoodReductionJacobian.RelativeGroupLaw.IsNsmulCharacter - theorem
GoodReductionJacobian.RelativeGroupLaw.isNsmulCharacter_iff - theorem
GoodReductionJacobian.RelativeGroupLaw.isNsmulCharacter_one
Source
import Mathlib import Definitions.Def_GoodReductionJacobian_RelativeGroupLawTranslate import Definitions.Def_AlgebraicGeometry_OModulePresheafConstructions set_option autoImplicit false noncomputable section universe u open CategoryTheory CategoryTheory.Limits Opposite TopologicalSpace AlgebraicGeometry NeronModelInfra namespace GoodReductionJacobian.RelativeGroupLaw variable {R : Type u} [CommRing R] {A : Scheme.{u}} {f : A βΆ Spec (CommRingCat.of R)} (L : RelativeGroupLaw R f) (n : β) theorem appLE_congr_hom {X Y : Scheme.{u}} {g g' : X βΆ Y} (h : g = g') (U : Y.Opens) (V : X.Opens) (e : V β€ g β»ΒΉα΅ U) (e' : V β€ g' β»ΒΉα΅ U) : g.appLE U V e = g'.appLE U V e' := by subst h; rfl theorem preimage_le_preimage_preimage_of_comp_eq {X Y : Scheme.{u}} {T : X βΆ X} {q : X βΆ Y} (h : T β« q = q) (U : Y.Opens) : q β»ΒΉα΅ U β€ T β»ΒΉα΅ (q β»ΒΉα΅ U) := by change q β»ΒΉα΅ U β€ (T β« q) β»ΒΉα΅ U rw [h] theorem appLE_comp_appLE_of_comp_eq {X Y : Scheme.{u}} {T : X βΆ X} {q : X βΆ Y} (h : T β« q = q) (U : Y.Opens) (V W : X.Opens) (eβ : V β€ q β»ΒΉα΅ U) (eβ : W β€ T β»ΒΉα΅ V) (eβ : W β€ q β»ΒΉα΅ U) : q.appLE U V eβ β« T.appLE V W eβ = q.appLE U W eβ := by rw [Scheme.Hom.appLE_comp_appLE] exact appLE_congr_hom h U W _ eβ def deckApp (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : L.translate x β« L.schemeNsmul n = L.schemeNsmul n) (U : A.Opens) : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) βΆ Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) := (L.translate x).appLE ((L.schemeNsmul n) β»ΒΉα΅ U) ((L.schemeNsmul n) β»ΒΉα΅ U) (preimage_le_preimage_preimage_of_comp_eq hx U) theorem deckApp_def (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : L.translate x β« L.schemeNsmul n = L.schemeNsmul n) (U : A.Opens) : L.deckApp n x hx U = (L.translate x).appLE ((L.schemeNsmul n) β»ΒΉα΅ U) ((L.schemeNsmul n) β»ΒΉα΅ U) (preimage_le_preimage_preimage_of_comp_eq hx U) := rfl theorem deckApp_map (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : L.translate x β« L.schemeNsmul n = L.schemeNsmul n) {U U' : A.Opens} (h : U β€ U') : L.deckApp n x hx U' β« A.presheaf.map (homOfLE ((Opens.map (L.schemeNsmul n).base).monotone h)).op = A.presheaf.map (homOfLE ((Opens.map (L.schemeNsmul n).base).monotone h)).op β« L.deckApp n x hx U := by simp only [deckApp_def, Scheme.Hom.appLE_map, Scheme.Hom.map_appLE] theorem deckApp_appLE (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : L.translate x β« L.schemeNsmul n = L.schemeNsmul n) (U : A.Opens) (a : Ξ(A, U)) : (L.deckApp n x hx U).hom (((L.schemeNsmul n).appLE U ((L.schemeNsmul n) β»ΒΉα΅ U) le_rfl).hom a) = ((L.schemeNsmul n).appLE U ((L.schemeNsmul n) β»ΒΉα΅ U) le_rfl).hom a := by change ((L.schemeNsmul n).appLE U _ le_rfl β« L.deckApp n x hx U).hom a = _ rw [deckApp_def, appLE_comp_appLE_of_comp_eq hx U _ _ le_rfl _ le_rfl] def nsmulConst (U : A.Opens) (r : R) : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) := letI := Scheme.TwoAffineOpenCover.algebraOfHom (L.schemeNsmul n β« f) ((L.schemeNsmul n) β»ΒΉα΅ U) algebraMap R _ r theorem nsmulConst_def (U : A.Opens) (r : R) : L.nsmulConst n U r = ((L.schemeNsmul n β« f).appLE β€ ((L.schemeNsmul n) β»ΒΉα΅ U) le_top).hom ((Scheme.ΞSpecIso (.of R)).inv.hom r) := rfl theorem pushforwardUnit_smul_eq (U : A.Opens) (r : R) (s : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U) : r β’ s = (show (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U from L.nsmulConst n U r * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s)) := rfl theorem pushforwardUnit_sections_smul_eq (U : A.Opens) (a : Ξ(A, U)) (s : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U) : a β’ s = (show (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U from ((L.schemeNsmul n).appLE U ((L.schemeNsmul n) β»ΒΉα΅ U) le_rfl).hom a * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s)) := rfl theorem map_nsmulConst {U U' : A.Opens} (h : U β€ U') (r : R) : (A.presheaf.map (homOfLE ((Opens.map (L.schemeNsmul n).base).monotone h)).op).hom (L.nsmulConst n U' r) = L.nsmulConst n U r := letI := Scheme.TwoAffineOpenCover.algebraOfHom (L.schemeNsmul n β« f) ((L.schemeNsmul n) β»ΒΉα΅ U) letI := Scheme.TwoAffineOpenCover.algebraOfHom (L.schemeNsmul n β« f) ((L.schemeNsmul n) β»ΒΉα΅ U') (Scheme.TwoAffineOpenCover.restrictAlgHom (L.schemeNsmul n β« f) ((Opens.map (L.schemeNsmul n).base).monotone h)).commutes r theorem deckApp_nsmulConst (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : L.translate x β« L.schemeNsmul n = L.schemeNsmul n) (U : A.Opens) (r : R) : (L.deckApp n x hx U).hom (L.nsmulConst n U r) = L.nsmulConst n U r := by have hx' : L.translate x β« (L.schemeNsmul n β« f) = L.schemeNsmul n β« f := by rw [β Category.assoc, hx] change ((L.schemeNsmul n β« f).appLE β€ _ le_top β« L.deckApp n x hx U).hom ((Scheme.ΞSpecIso (.of R)).inv.hom r) = ((L.schemeNsmul n β« f).appLE β€ _ le_top).hom ((Scheme.ΞSpecIso (.of R)).inv.hom r) rw [deckApp_def, appLE_comp_appLE_of_comp_eq hx' β€ _ _ le_top _ le_top] section Eigen variable (hG : β x β L.torsionSubset (π (Spec (CommRingCat.of R))) n, L.translate x β« L.schemeNsmul n = L.schemeNsmul n) (Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R) def IsEigensection (U : A.Opens) (s : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)) : Prop := β (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : x β L.torsionSubset (π (Spec (CommRingCat.of R))) n), (L.deckApp n x (hG x hx) U).hom s = L.nsmulConst n U (Ο x) * s theorem isEigensection_iff (U : A.Opens) (s : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)) : L.IsEigensection n hG Ο U s β β (x : SchemeHomOver (π (Spec (CommRingCat.of R))) f) (hx : x β L.torsionSubset (π (Spec (CommRingCat.of R))) n), (L.deckApp n x (hG x hx) U).hom s = L.nsmulConst n U (Ο x) * s := Iff.rfl def eigenSubmodule (U : A.Opens) : Submodule R ((OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U) where carrier := {s | L.IsEigensection n hG Ο U s} zero_mem' := by change L.IsEigensection n hG Ο U (0 : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)) intro x hx rw [map_zero, mul_zero] add_mem' := fun {s t} hs ht => by change L.IsEigensection n hG Ο U ((show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s) + (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from t)) intro x hx rw [map_add, hs x hx, ht x hx, mul_add] smul_mem' := fun r s hs => by change L.IsEigensection n hG Ο U (L.nsmulConst n U r * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s)) intro x hx rw [map_mul, deckApp_nsmulConst, hs x hx, mul_left_comm] theorem mem_eigenSubmodule_iff (U : A.Opens) (s : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U) : s β L.eigenSubmodule n hG Ο U β L.IsEigensection n hG Ο U s := Iff.rfl theorem sections_smul_mem_eigenSubmodule (U : A.Opens) (a : Ξ(A, U)) (s : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U) (hs : s β L.eigenSubmodule n hG Ο U) : a β’ s β L.eigenSubmodule n hG Ο U := by change L.IsEigensection n hG Ο U (((L.schemeNsmul n).appLE U ((L.schemeNsmul n) β»ΒΉα΅ U) le_rfl).hom a * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s)) intro x hx rw [map_mul, deckApp_appLE, hs x hx, mul_left_comm] theorem res_mem_eigenSubmodule {U U' : A.Opens} (h : U β€ U') (s : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).obj U') (hs : s β L.eigenSubmodule n hG Ο U') : (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res h s β L.eigenSubmodule n hG Ο U := by change L.IsEigensection n hG Ο U ((A.presheaf.map (homOfLE ((Opens.map (L.schemeNsmul n).base).monotone h)).op).hom (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U') from s)) intro x hx have hnat := congrArg (fun Ο => Ο.hom (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U') from s)) (L.deckApp_map n x (hG x hx) h) simp only [CommRingCat.comp_apply] at hnat rw [β hnat, hs x hx, map_mul, L.map_nsmulConst n h] def eigenSubdatum : OModulePresheaf f where obj U := L.eigenSubmodule n hG Ο U module U := inferInstance moduleSections U := OModulePresheaf.submoduleSections U _ (L.sections_smul_mem_eigenSubmodule n hG Ο U) isScalarTower U := by letI := Scheme.TwoAffineOpenCover.algebraOfHom f U letI := OModulePresheaf.submoduleSections U _ (L.sections_smul_mem_eigenSubmodule n hG Ο U) exact β¨fun r a s => Subtype.ext (smul_assoc r a s.1)β© res h := ((OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res h).restrict fun s hs => L.res_mem_eigenSubmodule n hG Ο h s hs res_smul h a s := Subtype.ext ((OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res_smul h a s.1) res_refl U := LinearMap.ext fun s => Subtype.ext (LinearMap.congr_fun ((OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res_refl U) s.1) res_comp h h' := LinearMap.ext fun s => Subtype.ext (LinearMap.congr_fun ((OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res_comp h h') s.1) @[simp] theorem eigenSubdatum_obj (U : A.Opens) : (L.eigenSubdatum n hG Ο).obj U = L.eigenSubmodule n hG Ο U := rfl theorem eigenSubdatum_res_coe {U U' : A.Opens} (h : U β€ U') (s : (L.eigenSubdatum n hG Ο).obj U') : ((L.eigenSubdatum n hG Ο).res h s).1 = (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)).res h s.1 := rfl theorem eigenSubdatum_smul_coe (U : A.Opens) (a : Ξ(A, U)) (s : (L.eigenSubdatum n hG Ο).obj U) : (a β’ s).1 = a β’ s.1 := rfl def eigenInclusion : OModulePresheaf.Hom (L.eigenSubdatum n hG Ο) (OModulePresheaf.pushforwardUnit f (L.schemeNsmul n)) where app U := (L.eigenSubmodule n hG Ο U).subtype app_smul _ _ _ := rfl naturality _ := rfl @[simp] theorem eigenInclusion_app (U : A.Opens) (s : (L.eigenSubdatum n hG Ο).obj U) : (L.eigenInclusion n hG Ο).app U s = s.1 := rfl theorem eigenInclusion_injective (U : A.Opens) : Function.Injective ((L.eigenInclusion n hG Ο).app U) := Subtype.val_injective theorem IsEigensection.mul {Ο Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R} {U : A.Opens} {s t : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)} (hs : L.IsEigensection n hG Ο U s) (ht : L.IsEigensection n hG Ο U t) : L.IsEigensection n hG (Ο * Ο) U (s * t) := fun x hx => by letI := Scheme.TwoAffineOpenCover.algebraOfHom (L.schemeNsmul n β« f) ((L.schemeNsmul n) β»ΒΉα΅ U) rw [map_mul, hs x hx, ht x hx, Pi.mul_apply] change _ = algebraMap R _ (Ο x * Ο x) * (s * t) rw [map_mul] change _ = L.nsmulConst n U (Ο x) * L.nsmulConst n U (Ο x) * (s * t) ring theorem isEigensection_one_appLE (U : A.Opens) (a : Ξ(A, U)) : L.IsEigensection n hG 1 U (((L.schemeNsmul n).appLE U ((L.schemeNsmul n) β»ΒΉα΅ U) le_rfl).hom a) := fun x hx => by letI := Scheme.TwoAffineOpenCover.algebraOfHom (L.schemeNsmul n β« f) ((L.schemeNsmul n) β»ΒΉα΅ U) rw [deckApp_appLE, Pi.one_apply] change _ = algebraMap R _ 1 * _ rw [map_one, _root_.one_mul] theorem isEigensection_one_one (U : A.Opens) : L.IsEigensection n hG 1 U 1 := by have h := L.isEigensection_one_appLE n hG U 1 rwa [map_one] at h def eigenMul {Ο Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R} {U : A.Opens} (s : (L.eigenSubdatum n hG Ο).obj U) (t : (L.eigenSubdatum n hG Ο).obj U) : (L.eigenSubdatum n hG (Ο * Ο)).obj U := β¨(show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s.1) * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from t.1), IsEigensection.mul L n hG s.2 t.2β© theorem eigenMul_coe {Ο Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R} {U : A.Opens} (s : (L.eigenSubdatum n hG Ο).obj U) (t : (L.eigenSubdatum n hG Ο).obj U) : (L.eigenMul n hG s t).1 = (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from s.1) * (show Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U) from t.1) := rfl def eigenOne (U : A.Opens) : (L.eigenSubdatum n hG 1).obj U := β¨(1 : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)), L.isEigensection_one_one n hG Uβ© theorem eigenOne_coe (U : A.Opens) : (L.eigenOne n hG U).1 = (1 : Ξ(A, (L.schemeNsmul n) β»ΒΉα΅ U)) := rfl end Eigen def IsNsmulCharacter (Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R) : Prop := (β x, x β L.torsionSubset (π (Spec (CommRingCat.of R))) n β Ο x = 1) β§ Ο (L.one (π (Spec (CommRingCat.of R)))) = 1 β§ β x β L.torsionSubset (π (Spec (CommRingCat.of R))) n, β y β L.torsionSubset (π (Spec (CommRingCat.of R))) n, Ο (L.mul (π (Spec (CommRingCat.of R))) x y) = Ο x * Ο y theorem isNsmulCharacter_iff (Ο : SchemeHomOver (π (Spec (CommRingCat.of R))) f β R) : L.IsNsmulCharacter n Ο β (β x, x β L.torsionSubset (π (Spec (CommRingCat.of R))) n β Ο x = 1) β§ Ο (L.one (π (Spec (CommRingCat.of R)))) = 1 β§ β x β L.torsionSubset (π (Spec (CommRingCat.of R))) n, β y β L.torsionSubset (π (Spec (CommRingCat.of R))) n, Ο (L.mul (π (Spec (CommRingCat.of R))) x y) = Ο x * Ο y := Iff.rfl theorem isNsmulCharacter_one : L.IsNsmulCharacter n 1 := β¨fun _ _ => rfl, rfl, fun _ _ _ _ => (_root_.mul_one _).symmβ© end GoodReductionJacobian.RelativeGroupLaw end
Statements phrased using this module (12)
- Local multiplicative frames for eigenparts of [n]_*πͺ_A
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_affineOpens_bijective_smul_eigenSubdatum_and_bijective_smul_eigenOne733 below Β· depth 33 - Character eigendecomposition of [n]_*πͺ_A on every open
GoodReductionJacobian.AbelianSchemePropertyBundle.finite_isNsmulCharacter_and_ncard_eq_pow_and_bijective_sum_eigenInclusion730 below Β· depth 33 - Ο-eigen-subdatum of [n]_*mathcal O_A comes from a module sheaf
GoodReductionJacobian.RelativeGroupLaw.exists_modules_hom_ofModules_eigenSubdatum_inverse0 below Β· depth 33 - Invariant part of [n]_*πͺ_A is trivial
GoodReductionJacobian.RelativeGroupLaw.nonempty_iso_tensorUnit_of_hom_eigenSubdatum_one_of_bijective_smul_eigenOne2 below Β· depth 33 - Multiplication of eigen-parts of [n]_*mathcal O_A gives a tensor isomorphism
GoodReductionJacobian.RelativeGroupLaw.nonempty_tensor_iso_of_hom_eigenSubdatum_of_forall_exists_bijective_smul4 below Β· depth 33 - Trivial eigencomponent of [n]_*mathcal O_A is mathcal O_A
GoodReductionJacobian.AbelianSchemePropertyBundle.bijective_smul_eigenOne722 below Β· depth 34 - Local unit Ο-eigensection of [n]_*πͺ_A
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_affineOpens_isUnit_eigenSubdatum729 below Β· depth 34 - Lagrange resolvent over the n-torsion deck group
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_fintype_torsionSubset_sum_deckApp_mem_eigenSubmodule691 below Β· depth 35 - Morphisms agreeing after [n] differ locally by n-torsion translation
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_iSup_eq_top_iota_comp_eq_iota_comp_comp_translate_of_comp_schemeNsmul_eq36 below Β· depth 35 - Separating a K-point from its non-trivial n-torsion translates
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_mem_basicOpen_forall_notMem_basicOpen_deckApp707 below Β· depth 35 - n-torsion translations act transitively on fibres of [n]
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_mem_torsionSubset_translate_base_eq_of_schemeNsmul_base_eq37 below Β· depth 35 - Every point of a proper K-scheme specialises to a K-point
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_point_specializes_base_closedPoint0 below Β· depth 35