Skip to content

[Merged by Bors] - feat(AlgebraicGeometry): directed covers#24528

Closed
chrisflav wants to merge 8 commits intomasterfrom
chrisflav-directed-cover
Closed

[Merged by Bors] - feat(AlgebraicGeometry): directed covers#24528
chrisflav wants to merge 8 commits intomasterfrom
chrisflav-directed-cover

Conversation

@chrisflav
Copy link
Copy Markdown
Member

@chrisflav chrisflav commented May 1, 2025

Directed covers are covers, where every intersection can be covered by a component of the cover. For open covers this is equivalent to the images forming a basis of the topology.

If a cover is directed, the compatibility conditions for gluing become easier, because only compatibility with the transition maps needs to be checked. In particular, the covered scheme naturally is the colimit of the components
of the cover.


Open in Gitpod

@chrisflav chrisflav added the t-algebraic-geometry Algebraic geometry label May 1, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented May 1, 2025

PR summary d1e01e284e

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.AlgebraicGeometry.Cover.Directed (new file) 2192

Declarations diff

+ Cover.LocallyDirected.ofIsBasisOpensRange
+ Cover.LocallyDirected.ofIsBasisOpensRange_le_iff
+ Cover.LocallyDirected.ofIsBasisOpensRange_trans
+ LocallyDirected
+ coconeOfLocallyDirected
+ directedAffineCover
+ directedAffineCover_trans
+ exists_lift_trans_eq
+ functorOfLocallyDirected
+ glueMorphismsOfLocallyDirected
+ glueMorphismsOverOfLocallyDirected
+ instance : (𝒰.functorOfLocallyDirected ⋙ Scheme.forget).IsLocallyDirected
+ instance : Category (𝒰.pullbackCover f).J := inferInstanceAs <| Category 𝒰.J
+ instance : Preorder X.directedAffineCover.J := inferInstanceAs <| Preorder X.affineOpens
+ instance : Scheme.Cover.LocallyDirected X.directedAffineCover
+ instance {i j : 𝒰.J} (f : i ⟶ j) : IsOpenImmersion (𝒰.functorOfLocallyDirected.map f)
+ instance {i j : 𝒰.J} (f : i ⟶ j) : IsOpenImmersion (𝒰.trans f)
+ intersectionOfLocallyDirected
+ isColimitCoconeOfLocallyDirected
+ locallyDirectedPullbackCover
+ map_glueMorphismsOfLocallyDirected
+ map_glueMorphismsOverOfLocallyDirected_left
+ property_trans
+ trans
+ trans_comp
+ trans_id
+ trans_map

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

Comment on lines +11 to +13
A directed `P`-cover of a scheme `X` is a cover `𝒰` with an ordering
on the indices and compatible transition maps `𝒰ᵢ ⟶ 𝒰ⱼ` for `i ≤ j` such that
every `x : 𝒰ᵢ ×[X] 𝒰ⱼ` comes from some `𝒰ₖ` for a `k ≤ i` and `k ≤ j`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this notion used somewhere in the literature?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't know, but it will be used to simplify the proof of the relative gluing lemma #18284 (which is stacks tag https://stacks.math.columbia.edu/tag/01LH). This lemma I need to construct colimits in over categories by gluing the affine pieces, which is used to obtain existence of colimits of shape J in Affine S from existence of limits of shape Jᵒᵖ in Under R.

Working with directed covers makes gluing much easier, because no intersections need to be considered.

@joelriou joelriou added the awaiting-author A reviewer has asked the author a question or requested changes. label May 6, 2025
@chrisflav chrisflav removed the awaiting-author A reviewer has asked the author a question or requested changes. label May 6, 2025
@leanprover-community-bot-assistant
Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label May 18, 2025
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label May 23, 2025
@mattrobball
Copy link
Copy Markdown
Contributor

I see unresolved conversations so I am tagging as awaiting-author.

@mattrobball mattrobball added the awaiting-author A reviewer has asked the author a question or requested changes. label Aug 15, 2025
@chrisflav chrisflav removed the awaiting-author A reviewer has asked the author a question or requested changes. label Aug 18, 2025
@mattrobball
Copy link
Copy Markdown
Contributor

I don't love that we jump to a general Category instance instead of working with a Preorder or something similar for the indexing type.

@mattrobball
Copy link
Copy Markdown
Contributor

Could you comment on this design choice? Thanks.

@chrisflav
Copy link
Copy Markdown
Member Author

I don't love that we jump to a general Category instance instead of working with a Preorder or something similar for the indexing type.

The first version of this PR indeed assumed a Preorder instance and in my application, this is the only case I need. But @erdOne raised (via DM) the suggestion to generalize it to Category, because it might be useful for gluing morphisms out of X in cases like J = WalkingCospan which is equivalent to a preorder, but not equal (possible use case: a scheme obtained from gluing two schemes along an open, e.g. projective line).

We could postpone this generalization to the point we actually need it, but the cost of having Category instead of Preorder is quite low, so I decided against it.

@mattrobball
Copy link
Copy Markdown
Contributor

I think the overhead is not terrible for a Category and wanted to make sure there was a plausible use case for the generality. Seems ok.

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Aug 28, 2025
mathlib-bors bot pushed a commit that referenced this pull request Aug 28, 2025
Directed covers are covers, where every intersection can be covered by a component of the cover. For open covers this is equivalent to the images forming a basis of the topology.

If a cover is directed, the compatibility conditions for gluing become easier, because only compatibility with the transition maps needs to be checked. In particular, the covered scheme naturally is the colimit of the components
of the cover.

Co-authored-by: Christian Merten <christian@merten.dev>
@chrisflav
Copy link
Copy Markdown
Member Author

Thanks for the reviews!

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 28, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(AlgebraicGeometry): directed covers [Merged by Bors] - feat(AlgebraicGeometry): directed covers Aug 28, 2025
@mathlib-bors mathlib-bors bot closed this Aug 28, 2025
@mathlib-bors mathlib-bors bot deleted the chrisflav-directed-cover branch August 28, 2025 15:37
chrisflav added a commit to chrisflav/mathlib4 that referenced this pull request Aug 28, 2025
Directed covers are covers, where every intersection can be covered by a component of the cover. For open covers this is equivalent to the images forming a basis of the topology.

If a cover is directed, the compatibility conditions for gluing become easier, because only compatibility with the transition maps needs to be checked. In particular, the covered scheme naturally is the colimit of the components
of the cover.

Co-authored-by: Christian Merten <christian@merten.dev>
FormulaRabbit81 pushed a commit to YaelDillies/mathlib4 that referenced this pull request Aug 30, 2025
Directed covers are covers, where every intersection can be covered by a component of the cover. For open covers this is equivalent to the images forming a basis of the topology.

If a cover is directed, the compatibility conditions for gluing become easier, because only compatibility with the transition maps needs to be checked. In particular, the covered scheme naturally is the colimit of the components
of the cover.

Co-authored-by: Christian Merten <christian@merten.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR has been sent to bors. t-algebraic-geometry Algebraic geometry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants