Skip to content

feat(Algebra/Category/Ring/FilteredDescent): FP-algebra descent along filtered colimit (Stacks 00U3)#73

Open
chrisflav wants to merge 9 commits into
chrisflav:masterfrom
chrisflav-agents:pr/filtered-descent-fp-algebra
Open

feat(Algebra/Category/Ring/FilteredDescent): FP-algebra descent along filtered colimit (Stacks 00U3)#73
chrisflav wants to merge 9 commits into
chrisflav:masterfrom
chrisflav-agents:pr/filtered-descent-fp-algebra

Conversation

@chrisflav

Copy link
Copy Markdown
Owner

Summary

Adds Proetale/Mathlib/Algebra/Category/Ring/FilteredDescent.lean, which proves Stacks Tag 00U3: if F : J ⥤ CommRingCat is a filtered diagram with colimit cocone c and φ : c.pt ⟶ A is a finitely presented ring map, then there exists a finite stage j₀ : J, an object Aⱼ and an FP map φⱼ : F.obj j₀ ⟶ Aⱼ, and a map ψ : Aⱼ ⟶ A such that the square

F.obj j₀ ──── c.ι.app j₀ ────▶ c.pt
   │                              │
   φⱼ                             φ
   ▼                              ▼
   Aⱼ ─────────── ψ ────────────▶ A

is a pushout (equivalently, A ≃ c.pt ⊗[F.obj j₀] Aⱼ).

  • New file: Proetale/Mathlib/Algebra/Category/Ring/FilteredDescent.lean (191 lines, 0 sorries)
  • Only imports Mathlib (no project-specific dependencies)
  • Registered in Proetale.lean

Source

Upstreamed from the archon branch (Proetale/Mathlib/Algebra/Category/Ring/FilteredDescent.lean), with style fixes: removed unused instance names, removed prohibited show ... from inside rw, cleaned up redundant comments.

… filtered colimit (Stacks 00U3)

Proves that if `F : J ⥤ CommRingCat` is filtered with colimit cocone `c` and
`φ : c.pt ⟶ A` is finitely presented, then there exists a finite stage `j₀`
with an FP map `φⱼ : F.obj j₀ ⟶ Aⱼ` such that the square is a pushout
(equivalently, `A ≃ c.pt ⊗[F.obj j₀] Aⱼ`). This is Stacks Tag 00U3.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@chrisflav chrisflav added archon Upstreamed from `archon` branch awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. labels May 21, 2026
…eview

Address the review of chrisflav#73:

- Promote `exists_finset_lift` to a public lemma `exists_lift_finset_of_isColimit`
  and move it next to the existing `FilteredColimits.lean`.
- Drop the redundant `c.ι.app j₀ ≫ φ = φⱼ ≫ ψ` conjunct from the existential
  (it is just `IsPushout.w`).
- Replace the ~40-line manual `IsPushout` construction with
  `Algebra.IsPushout.of_equiv (P.tensorModelOfHasCoeffsEquiv R₀)` followed by
  `CommRingCat.isPushout_of_isPushout`, eliminating the `eIso`/four-naturality
  -squares boilerplate.
- Split the main proof into three steps: (a) lift coefficients to a finite
  stage, (b) build the descended model, (c) conclude the pushout.
- Rename `exists_fp_algebra_descent_of_isColimit` to
  `exists_finitePresentation_descent_of_isColimit` and tag it with `@[stacks 00U3]`.
@chrisflav chrisflav removed the awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. label May 24, 2026
@chrisflav chrisflav added the awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. label Jun 2, 2026
@chrisflav chrisflav added awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. and removed awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. labels Jun 2, 2026
Generalize the finset-jointly-surjective lemma to filtered colimits of
types (per maths review), and apply the suggested style/naming fixes
(per style review):

- Move `exists_lift_finset_of_isColimit` to a new file under
  `Proetale/Mathlib/CategoryTheory/Limits/Types/Filtered.lean` under
  the name `jointly_surjective_finset_of_isColimit`, generalised to
  any filtered colimit of types with `lift : s → F.obj j`.
- Rename `exists_finitePresentation_descent_of_isColimit` to
  `exists_finitePresentation_isPushout_of_isColimit`.
- Build `ψAlg` directly from `tensorModelOfHasCoeffsHom` instead of
  routing through `eAlg.restrictScalars`; scope the
  `Algebra.TensorProduct.rightAlgebra` local instance to the pushout
  branch where it is needed.
- Replace `change … ; rfl` with `rfl`, switch tactic-mode `letI`/`haveI`
  to `let _`/`have`, switch `fun … =>` to `fun … ↦`, fold trivial
  single-use `have`s, drop noise type ascriptions and step labels.
- Add a copyright header to `Proetale/Mathlib/Algebra/Category/Ring/FilteredColimits.lean`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@chrisflav chrisflav removed the awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. label Jun 2, 2026
Comment thread Proetale/Mathlib/Algebra/Category/Ring/FilteredDescent.lean Outdated
Comment thread Proetale/Mathlib/CategoryTheory/Limits/Types/Filtered.lean Outdated
Comment thread Proetale/Mathlib/CategoryTheory/Limits/Types/Filtered.lean Outdated
Comment thread Proetale/Mathlib/CategoryTheory/Limits/Types/Filtered.lean Outdated
Comment thread Proetale/Mathlib/CategoryTheory/Limits/Types/Filtered.lean Outdated
@jjdishere

Copy link
Copy Markdown
Collaborator

orchestra address review

chrisflav and others added 2 commits June 9, 2026 03:32
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…orts

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@jjdishere jjdishere left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add this lemma and its proof in the blueprint blueprint/src/chapters/more-on-local-structure.tex, add \lean and \leanon, add proper \uses in the blue print where this lemma is used.

@jjdishere

Copy link
Copy Markdown
Collaborator

orchestra address review

…olimit)

Per review on PR chrisflav#73, document the new lemma
`CommRingCat.exists_finitePresentation_isPushout_of_isColimit`
in the blueprint with `\lean` and `\leanok` annotations, including a
sketch of the proof.

@jjdishere jjdishere left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

orchestra address review

Comment thread blueprint/src/chapters/more-on-local-structure.tex Outdated
@jjdishere

Copy link
Copy Markdown
Collaborator

orchestra address review

…uage

Replace the cocone notation c.pt / c_{j_0} with the colimit ring R and
indexed family (R_j)_{j in J}; rephrase the proof accordingly.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which theroem further uses lemma:fp-algebra-descent-filtered-colim? please add \uses

@jjdishere

Copy link
Copy Markdown
Collaborator

orchestra address review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

archon Upstreamed from `archon` branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants