Definitions/Def_AlgebraicGeometry_ProjSpace.lean
Projective space over a ring, products, and Chow data
Fix a commutative ring R and n \in \mathbb{N}, and grade S = R[x_0,\dots,x_n] (Lean: MvPolynomial (Fin (n+1)) R) by total degree through MvPolynomial.homogeneousSubmodule. grad0Equiv is the ring isomorphism R \cong S_0 sending r to the constant C\,r, with inverse the constant coefficient, and π is the structure morphism \operatorname{Proj} S \to \operatorname{Spec} R, namely Proj.toSpecZero followed by Spec.map of that isomorphism; accompanying instances record that S is of finite type over S_0 (generated by the x_j) and that π is proper. irrelevant_le_span_X states S_+ \subseteq (x_0,\dots,x_n), and affineOpenCover is the resulting affine open cover of \operatorname{Proj} S whose j-th chart morphism is Proj.awayι at x_j (affineOpenCover_f). On the degree-zero localisation S_{(x_i)} (HomogeneousLocalization.Away) the instance algebraAway puts the R-algebra structure coming from R \cong S_0; awayι_comp_π identifies the chart followed by π with \operatorname{Spec} of R \to S_{(x_i)}; ratio R n i k is the element x_k/x_i, and the helper lemmas give x_i/x_i = 1, the value of \operatorname{algebraMap}, the expansion of a degree-d monomial over x_i^d as r\prod_j (x_j/x_i)^{e_j}, and S_{(x_i)} = R[x_k/x_i : k].
For e : \mathrm{Fin}\,m \to \mathbb{N}, prodOverAux builds by recursion on m a scheme with a morphism to \operatorname{Spec} R: the empty case is \operatorname{Spec} R with the identity, and the step takes the fibre product of \operatorname{Proj} of e_0+1 variables with the previous stage over \operatorname{Spec} R; prodOver, prodOverπ name the two components, which model \mathbb{P}^{e_0}_R \times_R \cdots \times_R \mathbb{P}^{e_{m-1}}_R over \operatorname{Spec} R, with properness, projections prodPr compatible with the structure maps, and a universal morphism prodLift out of any R-scheme equipped with a compatible family of morphisms to the factors (prodLiftAux packages the morphism together with its compatibility).
For an R-algebra A, mvMapGraded is the graded ring homomorphism induced by coefficient extension, irrelevant_le_map_mvMapGraded checks the hypothesis on irrelevant ideals, and map is the resulting morphism \operatorname{Proj} over A to \operatorname{Proj} over R.
Finally, relative to a morphism \pi : V \to \operatorname{Spec} R, the structure ChowDatum bundles: an arity m with dimensions e, a scheme V', a proper p : V' \to V, a closed immersion \iota : V' \to prodOver R e, the relation \iota followed by prodOverπ = p followed by \pi, and a dense open U \subseteq V over which p becomes an isomorphism (the second pullback projection of p along U \hookrightarrow V is an isomorphism). ChowDatumProj is the same data with the product replaced by a single \operatorname{Proj} of N_d+1 variables. Both carry their compatibility and properness assertions as fields.
Relation to Mathlib
Mathlib supplies \operatorname{Proj} of a graded ring together with Proj.toSpecZero, Proj.awayι, Proj.affineOpenCoverOfIrrelevantLESpan, Proj.map and homogeneous localisations; this module specialises them to the total-degree grading of a polynomial ring, thereby providing projective n-space over R and its standard charts. The iterated products and the ChowDatum/ChowDatumProj bundles are the project's own.
Where it is used
These definitions provide the projective-geometry vocabulary (projective space over a base ring, its standard affine charts, products of projective spaces, base change in the coefficients) used throughout the scheme-theoretic layer of the formalisation, and in particular the shape of the data produced by Chow's lemma.
References
- R. Hartshorne, Algebraic Geometry, Graduate Texts in Mathematics 52, Springer, 1977, II.2.5, II.4.8
- A. Grothendieck and J. Dieudonné, Éléments de géométrie algébrique II: Étude globale élémentaire de quelques classes de morphismes, Publ. Math. IHÉS 8 (1961), 2.4, 2.8.10, 5.6.1
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 453 lines
- 50 declarations
- used in the statements of 225 theorems and imported by 250 proofs
- imports 0 definition modules
Source file: Definitions/Def_AlgebraicGeometry_ProjSpace.lean
Imports
- only Mathlib
Declarations
- def
AlgebraicGeometry.ProjSpace.grad0Equiv - def
AlgebraicGeometry.ProjSpace.π - instance
AlgebraicGeometry.ProjSpace.finiteType_mvPolynomial - instance
AlgebraicGeometry.ProjSpace.isProper_π - theorem
AlgebraicGeometry.ProjSpace.irrelevant_le_span_X - theorem
AlgebraicGeometry.ProjSpace.X_mem_one - instance
AlgebraicGeometry.ProjSpace.algebraAway - theorem
AlgebraicGeometry.ProjSpace.awayι_comp_π - def
AlgebraicGeometry.ProjSpace.ratio - theorem
AlgebraicGeometry.ProjSpace.ratio_self - theorem
AlgebraicGeometry.ProjSpace.val_algebraMap - def
AlgebraicGeometry.ProjSpace.affineOpenCover - theorem
AlgebraicGeometry.ProjSpace.affineOpenCover_f - theorem
AlgebraicGeometry.ProjSpace.awayMk_monomial - theorem
AlgebraicGeometry.ProjSpace.adjoin_range_ratio - def
AlgebraicGeometry.ProjSpace.prodOverAux - abbrev
AlgebraicGeometry.ProjSpace.prodOver - abbrev
AlgebraicGeometry.ProjSpace.prodOverπ - theorem
AlgebraicGeometry.ProjSpace.isProper_prodOverπ - instance
AlgebraicGeometry.ProjSpace.instIsProperProdOverπ - def
AlgebraicGeometry.ProjSpace.prodPr - theorem
AlgebraicGeometry.ProjSpace.prodPr_comp_π - def
AlgebraicGeometry.ProjSpace.prodLiftAux - def
AlgebraicGeometry.ProjSpace.prodLift - theorem
AlgebraicGeometry.ProjSpace.prodLift_comp_prodOverπ - theorem
AlgebraicGeometry.ProjSpace.prodLift_comp_prodPr - def
AlgebraicGeometry.ProjSpace.mvMapGraded - theorem
AlgebraicGeometry.ProjSpace.mvMapGraded_X - theorem
AlgebraicGeometry.ProjSpace.irrelevant_le_map_mvMapGraded - def
AlgebraicGeometry.ProjSpace.map - theorem
AlgebraicGeometry.ProjSpace.map_eq - structure
AlgebraicGeometry.ChowDatum - field
AlgebraicGeometry.ChowDatum.m - field
AlgebraicGeometry.ChowDatum.e - field
AlgebraicGeometry.ChowDatum.V' - field
AlgebraicGeometry.ChowDatum.p - field
AlgebraicGeometry.ChowDatum.hp_proper - field
AlgebraicGeometry.ChowDatum.hover - field
AlgebraicGeometry.ChowDatum.U - field
AlgebraicGeometry.ChowDatum.hU_dense - field
AlgebraicGeometry.ChowDatum.hp_isoU - structure
AlgebraicGeometry.ChowDatumProj - field
AlgebraicGeometry.ChowDatumProj.Nd - field
AlgebraicGeometry.ChowDatumProj.V' - field
AlgebraicGeometry.ChowDatumProj.p - field
AlgebraicGeometry.ChowDatumProj.hp_proper - field
AlgebraicGeometry.ChowDatumProj.hoverN - field
AlgebraicGeometry.ChowDatumProj.U - field
AlgebraicGeometry.ChowDatumProj.hU_dense - field
AlgebraicGeometry.ChowDatumProj.hp_isoU
Source
import Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Proper ↗ import Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Functor ↗ import Mathlib.AlgebraicGeometry.Morphisms.ClosedImmersion ↗ import Mathlib.RingTheory.MvPolynomial.Homogeneous ↗ import Mathlib.RingTheory.MvPolynomial.Ideal ↗ set_option autoImplicit false set_option linter.unusedVariables false noncomputable section universe u open CategoryTheory CategoryTheory.Limits TopologicalSpace MvPolynomial HomogeneousLocalization namespace AlgebraicGeometry attribute [local instance] MvPolynomial.gradedAlgebra namespace ProjSpace section PnSetup variable (R : Type u) [CommRing R] (n : ℕ) local notation "𝒜" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R def grad0Equiv : R ≃+* (𝒜 0) where toFun r := ⟨C r, (mem_homogeneousSubmodule 0 _).mpr (isHomogeneous_C _ r)⟩ invFun p := MvPolynomial.constantCoeff p.1 left_inv r := by simp right_inv p := by ext : 1 have hp : p.1.IsHomogeneous 0 := (mem_homogeneousSubmodule 0 _).mp p.2 ext d rcases eq_or_ne d 0 with rfl | hd · simp [MvPolynomial.constantCoeff] · rw [MvPolynomial.coeff_C, if_neg (Ne.symm hd)] by_contra h refine hd (Finsupp.ext fun i => ?_) have hdeg : (Finsupp.weight (1 : Fin (n + 1) → ℕ)) d = 0 := hp (fun h0 => h h0.symm) simp only [Finsupp.weight_apply, Pi.one_apply, smul_eq_mul, mul_one, Finsupp.sum] at hdeg by_cases hi : i ∈ d.support · exact (Finset.sum_eq_zero_iff_of_nonneg (fun _ _ => Nat.zero_le _)).mp hdeg i hi · exact Finsupp.notMem_support_iff.mp hi map_mul' a b := by ext : 1; simp map_add' a b := by ext : 1; simp def π : Proj 𝒜 ⟶ Spec (.of R) := Proj.toSpecZero 𝒜 ≫ Spec.map (CommRingCat.ofHom (grad0Equiv R n).toRingHom) instance finiteType_mvPolynomial : Algebra.FiniteType (𝒜 0) (MvPolynomial (Fin (n + 1)) R) := by classical refine ⟨⟨Finset.univ.image MvPolynomial.X, eq_top_iff.mpr fun p _ => ?_⟩⟩ induction p using MvPolynomial.induction_on with | C r => exact Subalgebra.algebraMap_mem _ (⟨C r, (mem_homogeneousSubmodule 0 _).mpr (isHomogeneous_C _ r)⟩ : 𝒜 0) | add p q hp hq => exact Subalgebra.add_mem _ (hp trivial) (hq trivial) | mul_X p j hp => exact Subalgebra.mul_mem _ (hp trivial) (Algebra.subset_adjoin (Finset.mem_coe.mpr (Finset.mem_image_of_mem _ (Finset.mem_univ j)))) instance isProper_π : IsProper (π R n) := by unfold π haveI : IsProper (Proj.toSpecZero 𝒜) := inferInstance haveI : IsIso (CommRingCat.ofHom (grad0Equiv R n).toRingHom) := (ConcreteCategory.isIso_iff_bijective _).mpr (grad0Equiv R n).bijective haveI : IsIso (Spec.map (CommRingCat.ofHom (grad0Equiv R n).toRingHom)) := inferInstance infer_instance end PnSetup section StdCover open MvPolynomial AlgebraicGeometry.Proj variable (R : Type u) [CommRing R] (n : ℕ) attribute [local instance] MvPolynomial.gradedAlgebra local notation "𝒜" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R theorem irrelevant_le_span_X : (HomogeneousIdeal.irrelevant 𝒜).toIdeal ≤ Ideal.span (Set.range (MvPolynomial.X : Fin (n + 1) → MvPolynomial _ R)) := by rw [HomogeneousIdeal.toIdeal_irrelevant_le] intro i hi f hf have hf' : f.IsHomogeneous i := (MvPolynomial.mem_homogeneousSubmodule i f).mp hf show f ∈ MvPolynomial.idealOfVars (Fin (n + 1)) R rw [← pow_one (MvPolynomial.idealOfVars _ R), MvPolynomial.mem_pow_idealOfVars_iff] intro x hx rw [MvPolynomial.mem_support_iff] at hx have hdeg : Finsupp.degree x = i := by rw [Finsupp.degree_eq_weight_one]; exact hf' hx omega end StdCover section Setup variable (R : Type u) [CommRing R] (n : ℕ) local notation "𝒜" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R theorem X_mem_one (j : Fin (n + 1)) : (MvPolynomial.X j : MvPolynomial (Fin (n + 1)) R) ∈ 𝒜 1 := (mem_homogeneousSubmodule 1 _).mpr (isHomogeneous_X R j) instance algebraAway (i : Fin (n + 1)) : Algebra R (Away 𝒜 (MvPolynomial.X i)) := ((HomogeneousLocalization.fromZeroRingHom 𝒜 _).comp (grad0Equiv R n).toRingHom).toAlgebra theorem awayι_comp_π (i : Fin (n + 1)) : Proj.awayι 𝒜 (MvPolynomial.X i) (X_mem_one R n i) one_pos ≫ π R n = Spec.map (CommRingCat.ofHom (algebraMap R (Away 𝒜 (MvPolynomial.X i)))) := by unfold π rw [← Category.assoc, Proj.awayι_toSpecZero, ← Spec.map_comp] rfl def ratio (i k : Fin (n + 1)) : Away 𝒜 (MvPolynomial.X i) := Away.mk 𝒜 (X_mem_one R n i) 1 (MvPolynomial.X k) (by simpa using X_mem_one R n k) theorem ratio_self (i : Fin (n + 1)) : ratio R n i i = 1 := by apply HomogeneousLocalization.val_injective rw [ratio, Away.val_mk, HomogeneousLocalization.val_one, ← Localization.mk_one, Localization.mk_eq_mk_iff, Localization.r_iff_exists] exact ⟨1, by push_cast; ring⟩ theorem val_algebraMap (i : Fin (n + 1)) (r : R) : (algebraMap R (Away 𝒜 (MvPolynomial.X i)) r).val = algebraMap (MvPolynomial (Fin (n + 1)) R) _ (MvPolynomial.C r) := by rfl end Setup section StdCover variable (R : Type u) [CommRing R] (n : ℕ) local notation "𝒜" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R def affineOpenCover : (Proj 𝒜).AffineOpenCover := Proj.affineOpenCoverOfIrrelevantLESpan 𝒜 (fun j => MvPolynomial.X j) (fun j => X_mem_one R n j) (fun _ => one_pos) (irrelevant_le_span_X R n) theorem affineOpenCover_f (j : Fin (n + 1)) : (affineOpenCover R n).openCover.f j = Proj.awayι 𝒜 (MvPolynomial.X j) (X_mem_one R n j) one_pos := rfl end StdCover section AdjoinRatio variable (R : Type u) [CommRing R] (n : ℕ) local notation "𝒜" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R theorem awayMk_monomial (i : Fin (n + 1)) (d : ℕ) (e : Fin (n + 1) →₀ ℕ) (hd : e.degree = d) (r : R) (hm : MvPolynomial.monomial e r ∈ 𝒜 (d • 1)) : Away.mk 𝒜 (X_mem_one R n i) d (MvPolynomial.monomial e r) hm = algebraMap R _ r * ∏ j, (ratio R n i j) ^ (e j) := by have hdsum : ∑ j, e j = d := by rw [← hd, Finsupp.degree] exact (Finset.sum_subset (Finset.subset_univ _) (fun j _ hj => Finsupp.notMem_support_iff.mp hj)).symm apply HomogeneousLocalization.val_injective have hval : (HomogeneousLocalization.val : Away 𝒜 (X i) → Localization.Away (X i)) = (algebraMap (Away 𝒜 (X i)) (Localization.Away (X i))) := rfl rw [hval, map_mul, map_prod] simp only [map_pow, ratio, ← hval, Away.val_mk, val_algebraMap, Localization.mk_pow, ← Localization.mk_one_eq_algebraMap, Localization.mk_prod, Localization.mk_mul] congr 1 · rw [MvPolynomial.monomial_eq, Finsupp.prod_pow] · refine Subtype.ext ?_ push_cast simp only [Finset.prod_pow_eq_pow_sum, pow_one, one_mul, hdsum] theorem adjoin_range_ratio (i : Fin (n + 1)) : Algebra.adjoin R (Set.range (ratio R n i)) = ⊤ := by rw [eq_top_iff] intro z _ obtain ⟨d, a, ha, rfl⟩ := Away.mk_surjective 𝒜 (X_mem_one R n i) z have ha' : a.IsHomogeneous d := (mem_homogeneousSubmodule d a).mp (by simpa using ha) have hdeg : ∀ e ∈ a.support, (e : Fin (n + 1) →₀ ℕ).degree = d := fun e he => by rw [Finsupp.degree_eq_weight_one]; exact ha' (MvPolynomial.mem_support_iff.mp he) have hsum : Away.mk 𝒜 (X_mem_one R n i) d a ha = ∑ e ∈ a.support.attach, Away.mk 𝒜 (X_mem_one R n i) d (MvPolynomial.monomial e.1 (a.coeff e.1)) ((mem_homogeneousSubmodule _ _).mpr (isHomogeneous_monomial _ (by simp only [smul_eq_mul, mul_one]; exact hdeg e.1 e.2))) := by apply HomogeneousLocalization.val_injective have hval : (HomogeneousLocalization.val : Away 𝒜 (X i) → Localization.Away (X i)) = (algebraMap (Away 𝒜 (X i)) (Localization.Away (X i))) := rfl rw [hval, map_sum] simp only [← hval, Away.val_mk] rw [Finset.sum_attach a.support (fun e => Localization.mk (monomial e (a.coeff e)) (⟨(X i)^d, Away.val_mk._proof_1 d⟩ : Submonoid.powers (X i : MvPolynomial (Fin (n+1)) R))), ← Localization.mk_sum] congr 1 exact MvPolynomial.as_sum a rw [hsum] refine Subalgebra.sum_mem _ fun e _ => ?_ rw [awayMk_monomial R n i d e.1 (hdeg e.1 e.2) (a.coeff e.1)] exact Subalgebra.mul_mem _ (Subalgebra.algebraMap_mem _ _) (Subalgebra.prod_mem _ fun j _ => Subalgebra.pow_mem _ (Algebra.subset_adjoin (Set.mem_range_self j)) _) end AdjoinRatio section ProdOver variable (R : Type u) [CommRing R] def prodOverAux : ∀ {m : ℕ}, (Fin m → ℕ) → Σ (P : Scheme.{u}), P ⟶ Spec (.of R) | 0, _ => ⟨Spec (.of R), 𝟙 _⟩ | m + 1, e => let prev := @prodOverAux m (e ∘ Fin.succ) ⟨pullback (π R (e 0)) prev.2, pullback.fst _ _ ≫ π R (e 0)⟩ abbrev prodOver {m : ℕ} (e : Fin m → ℕ) : Scheme.{u} := (prodOverAux R e).1 abbrev prodOverπ {m : ℕ} (e : Fin m → ℕ) : prodOver R e ⟶ Spec (.of R) := (prodOverAux R e).2 theorem isProper_prodOverπ {m : ℕ} (e : Fin m → ℕ) : IsProper (prodOverπ R e) := by induction m with | zero => exact inferInstanceAs (IsProper (𝟙 _)) | succ m ih => haveI := ih (e ∘ Fin.succ) change IsProper (pullback.fst _ _ ≫ π R (e 0)) infer_instance instance instIsProperProdOverπ {m : ℕ} (e : Fin m → ℕ) : IsProper (prodOverπ R e) := isProper_prodOverπ R e def prodPr : ∀ {m : ℕ} (e : Fin m → ℕ) (k : Fin m), prodOver R e ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (e k + 1)) R) | m + 1, e, ⟨0, _⟩ => pullback.fst _ _ | m + 1, e, ⟨k + 1, hk⟩ => pullback.snd _ _ ≫ prodPr (e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩ theorem prodPr_comp_π {m : ℕ} (e : Fin m → ℕ) (k : Fin m) : prodPr R e k ≫ π R (e k) = prodOverπ R e := by induction m with | zero => exact k.elim0 | succ m ih => match k with | ⟨0, _⟩ => rfl | ⟨k + 1, hk⟩ => have key := ih (e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩ calc (pullback.snd _ _ ≫ prodPr R (e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩) ≫ π R (e ⟨k + 1, hk⟩) = pullback.snd _ _ ≫ (prodPr R (e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩ ≫ π R ((e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩)) := Category.assoc _ _ _ _ = pullback.snd _ _ ≫ prodOverπ R (e ∘ Fin.succ) := by rw [key] _ = prodOverπ R e := (pullback.condition).symm def prodLiftAux {X : Scheme.{u}} (s : X ⟶ Spec (.of R)) : ∀ {m : ℕ} (e : Fin m → ℕ) (g : ∀ k, X ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (e k + 1)) R)) (_ : ∀ k, g k ≫ π R (e k) = s), Σ' (l : X ⟶ prodOver R e), l ≫ prodOverπ R e = s | 0, _, _, _ => ⟨s, Category.comp_id s⟩ | m + 1, e, g, hg => let prev := @prodLiftAux X s m (e ∘ Fin.succ) (fun k => g k.succ) (fun k => hg k.succ) ⟨pullback.lift (g 0) prev.1 (by rw [hg 0, prev.2]), by show pullback.lift (g 0) prev.1 _ ≫ pullback.fst _ _ ≫ π R (e 0) = s rw [← Category.assoc, pullback.lift_fst]; exact hg 0⟩ def prodLift {X : Scheme.{u}} (s : X ⟶ Spec (.of R)) {m : ℕ} (e : Fin m → ℕ) (g : ∀ k, X ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (e k + 1)) R)) (hg : ∀ k, g k ≫ π R (e k) = s) : X ⟶ prodOver R e := (prodLiftAux R s e g hg).1 theorem prodLift_comp_prodOverπ {X : Scheme.{u}} (s : X ⟶ Spec (.of R)) {m : ℕ} (e : Fin m → ℕ) (g : ∀ k, X ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (e k + 1)) R)) (hg : ∀ k, g k ≫ π R (e k) = s) : prodLift R s e g hg ≫ prodOverπ R e = s := by exact (prodLiftAux R s e g hg).2 theorem prodLift_comp_prodPr {X : Scheme.{u}} (s : X ⟶ Spec (.of R)) {m : ℕ} (e : Fin m → ℕ) (g : ∀ k, X ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (e k + 1)) R)) (hg : ∀ k, g k ≫ π R (e k) = s) (k : Fin m) : prodLift R s e g hg ≫ prodPr R e k = g k := by induction m with | zero => exact k.elim0 | succ m ih => match k with | ⟨0, _⟩ => exact pullback.lift_fst _ _ _ | ⟨k + 1, hk⟩ => show (pullback.lift _ _ _) ≫ (pullback.snd _ _ ≫ prodPr R (e ∘ Fin.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩) = _ rw [← Category.assoc, pullback.lift_snd] exact ih (e ∘ Fin.succ) (fun k => g k.succ) (fun k => hg k.succ) ⟨k, Nat.succ_lt_succ_iff.mp hk⟩ end ProdOver section MapGraded variable (R : Type u) [CommRing R] (A : Type u) [CommRing A] [Algebra R A] (n : ℕ) local notation "𝒜R" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) R local notation "𝒜A" => MvPolynomial.homogeneousSubmodule (Fin (n + 1)) A def mvMapGraded : 𝒜R →+*ᵍ 𝒜A where toRingHom := MvPolynomial.map (algebraMap R A) map_mem hx := (mem_homogeneousSubmodule _ _).mpr (((mem_homogeneousSubmodule _ _).mp hx).map _) theorem mvMapGraded_X (j : Fin (n + 1)) : (mvMapGraded R A n) (MvPolynomial.X j) = MvPolynomial.X j := MvPolynomial.map_X _ j theorem irrelevant_le_map_mvMapGraded : (HomogeneousIdeal.irrelevant 𝒜A) ≤ HomogeneousIdeal.map (mvMapGraded R A n) (HomogeneousIdeal.irrelevant 𝒜R) := by intro a ha show a ∈ (HomogeneousIdeal.map (mvMapGraded R A n) (HomogeneousIdeal.irrelevant _)).toIdeal rw [HomogeneousIdeal.toIdeal_map, MvPolynomial.as_sum a] refine Ideal.sum_mem _ fun d hd => ?_ have hd0 : d ≠ 0 := by rintro rfl refine (MvPolynomial.mem_support_iff.mp hd) ?_ rw [HomogeneousIdeal.mem_irrelevant_iff, GradedRing.proj_apply] at ha classical conv_lhs => rw [← DirectSum.sum_support_decompose (homogeneousSubmodule (Fin (n + 1)) A) a] rw [coeff_sum] refine Finset.sum_eq_zero fun i _ => ?_ rcases eq_or_ne i 0 with rfl | hi0 · rw [ha, coeff_zero] · exact ((mem_homogeneousSubmodule i _).mp (DirectSum.decompose (homogeneousSubmodule (Fin (n + 1)) A) a i).2).coeff_eq_zero (by simpa [Finsupp.degree] using hi0.symm) obtain ⟨j, hj⟩ := Finset.nonempty_iff_ne_empty.mpr (Finsupp.support_eq_empty.not.mpr hd0) obtain ⟨q, hq⟩ : (X j : MvPolynomial (Fin (n + 1)) A) ∣ monomial d (coeff d a) := X_dvd_monomial.mpr (Or.inr (Finsupp.mem_support_iff.mp hj)) rw [hq, show (X j : MvPolynomial (Fin (n + 1)) A) = (mvMapGraded R A n).toRingHom (X j) from (map_X _ j).symm] exact Ideal.mul_mem_right _ _ (Ideal.mem_map_of_mem _ ((HomogeneousIdeal.mem_irrelevant_iff _ _).mpr (by rw [GradedRing.proj_apply, DirectSum.decompose_of_mem_ne _ ((mem_homogeneousSubmodule 1 _).mpr (isHomogeneous_X R j)) one_ne_zero]))) def map : Proj 𝒜A ⟶ Proj 𝒜R := Proj.map (mvMapGraded R A n) (irrelevant_le_map_mvMapGraded R A n) theorem map_eq : map R A n = Proj.map (mvMapGraded R A n) (irrelevant_le_map_mvMapGraded R A n) := rfl end MapGraded end ProjSpace section Carrier variable {R : Type u} [CommRing R] {V : Scheme.{u}} (π : V ⟶ Spec (.of R)) structure ChowDatum where m : ℕ e : Fin m → ℕ V' : Scheme.{u} p : V' ⟶ V ι : V' ⟶ ProjSpace.prodOver R e hp_proper : IsProper p hι_closed : IsClosedImmersion ι hover : ι ≫ ProjSpace.prodOverπ R e = p ≫ π U : V.Opens hU_dense : Dense (U : Set V) hp_isoU : IsIso (pullback.snd p U.ι) attribute [instance] ChowDatum.hp_proper ChowDatum.hι_closed ChowDatum.hp_isoU end Carrier section CarrierProj variable {R : Type u} [CommRing R] {V : Scheme.{u}} (π : V ⟶ Spec (.of R)) structure ChowDatumProj where Nd : ℕ V' : Scheme.{u} p : V' ⟶ V ιN : V' ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (Nd + 1)) R) hp_proper : IsProper p hιN_closed : IsClosedImmersion ιN hoverN : ιN ≫ ProjSpace.π R Nd = p ≫ π U : V.Opens hU_dense : Dense (U : Set V) hp_isoU : IsIso (pullback.snd p U.ι) attribute [instance] ChowDatumProj.hp_proper ChowDatumProj.hιN_closed ChowDatumProj.hp_isoU end CarrierProj end AlgebraicGeometry end
Statements phrased using this module (225)
- Finite sets in a two-chart scheme lie in affine opens
AlgebraicGeometry.exists_isAffineOpen_forall_mem_of_finset_of_twoCharts2 below · depth 15 - Invariance of `FiniteBySections` under isomorphism of modules
AlgebraicGeometry.Scheme.Modules.FiniteBySections.of_iso0 below · depth 16 - Gluing a finite-map datum to a morphism C → P¹_R
AlgebraicGeometry.SmoothProperCurve.FiniteMapData.exists_hom_proj_preimage_basicOpen_eq0 below · depth 16 - Finiteness by sections is local on the affine base
AlgebraicGeometry.Scheme.Modules.FiniteBySections.of_forall_mem_finset_away11 below · depth 17 - Chow's lemma for proper integral schemes over a Noetherian ring
AlgebraicGeometry.ChowDatum.nonempty0 below · depth 18 - Chow datum in a product of projective spaces yields one in P^N
AlgebraicGeometry.ChowDatumProj.nonempty_of0 below · depth 18 - Projective space is stable under base change
AlgebraicGeometry.ProjSpace.isPullback_map0 below · depth 18 - Invertible modules are finite by sections when mathcal O_X is
AlgebraicGeometry.Scheme.Modules.FiniteBySections.of_finiteBySections_unit5 below · depth 18 - Base change of a projective presentation along a cartesian square
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_baseChange_of_isPullback3 below · depth 18 - Finiteness by sections after base change near a quasi-finite fibre
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_finiteBySections_pullback_of_quasiFiniteAt5 below · depth 18 - Transport of a P^N-presentation along a module isomorphism
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_of_iso0 below · depth 18 - Chart of a Proj presentation = locus where σᵢ is a local frame
AlgebraicGeometry.Scheme.Modules.ProjPresentation.mem_preimage_basicOpen_iff0 below · depth 18 - Prescribing the ratios x_k/xᵢ on the chart D₊(xᵢ)
AlgebraicGeometry.ProjSpace.exists_algHom_away_apply_ratio_eq0 below · depth 19 - Base change of Pⁿ preserves the standard charts
AlgebraicGeometry.ProjSpace.map_preimage_basicOpen_X0 below · depth 19 - Quasi-projective fine moduli of polarised abelian schemes of theta type δ
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_isFineModuli_thetaTypeLocally_quasiProjective1,852 below · depth 27 - Fine moduli for fake elliptic curves with full level m
CerednikDrinfeld.QM.exists_isFineModuli_one_of_isFineModuli_thetaTypeLocally_of_qmStructure_of_isUnit_two_three_of_finiteType3,170 below · depth 27 - Quasi-projective fine moduli scheme for framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isFineModuli_quasiProjective1,460 below · depth 28 - Cyclotomic descent of fine moduli for polarised abelian schemes
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_isFineModuli_of_forall_exists_isFineModuli_of_primitiveRoot1,023 below · depth 28 - Fine moduli for theta-type polarisations from framed moduli
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_isFineModuli_thetaTypeLocally_of_isFineModuli_framed_quasiProjective_of_sq_eq1,610 below · depth 28 - δ-theta type, étale-locally, is stable under base change
AlgebraicGeometry.PolarisedAbelianScheme.thetaTypeLocally_of_isPullback3 below · depth 28 - Descent of étale-local theta type along faithfully flat étale maps
AlgebraicGeometry.PolarisedAbelianScheme.thetaTypeLocally_of_isPullback_of_faithfullyFlat_etale3 below · depth 28 - Étale-local theta type is invariant under isomorphism
AlgebraicGeometry.PolarisedAbelianScheme.thetaTypeLocally_of_iso38 below · depth 28 - Fine moduli of quaternionic-multiplication pairs over a Q-submoduli problem
CerednikDrinfeld.QM.exists_represents_qmStructure_pairs_of_satisfying_isFineModuli_of_qmStructure_of_isUnit_two_of_finiteType1,562 below · depth 28 - QM structures force local theta type (6,6)
CerednikDrinfeld.QM.thetaTypeLocally_six_six_of_qmStructure_of_isUnit_two_three1,375 below · depth 28 - Finite group acting freely on theta-adapted framings
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_finite_group_action_isThetaAdapted_free_transitive_of_sq_eq1,214 below · depth 29 - The theta-adapted locus is closed and finitely presented in H
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isClosedImmersion_iff_isThetaAdapted1,324 below · depth 29 - Quasi-projective fine moduli of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isFineModuli_quasiProjective_of_trunk1,454 below · depth 29 - The Hilbert scheme of Pⁿ_ℤ is proper and finitely presented
AlgebraicGeometry.HilbertFunctor.exists_scheme_represents_isProper_locallyOfFinitePresentation_hilbertFunctionOf44 below · depth 29 - Finite group action on a fine moduli scheme
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_aut_comp_pt_eq_and_comp_eq_of_isFineModuli_of_galois_of_isPullback26 below · depth 29 - Descent of fine moduli along a faithfully flat base extension
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_isFineModuli_of_isFineModuli_of_isPullback_of_faithfullyFlat_of_iso990 below · depth 29 - Fine moduli for ThetaTypeLocally from framed fine moduli
AlgebraicGeometry.PolarisedAbelianScheme.Satisfying.exists_isFineModuli_thetaTypeLocally_of_isFineModuli_framed_thetaCore1,363 below · depth 29 - Rooted symmetric polarisations of type δ are étale-locally of theta type
AlgebraicGeometry.PolarisedAbelianScheme.thetaTypeLocally_of_rootedSymmetricOfType1,343 below · depth 29 - Descent of a G-scheme along a Galois extension 𝒪 → 𝒪'
AlgebraicGeometry.Scheme.exists_quotient_isPullback_of_galois_of_finite_action22 below · depth 29 - Finite over quasi-projective is quasi-projective over a noetherian base
AlgebraicGeometry.exists_isImmersion_projSpace_comp_of_isFinite_of_isImmersion_of_isNoetherianRing9 below · depth 29 - Unique commutative relative group law with prescribed unit section
GoodReductionJacobian.exists_relativeGroupLaw_one_eq_and_isCommutative_of_smooth_of_isClosedImmersion_proj_of_isNoetherianRing306 below · depth 29 - Closed Theta-locus in a framed fine moduli scheme
AlgebraicGeometry.FramedPolarisedAbelianScheme.IsFineModuli.exists_pt_of_isClosedImmersion_of_iff_exists_comp_eq0 below · depth 30 - Freeness of the theta group action on framed objects
AlgebraicGeometry.FramedPolarisedAbelianScheme.eq_one_of_isReframe_inter_of_iso853 below · depth 30 - Theta-adapted frames differ locally by the theta group
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_cover_isReframe_inter_iso_of_isThetaAdapted_of_iso1,168 below · depth 30 - A functorial finitely generated ideal cutting out theta-adaptedness
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_ideal_fg_isThetaAdapted_iff_eq_bot1,322 below · depth 30 - Embedded moduli of framed polarised abelian schemes over a Noetherian base
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isImmersion_proj_represents_embedded_of_isNoetherianRing1,449 below · depth 30 - Theta-adapted framed base change from a Schrödinger frame
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isPullback_isThetaAdapted_of_schrodingerFrame38 below · depth 30 - Reframing a framed polarised abelian scheme by a unit matrix
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isReframe10 below · depth 30 - Functorial Γ-action descends to automorphisms of a fine moduli scheme
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_monoidHom_aut_forall_pt_act_eq_of_isFineModuli1 below · depth 30 - Reframing commutes with base change
AlgebraicGeometry.FramedPolarisedAbelianScheme.isPullback_of_isPullback_of_isReframe11 below · depth 30 - Theta-adaptedness descends along base change of framed schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.isThetaAdapted_of_isPullback75 below · depth 30 - Reframing by an intertwiner preserves theta-adaptedness
AlgebraicGeometry.FramedPolarisedAbelianScheme.isThetaAdapted_of_isReframe_inter19 below · depth 30 - Theta-adaptedness is invariant under isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.isThetaAdapted_of_iso7 below · depth 30 - Reframing by intertwiners is multiplicative up to framed isomorphism
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_isReframe_inter_mul7 below · depth 30 - Reframing by the intertwiner of the identity gives a framed isomorphism
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_isReframe_inter_one69 below · depth 30 - Framed rigidity: frame-compatible isomorphisms of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_iso_comp_toProj_eq_of_one_comp_toProj_eq_of_forall_comp_toProj_eq64 below · depth 30 - Reframing preserves isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_iso_of_isReframe7 below · depth 30 - Representability and projectivity of the Hilbert functor Hilb^P_{Pⁿ}
AlgebraicGeometry.HilbertFunctor.exists_scheme_represents_and_isClosedImmersion_toProjSpace_hilbertFunctionOf41 below · depth 30 - Grothendieck existence theorem for proper morphisms
AlgebraicGeometry.OModulePresheaf.exists_isCoherent_forall_ker_eq_pow_smul_top_of_isProper_of_isAdicComplete200 below · depth 30 - Base change preserves symmetric polarisations of type δ with principal root
AlgebraicGeometry.PolarisedAbelianScheme.rootedSymmetricOfType_of_isPullback8 below · depth 30 - G-stable affine open containing a finite set of points
AlgebraicGeometry.Scheme.exists_isAffineOpen_forall_mem_forall_preimage_eq_of_isSeparated_of_finset0 below · depth 30 - Immersions into projective space descend along a finite extension
AlgebraicGeometry.Scheme.exists_isImmersion_proj_comp_of_isImmersion_proj_of_finite_free2 below · depth 30 - Ample chart datum yields an immersion into projective space
AlgebraicGeometry.Scheme.exists_isImmersion_proj_of_affineCover_cocycle_basicOpen_eq_of_locallyOfFiniteType4 below · depth 30 - Quasi-projectivity descends along a finite-group quotient
AlgebraicGeometry.Scheme.exists_isImmersion_proj_of_isIntegralHom_of_quotient_of_finite_of_isImmersion_proj12 below · depth 30 - Base change of a quasi-compact finite-type immersion into P^M_R
AlgebraicGeometry.isSeparated_and_quasiCompact_and_locallyOfFinitePresentation_and_forall_finset_exists_isAffineOpen_of_isPullback_of_isImmersion3 below · depth 30 - Base change to a basic open of a smooth proper family with connected fibres
GoodReductionJacobian.AbelianSchemePropertyBundle.baseChange_away_of_smooth_of_isProper0 below · depth 30 - Commutativity of a relative group law on an abelian scheme
GoodReductionJacobian.AbelianSchemePropertyBundle.isCommutative106 below · depth 30 - A relative group law is determined by its unit section
GoodReductionJacobian.RelativeGroupLaw.eq_of_one_eq_of_abelianSchemePropertyBundle106 below · depth 30 - Local group law with prescribed unit over a Noetherian base
GoodReductionJacobian.exists_away_relativeGroupLaw_baseChange_one_eq_of_isNoetherianRing_of_isClopen303 below · depth 30 - Gluing relative group laws from basic opens of the base
GoodReductionJacobian.exists_relativeGroupLaw_one_eq_of_forall_exists_away0 below · depth 30 - A reframing matrix is invertible
AlgebraicGeometry.FramedPolarisedAbelianScheme.IsReframe.isUnit0 below · depth 31 - Theta-adaptedness of a framed family is cut out by a finitely generated ideal
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_ideal_fg_forall_isPullback_isThetaAdapted_iff_map_eq_bot1,312 below · depth 31 - Two Schrödinger frames differ clopen-locally by an intertwiner matrix
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_idempotents_gam_units_schrodingerFrame_sigma_eq70 below · depth 31 - Base change of a frame agrees up to one unit
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isUnit_forall_app_pullbackLocalSection_frame_eq_baseScalar_smul59 below · depth 31 - Hilbert point cutting out a framed polarised abelian scheme
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_point_forall_mem_iff_frame_toProj1,174 below · depth 31 - Emptiness of framed polarised abelian schemes without Hilbert polynomial (N+1)t^g
AlgebraicGeometry.FramedPolarisedAbelianScheme.isEmpty_of_not_exists_hilbertPolynomial1,163 below · depth 31 - Transitivity of base change for framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.isPullback_comp2 below · depth 31 - Reflexivity of base change along id_S for framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.isPullback_id6 below · depth 31 - Transported frame gives an isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_mk_of_iso_hom_comp_toProj_eq0 below · depth 31 - Rescaling a frame by a unit preserves the framed isomorphism class
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_mk_of_iso_of_forall_sigma_eq_smul3 below · depth 31 - Framed base change is unique up to framed isomorphism
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_isPullback_of_isPullback1 below · depth 31 - Base change of isomorphic framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_iso_of_isPullback_of_isPullback66 below · depth 31 - Reflexivity of isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_refl0 below · depth 31 - Symmetry of isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_symm1 below · depth 31 - Transitivity of framed isomorphism of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_trans1 below · depth 31 - Reframing a framed polarised abelian scheme by a permutation
AlgebraicGeometry.FramedPolarisedAbelianScheme.reframe_perm11 below · depth 31 - Hilbert points of Pⁿ versus flat closed subschemes
AlgebraicGeometry.HilbertFunctor.exists_closedImmersion_flat_lfp_forall_mem_iff_of_point_hilbertFunctionOf231 below · depth 31 - Descent of Hilbert-functor points from geometric fibres to the base
AlgebraicGeometry.HilbertFunctor.exists_point_I_eq_span_of_isClosedImmersion_of_flat_of_locallyOfFinitePresentation221 below · depth 31 - Representability of the Hilbert functor for maximal-growth h
AlgebraicGeometry.HilbertFunctor.exists_scheme_represents_and_isClosedImmersion_toProjSpace_of_maximal_growth38 below · depth 31 - Grothendieck existence for closed subschemes of P^r_A
AlgebraicGeometry.OModulePresheaf.exists_isCoherent_forall_ker_eq_pow_smul_top_of_isClosedImmersion_proj_of_isAdicComplete99 below · depth 31 - Rescaling a Schrödinger frame by a base unit
AlgebraicGeometry.Polarisation.SchrodingerFrame.exists_sigma_eq_baseScalar_smul_of_isUnit0 below · depth 31 - Base change preserves the existence of a principal root
AlgebraicGeometry.PolarisedAbelianScheme.hasPrincipalRoot_of_isPullback4 below · depth 31 - Being of type δ is stable under base change
AlgebraicGeometry.PolarisedAbelianScheme.isOfType_of_isPullback5 below · depth 31 - Symmetry of the polarisation is stable under base change
AlgebraicGeometry.PolarisedAbelianScheme.isSymmetric_of_isPullback4 below · depth 31 - Closed subschemes of Pⁿ_A determined by chartwise vanishing in high degrees
AlgebraicGeometry.ProjSpace.exists_iso_comp_eq_of_isClosedImmersion_of_forall_app_awayToSection_eq_zero_iff1 below · depth 31 - Every morphism to Pⁿ_A admits a Proj presentation
AlgebraicGeometry.ProjSpace.exists_projPresentation_toProj_eq_and_locallyTrivial3 below · depth 31 - Base change of ZsubseteqPⁿ composes along a scalar tower
AlgebraicGeometry.ProjSpace.isPullback_comp_and_comp_eq_map_of_isScalarTower0 below · depth 31 - Pullback of a P^N_R-presentation along a morphism of schemes
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_projPresentation_pullback_sigma_eq_toProj_eq1 below · depth 31 - Transport of a Proj presentation along an isomorphism
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_sigma_eq_app_unit_and_toProj_eq_comp_of_iso2 below · depth 31 - Uniqueness of a module presenting a map to P^N_R
AlgebraicGeometry.Scheme.Modules.ProjPresentation.nonempty_iso_of_toProj_eq2 below · depth 31 - A projective presentation is determined by its sections
AlgebraicGeometry.Scheme.Modules.ProjPresentation.toProj_eq_of_forall_sections_eq_univ1 below · depth 31 - Proj presentation of a cocycle-glued module with prescribed charts
AlgebraicGeometry.Scheme.Modules.exists_projPresentation_glueOfCocycle_preimage_basicOpen_eq_of_basicOpen_eq_inf1 below · depth 31 - Projective presentation from a section basis is a closed immersion
AlgebraicGeometry.Scheme.Modules.exists_projPresentation_sigma_eq_isClosedImmersion_of_isSectionBasis10 below · depth 31 - Basis condition transfers along compatible P^N-presentations
AlgebraicGeometry.Scheme.Modules.isSectionBasisOn_pullback_comp_iff_of_toProj_comp_eq12 below · depth 31 - Invariant affine cover with invariant cocycle units for a finite group action
AlgebraicGeometry.Scheme.exists_invariant_affineCover_cocycle_basicOpen_eq_of_finite_of_isImmersion_proj5 below · depth 31 - Relative Segre embedding for projective closed subschemes
AlgebraicGeometry.exists_isClosedImmersion_projSpace_pullback_of_isClosedImmersion0 below · depth 31 - Projective ambient scheme with Hilb×(P^N)^k points
AlgebraicGeometry.exists_isClosedImmersion_proj_forall_bijective_pullback_points2 below · depth 31 - Connected fibres of dimension g from geometric fibres
AlgebraicGeometry.isConnected_preimage_and_topologicalKrullDim_eq_of_forall_geometricFibre146 below · depth 31 - Openness and base change of the abelian-fibre locus
GoodReductionJacobian.AbelianSchemePropertyBundle.isOpen_setOf_abelian_geometricFibre_and_preimage_eq_of_isPullback376 below · depth 31 - Unit-preserving morphism of abelian schemes is a homomorphism
GoodReductionJacobian.AbelianSchemePropertyBundle.schemeHomOverComp_mul_eq_mul_of_schemeHomOverComp_one_eq_one105 below · depth 31 - Comparison map intertwines group laws with matching unit sections
GoodReductionJacobian.RelativeGroupLaw.mul_comp_eq_mul_of_isPullback_of_one_comp_eq108 below · depth 31 - Relative group law over the local ring at s
GoodReductionJacobian.exists_relativeGroupLaw_baseChange_localizationAtPrime_one_eq_of_isNoetherianRing_of_isClopen300 below · depth 31 - Unique commutative relative group law from abelian geometric fibres
GoodReductionJacobian.exists_relativeGroupLaw_one_eq_and_isCommutative_of_forall_abelian_geometricFibre389 below · depth 31 - Normal form of a theta point on a Schrödinger frame
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_completeOrthogonalIdempotents_forall_act_schrodingerFrame_eq62 below · depth 32 - Fibrewise theta condition for a fixed matrix is cut out by a finitely generated ideal
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_ideal_fg_forall_isPullback_exists_translate_comp_eq_iff_map_eq_bot1,296 below · depth 32 - Theta points versus translations of a framed projective embedding
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_thetaPt_act_eq_iff_exists_translate_comp_toProj_eq7 below · depth 32 - Geometric fibre h⁰(L^{⊗ d})=(N+1)d^g for framed abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.geomFibreH0Finrank_natRec_tensor_eq_of_realisation1,085 below · depth 32 - Flatness over the base of the subscheme cut out by a Hilbert-functor point
AlgebraicGeometry.HilbertFunctor.Point.flat_comp_of_ideal_basicOpen_eq_span2 below · depth 32 - Large-degree h⁰ of tensor powers equals the Hilbert function
AlgebraicGeometry.HilbertFunctor.exists_forall_geomFibreH0Finrank_tensorPow_eq_hilbertFunctionOf_of_point50 below · depth 32 - Gotzmann saturation for Hilbert functor points over any ring
AlgebraicGeometry.HilbertFunctor.exists_forall_mem_of_forall_X_pow_mul_mem_hilbertFunctionOf17 below · depth 32 - Uniform Gotzmann regularity for points of the Hilbert functor
AlgebraicGeometry.HilbertFunctor.exists_forall_subsingleton_HSucc_twist_and_forall_H0_exists_of_point_hilbertFunctionOf169 below · depth 32 - Hilbert–Serre for a closed subscheme of Pⁿ_k
AlgebraicGeometry.HilbertFunctor.exists_ideal_forall_mem_iff_app_awayToSection_eq_zero_and_polynomial4 below · depth 32 - Graded quotient data defines a point of the Hilbert functor
AlgebraicGeometry.HilbertFunctor.exists_point_I_eq_span_of_forall_surjective_of_forall_projective0 below · depth 32 - Hilbert-functor point from a closed subscheme with h⁰ = P
AlgebraicGeometry.HilbertFunctor.exists_point_forall_mem_iff_of_isClosedImmersion_of_forall_geomFibreH0Finrank_eq_eval76 below · depth 32 - Truncating a homogeneous ideal to a Hilbert-functor point
AlgebraicGeometry.HilbertFunctor.exists_point_hilbertFunctionOf_forall_mem_iff_of_forall_finrank_piece_eq0 below · depth 32 - An I-adic system of coherent data is a quotient of one coherent datum
AlgebraicGeometry.OModulePresheaf.exists_isCoherent_forall_surjective_of_forall_ker_eq_pow_smul_top_of_isClosedImmersion33 below · depth 32 - Kernel membership is invariant under base change
AlgebraicGeometry.Polarisation.memKernel_iff_memKernel_comp_of_isPullback4 below · depth 32 - Chart-ideal membership on D₊(xᵢ) versus xᵢ^N F ∈ I
AlgebraicGeometry.ProjSpace.awayToSection_mk_mem_span_iff_exists_X_pow_mul_mem0 below · depth 32 - Base change of the ideal sheaf of a homogeneous ideal on Pⁿ
AlgebraicGeometry.ProjSpace.eq_comap_map_of_ideal_basicOpen_eq_span1 below · depth 32 - Kernel ideal sheaf of a closed immersion into Pⁿ_A
AlgebraicGeometry.ProjSpace.eq_ker_of_ideal_basicOpen_eq_span_of_isClosedImmersion3 below · depth 32 - Noetherian approximation of flat closed subschemes of Pⁿ
AlgebraicGeometry.ProjSpace.exists_fg_subalgebra_isClosedImmersion_flat_isPullback_comp_map_of_isClosedImmersion_of_flat_of_locallyOfFinitePresentation28 below · depth 32 - Vanishing on one chart of Pⁿ_A spreads to all charts
AlgebraicGeometry.ProjSpace.exists_forall_app_awayToSection_eq_zero_of_app_awayToSection_eq_zero0 below · depth 32 - Ideals of A[x₀,…,xₙ] cut out ideal sheaves on Pⁿ_A
AlgebraicGeometry.ProjSpace.exists_idealSheafData_ideal_basicOpen_eq_span3 below · depth 32 - Closed subschemes of Pⁿ_A base change to Pⁿ_B
AlgebraicGeometry.ProjSpace.exists_isClosedImmersion_isPullback_comp_eq_map1 below · depth 32 - Uniqueness of base-change realisations inside Pⁿ_B
AlgebraicGeometry.ProjSpace.exists_iso_hom_comp_eq_of_isPullback_of_comp_eq_map1 below · depth 32 - Base change of the Čech complex of the twist mathcal O_Z(d)
AlgebraicGeometry.ProjSpace.exists_linearEquiv_baseChange_cochain_twist_of_isPullback4 below · depth 32 - Degree-d forms as global sections of φ^*𝒪(d)
AlgebraicGeometry.ProjSpace.exists_linearMap_homogeneousSubmodule_twistObj_top_val_eq0 below · depth 32 - Finiteness of Čech cohomology of twists on closed subschemes of Pⁿ_A
AlgebraicGeometry.ProjSpace.finite_H0_twist_and_finite_HSucc_twist_of_isClosedImmersion57 below · depth 32 - Transport of check H⁰(𝒪(d)) along a realised base change
AlgebraicGeometry.ProjSpace.finite_projective_H0_twist_of_ker_baseChange_of_isPullback6 below · depth 32 - Flatness and vanishing of Čech cochains of mathcal O_Z(d)
AlgebraicGeometry.ProjSpace.flat_cochain_twist_and_subsingleton_cochain_of_flat57 below · depth 32 - Base-changed twisted Čech complex at a Hilbert-functor point
AlgebraicGeometry.ProjSpace.ker_baseChange_le_range_and_finrank_ker_eq_of_point_of_isPullback6 below · depth 32 - Closed subschemes of Pⁿ_A from finitely generated homogeneous ideals
AlgebraicGeometry.ProjSpace.locallyOfFinitePresentation_comp_of_fg_of_ideal_basicOpen_eq_span1 below · depth 32 - Compatibility of dehomogenised forms with a base-change realisation
AlgebraicGeometry.ProjSpace.restrictFun_app_app_awayToSection_eq_app_awayToSection_map0 below · depth 32 - Openness of the abelian geometric-fibre locus over a basic open
GoodReductionJacobian.AbelianSchemePropertyBundle.isOpen_setOf_not_mem_and_abelian_geometricFibre370 below · depth 32 - Fibre smoothness, irreducibility, dimension and group law along a cartesian square
GoodReductionJacobian.RelativeGroupLaw.smooth_irreducibleSpace_geometricFibre_iff_of_isPullback1 below · depth 32 - Independence of the geometric point for abelian fibre conditions
GoodReductionJacobian.RelativeGroupLaw.smooth_irreducibleSpace_geometricFibre_iff_of_ker_eq_ker15 below · depth 32 - Relative group law over the completed local ring at a point of W
GoodReductionJacobian.exists_relativeGroupLaw_baseChange_adicCompletion_one_eq_of_isNoetherianRing_of_isClopen298 below · depth 32 - Representability and projectivity of the Grassmannian of a finite module
Module.Grassmannian.exists_scheme_represents_and_isClosedImmersion_toProjSpace14 below · depth 32 - Finitely generated ideal detecting a translating point
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_ideal_fg_forall_isPullback_exists_comp_toProj_eq_one_comp_iff_map_eq_bot11 below · depth 33 - Ideal cutting out the theta equation for a fixed matrix
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_ideal_fg_forall_isPullback_translate_comp_eq_iff_map_eq_bot_of_section364 below · depth 33 - Cancellation of framed base-change squares
AlgebraicGeometry.FramedPolarisedAbelianScheme.isPullback_of_isPullback_comp3 below · depth 33 - Gotzmann regularity in uniform numerical form
AlgebraicGeometry.HilbertFunctor.exists_forall_finrank_piece_eq_eval_of_isClosedImmersion_of_forall_mem_iff_of_eventually_eq21 below · depth 33 - Gotzmann saturation over a field in degrees beyond D₀
AlgebraicGeometry.HilbertFunctor.exists_forall_mem_of_forall_X_pow_mul_mem_hilbertFunctionOf_field16 below · depth 33 - Translation at the unit section recovers the point
AlgebraicGeometry.Polarisation.lift_one_comp_translate_comp_fst0 below · depth 33 - Large twists of a closed subscheme of Pⁿ_A: 0-cocycles come from forms
AlgebraicGeometry.ProjSpace.exists_forall_H0_twist_exists_isHomogeneous_forall_val_eq_of_isClosedImmersion23 below · depth 33 - Chartwise spreading of ideal-sheaf membership on Pⁿ_A
AlgebraicGeometry.ProjSpace.exists_forall_awayToSection_mk_X_pow_mul_mem_ideal_of_mem_ideal0 below · depth 33
… and 75 more statements (search for the module name to find them).