Skip to content

feat(Algebra/WLocalization): fill sorries for Generalization API#104

Open
chrisflav wants to merge 3 commits into
chrisflav:masterfrom
chrisflav-agents:pr/wlocalization-range-generalization
Open

feat(Algebra/WLocalization): fill sorries for Generalization API#104
chrisflav wants to merge 3 commits into
chrisflav:masterfrom
chrisflav-agents:pr/wlocalization-range-generalization

Conversation

@chrisflav
Copy link
Copy Markdown
Owner

Fill the five sorry placeholders in the WLocalization.Generalization section of Proetale/Algebra/WLocalization/Basic.lean:

  • range_algebraMap_generalization: identifies the image of Spec (Generalization f I) → Spec A with the generalization hull of D(f) ∩ V(I).
  • bijOn_algebraMap_generalization_specComap_zeroLocus_ideal: the closed subscheme V(ideal f I) ⊂ Spec (Generalization f I) maps bijectively onto D(f) ∩ V(I).
  • submonoid_le: monotonicity of Generalization.submonoid f I along inclusions of locally closed subsets D(f') ∩ V(I') ⊆ D(f) ∩ V(I).
  • Generalization.map.commutes': the A-algebra structure of the transition map between generalizations.
  • exists_specializes_zeroLocus_ideal: every point of Spec (Generalization f I) specializes to a point of V(ideal f I).

The proofs use two private helper lemmas: submonoid_disjoint_locClosedSubset_primes (forward direction of the membership criterion) and mem_submonoid_iff_not_mem_locClosedSubset (characterising submonoid f I via primes in D(f) ∩ V(I)).

This corresponds to lemma:locally-closed-specializations in blueprint/src/chapters/local-structure.tex; the informal proof is now annotated with \leanok.

Test plan

  • lake build Proetale.Algebra.WLocalization.Basic succeeds with no warnings.
  • bash .agent/validation.sh passes (full project build with --wfail).

🤖 Generated with Claude Code

Fill the five `sorry` placeholders in the `WLocalization.Generalization` section of
`Proetale/Algebra/WLocalization/Basic.lean`:

* `range_algebraMap_generalization`: identify the image of
  `Spec (Generalization f I) → Spec A` with the generalization hull of
  `D(f) ∩ V(I)`.
* `bijOn_algebraMap_generalization_specComap_zeroLocus_ideal`: the closed
  subscheme `V(ideal f I)` maps bijectively onto `D(f) ∩ V(I)`.
* `submonoid_le`: monotonicity of `submonoid f I` along inclusions of
  locally closed subsets.
* `Generalization.map.commutes'`: the `A`-algebra structure of `map h` is
  provided by `IsLocalization.liftAlgHom`.
* `exists_specializes_zeroLocus_ideal`: every point of
  `Spec (Generalization f I)` specializes to a point of `V(ideal f I)`.

This corresponds to `lemma:locally-closed-specializations` in
`blueprint/src/chapters/local-structure.tex`; the proof now carries a `\leanok`.

Co-Authored-By: Claude Opus 4.7 <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. and removed awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. labels May 24, 2026
Address review feedback on PR chrisflav#104:
- Drop redundant `submonoid_disjoint_locClosedSubset_primes` helper;
  its content is now a 1-line corollary of the iff lemma.
- Rename `mem_submonoid_iff_not_mem_locClosedSubset` to `mem_submonoid_iff`
  and prove both directions symmetrically via
  `PrimeSpectrum.basicOpen_le_basicOpen_iff_algebraMap_isUnit`.
- Extract the prime lift used by both `bijOn_…` and
  `exists_specializes_zeroLocus_ideal` into the private lemma
  `exists_mem_zeroLocus_ideal_specComap_eq`.
- Use `IsLocalization.isPrime_iff_isPrime_disjoint` in the `mapsTo`
  branch of `bijOn_…` to obtain disjointness directly.
- Reorder declarations so the iff comes first and the proofs read
  top-down.
- Drop stale planning comments, `with hq_def` binders, unused
  `set f_bar`/`set a_bar` indirection, and the double blank line.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@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 May 24, 2026
Comment thread Proetale/Algebra/WLocalization/Basic.lean Outdated
Comment thread Proetale/Algebra/WLocalization/Basic.lean Outdated
@chrisflav chrisflav added the awaiting-orchestra A reviewer has made suggestions that are waiting to be implemented by orchestra. label May 24, 2026
- unprivate `mem_submonoid_iff` as it is a general purpose lemma
- avoid `change` tactic in favor of explicit API lemmas

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@chrisflav chrisflav removed the awaiting-orchestra A reviewer has made suggestions that are waiting to be implemented by orchestra. label May 24, 2026
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.

1 participant