feat(Algebra/IndZariski): fill bijectiveOnStalks_algebraMap and of_colimitPresentation sorries#92
Open
chrisflav wants to merge 23 commits into
Open
Conversation
…_colimitPresentation` Adds the helper `Algebra.IndZariski.bijectiveOnStalks_of_colimitPresentation` showing that bijectivity on stalks transports along a filtered colimit presentation, then uses it to close the two open sorries in the file: * `Algebra.IndZariski.bijectiveOnStalks_algebraMap` (Stacks 096T): every ind-Zariski algebra map is bijective on stalks. * `Algebra.IndZariski.of_colimitPresentation`: a filtered colimit of ind-Zariski algebras is ind-Zariski. Also adds `\leanok` to the proof block of the corresponding blueprint lemma `thm:ind-Zariski-identifies-local-rings`.
chrisflav
commented
May 22, 2026
Owner
Author
|
orchestra polish |
Apply review-code style guide: drop redundant variable redeclarations that shadow the section variables, replace the `change` tactic with a term-mode `DFunLike.congr_fun (congrArg ...)`, move `have` binders to the left of the colon, and add the missing docstring on `of_colimitPresentation`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chrisflav
commented
May 23, 2026
Owner
Author
|
orchestra address review |
…ete-category API Address PR chrisflav#92 review feedback: - Refactor `bijectiveOnStalks_of_colimitPresentation` and `bijectiveOnStalks_algebraMap` to use the `Algebra.BijectiveOnStalks` class rather than the `(algebraMap …).BijectiveOnStalks` ring-hom property. - Replace usages of `Types.jointly_surjective_of_isColimit` and `Types.FilteredColimit.isColimit_eq_iff'` by the corresponding `Concrete.isColimit_exists_rep` and `IsColimit.eq_iff'` from `Mathlib.CategoryTheory.Limits.ConcreteCategory.{Basic,Filtered}`. - Update call sites in `WContractible` and `WLocalization/Basic` to convert between the algebra and ring-hom forms via `RingHom.bijectiveOnStalks_algebraMap`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…` namespace `bijectiveOnStalks_of_colimitPresentation` is a general fact about filtered colimits and `Algebra.BijectiveOnStalks`; it has no `IndZariski` hypothesis. Move it from `Algebra.IndZariski` to `Algebra.BijectiveOnStalks` and rename to `of_colimitPresentation` so the qualified name reflects its content, and update the single in-file call site.
chrisflav
commented
May 26, 2026
…eOnStalks` Address review feedback on PR chrisflav#92 by dropping the redundant `_algebraMap` suffix and updating the blueprint `\lean` label.
…esentation Extract two private helper lemmas matching the reviewer's structural strategy: - exists_localRingHom_eq: every element of Localization.AtPrime p lifts from Localization.AtPrime pᵢ for some i (existence half of colimit characterization) - exists_localRingHom_eq_of_localRingHom_eq: if two elements of Loc.q have equal images in Loc.p, they have equal images in Loc.pⱼ for some j (equality half) The main of_colimitPresentation proof now factors through these helpers plus RingHom.BijectiveOnStalks.localRingHom_of_eq. Not yet compiling — surjectivity case has a residual goal coercing between algebraMap R S and (P.ι.app i).hom.comp (algebraMap R Aᵢ). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Address PR review feedback: refactor `of_colimitPresentation` so the proof factors through the conceptual steps `localization of filtered colimit at a prime = filtered colimit of localizations` and the resulting bijectivity of the induced `Localization.localRingHom`. The refactor extracts two private helper lemmas: `exists_localRingHom_eq` (existence of lifts) and `exists_localRingHom_eq_of_localRingHom_eq` (filtered colimit of equalities), supported by `colimitPrime` / `colimitPrime_comap_algebraMap` / `colimitPrime_comap_diag`. The main `of_colimitPresentation` proof then combines these with bijectivity of each stalk to get bijectivity of the colimit's stalk. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Owner
Author
|
Show that if |
…isColimitLocalizationCocone Address PR chrisflav#92 reviewer comment requesting refactor: 'Show that ... the localization of R at the prime p is isomorphic to the filtered colimit of the localizations of R_i at the preimages of p in R_i.' Adds: - localizationDiag P p : ι ⥤ CommRingCat, the diagram of localizations at preimages, with Localization.localRingHom transitions. - localizationCocone P p : Cocone with apex Localization.AtPrime p. - isColimitLocalizationCocone : IsColimit (localizationCocone P p), proved by reflection through the forgetful functor to Type and Types.FilteredColimit.isColimitOf'. Refactors of_colimitPresentation to use the new iso. WIP: compilation still has errors to address; pushing to preserve state. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ding for iso lemma Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…itLocalizationCocone Add categorical infrastructure addressing review feedback on PR chrisflav#92: * `Algebra.BijectiveOnStalks.localizationDiag P p`: the diagram `i ↦ Localization.AtPrime (colimitPrime P p i)` with transition maps the canonical `Localization.localRingHom`s. * `Algebra.BijectiveOnStalks.localizationCocone P p`: the cocone with apex `Localization.AtPrime p` induced by the colimit injections. * `Algebra.BijectiveOnStalks.isColimitLocalizationCocone P p`: shows that this cocone is a colimit. Together these encode the statement that the localization of a filtered colimit of `R`-algebras at a prime `p` is the filtered colimit of the localizations at the preimages of `p`. The IsColimit proof reduces to the type-level criterion via the forgetful functor (which preserves filtered colimits and reflects isomorphisms), combining the existing `exists_localRingHom_eq` (surjectivity) with a new private helper `exists_eq_of_localRingHomDiag_eq` generalising the existing injectivity helper from the base ring `R` to arbitrary diagram constituents. Also: fix `colimitPrime_comap_diag` which broke after the recent Mathlib bumps. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Move BijectiveOnStalks colimit material to new file Proetale/Algebra/BijectiveOnStalks/ColimitPresentation.lean - Restore bijectiveOnStalks_algebraMap returning (algebraMap R S).BijectiveOnStalks and add an Algebra.BijectiveOnStalks instance for IndZariski algebras - Extract ColimitPresentation.ι_app_diag_map_apply helper, dedupe hnat - Trim proof-strategy commentary from docstrings - Replace `;`-chained tactics, remove `linear_combination` for `exact` - Drop the offending `rfl` after a closing `rw` - Update call sites in WContractible and WLocalization/Basic - Update blueprint reference to the restored name Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ack round 2 - Make `colimitPrime`, `localizationDiag`, `localizationCocone`, `isColimitLocalizationCocone` and their comap lemmas public (they are genuinely general results about localization commuting with filtered colimits of `R`-algebras). - Move the namespace from `Algebra.BijectiveOnStalks.ColimitPresentation` to `Localization.AtPrime.ColimitPresentation`, which is the natural algebraic scope. - Move `ColimitPresentation.ι_app_diag_map_apply` to the CommAlgCat mirror file and add new helpers `diag_map_id_apply`, `diag_map_comp_apply`, and `ι_app_algebraMap_apply` so the colimit file no longer reaches for raw `(P.diag.map _).map_id`/`map_comp`. - Use these helpers + add `localizationDiag_map_apply` and `localizationCocone_ι_app_apply` `@[simp]` lemmas to eliminate several `change`s and the `simp ...; exact h` -> `simpa using h` pattern. - Rename `exists_eq_of_localRingHomDiag_eq` to `exists_localizationDiag_map_eq`. - Inline the `refine ... ?_ ; exact ...` in `IndZariski.bijectiveOnStalks_algebraMap` into a single `exact`.
jjdishere
reviewed
Jun 9, 2026
Collaborator
|
orchestra address review |
… direction, drop privates - Rename `colimitPrime` to `contractionIdeal` and propagate to dependent lemma names and the prime-ideal instance (now named `contractionIdeal.isPrime`). - Reverse the direction of `contractionIdeal_comap_algebraMap` and `contractionIdeal_comap_diag` and tag them `@[simp]`. - Drop the unused `localizationDiag_map_apply` simp lemma. - Drop `@[simp]` from `localizationCocone_ι_app_apply`. - Make `exists_localRingHom_eq` and `exists_localRingHom_eq_of_localRingHom_eq` public. - Replace the omitted blueprint proof of `thm:ind-Zariski-identifies-local-rings` with a natural-language proof.
Add the missing `Proetale.Mathlib.AlgebraicGeometry.AffineTransitionLimit` and `Proetale.Mathlib.AlgebraicGeometry.Sites.AffineEtale` entries via `lake exe mk_all --git`, which the validation script enforces.
Collaborator
|
Please check and fix documentation build. |
jjdishere
reviewed
Jun 9, 2026
Collaborator
|
orchestra address review |
- Add @[simp] to ColimitPresentation.ι_app_diag_map_apply. - Drop @[simp] from ColimitPresentation.diag_map_id_apply since it is only used explicitly, not via simp. - Sharpen the docstring of ι_app_algebraMap_apply to describe the diagram-level statement rather than the vague phrase "colimit injection commutes". - Drop `private` from `exists_localizationDiag_map_eq`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Collaborator
|
merge master. |
Collaborator
|
orchestra address review |
…jective-on-stalks
Subscripting `\mathfrak{q}` via `_\mathfrak{q}` confuses unicode-math
(`_` grabs `\mathfrak` before its argument is read), aborting the
blueprint PDF build. Wrap subscripts in explicit braces and simplify
the prose to a concise natural-language proof that avoids the
ad-hoc `\varphi` notation.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the two remaining
sorrys inProetale/Algebra/IndZariski.leanfor ind-Zariski-related stalk bijectivity statements.Algebra.IndZariski.bijectiveOnStalks_of_colimitPresentation:if
S = colim_i A_iasR-algebras and eachR → A_iis bijective on stalks,then so is
R → S.Algebra.IndZariski.bijectiveOnStalks_algebraMap(Stacks 096T): every ind-Zariski algebra map identifies local rings.
Algebra.IndZariski.of_colimitPresentation: a filtered colimit ofind-Zariski algebras is ind-Zariski, via
iff_ind_isLocalIsoandObjectProperty.ind_indapplied toCommAlgCat.isLocalIso_le_isFinitelyPresentable.\leanokto the proof block of the corresponding blueprint lemmathm:ind-Zariski-identifies-local-rings.The code is extracted from the
archonbranch.Test plan
lake buildsucceeds on the full project.