Skip to content

Commit 847812f

Browse files
author
mathlib4-bot
committed
Merge remote-tracking branch 'upstream/master' into bump/v4.32.0
2 parents 12fcbb2 + 034a5a7 commit 847812f

140 files changed

Lines changed: 3136 additions & 393 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/get-mathlib-ci/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ inputs:
1010
# Default pinned commit used by workflows unless they explicitly override.
1111
# Update this ref as needed to pick up changes to mathlib-ci scripts
1212
# This is also updated automatically by .github/workflows/update_dependencies.yml
13-
default: e7a159e9a129f92fd07e6852a742485798678473
13+
default: 4db29a340d585b5ca9cc45ba5b951a3939753d53
1414
path:
1515
description: Checkout destination path.
1616
required: false

.github/workflows/PR_summary.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,16 @@ jobs:
213213
declDiff=$("${CI_SCRIPTS_DIR}/pr_summary/declarations_diff.sh")
214214
if [ "$(printf '%s' "${declDiff}" | wc -l)" -gt 15 ]
215215
then
216-
declDiff="$(printf '<details><summary>\n\n%s\n\n</summary>\n\n%s\n\n</details>\n' "#### Declarations diff" "${declDiff}")"
216+
declDiff="$(printf '<details><summary>\n\n%s\n\n</summary>\n\n%s\n\n</details>\n' "#### Declarations diff (regex)" "${declDiff}")"
217217
else
218-
declDiff="$(printf '#### Declarations diff\n\n%s\n' "${declDiff}")"
218+
declDiff="$(printf '#### Declarations diff (regex)\n\n%s\n' "${declDiff}")"
219219
fi
220+
# Append a placeholder for the post-build, Lean-aware diff. The
221+
# `decls-diff.yml` workflow replaces the region between the markers (see
222+
# mathlib-ci's `updateDeclsDiffSection.py`); the regex block above is left
223+
# as-is. The markers are HTML comments (invisible when rendered), and the
224+
# heading carries the status (`pending` → `(Lean)` / `(Lean -- unavailable)`).
225+
declDiff="$(printf '%s\n\n<!-- DECLS_DIFF_LEAN_BEGIN -->\n#### Declarations diff (Lean -- pending)\n\n_Computed after the build finishes._\n<!-- DECLS_DIFF_LEAN_END -->\n' "${declDiff}")"
220226
git checkout "${currentHash}" --
221227
hashURL="https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}/commits/${currentHash}"
222228
printf 'hashURL: %s' "${hashURL}"

.github/workflows/build_template.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,21 @@ jobs:
767767
run: |
768768
lake env lean --run "${CI_SCRIPTS_DIR}/pr_summary/dumpReasonableDecls.lean" \
769769
--out decls.txt --imports-out imports.json Mathlib
770+
## Record the PR number so the post-build `decls-diff` workflow can find
771+
## the comment to patch without the (laggy) commit-SHA search API. Empty
772+
## for non-PR builds (push to master / bors); the consumer then falls
773+
## back to the commit's associated PRs.
774+
printf '%s' "${{ github.event.pull_request.number }}" > pr_number.txt
775+
776+
- name: ensure dump outputs are regular files
777+
run: |
778+
for f in decls.txt imports.json import_graph.dot pr_number.txt; do
779+
if [ -L "$f" ] || [ ! -f "$f" ]; then
780+
echo "Refusing to upload: $f is not a regular file." >&2
781+
ls -la -- "$f" >&2 || true
782+
exit 1
783+
fi
784+
done
770785
771786
- name: upload the import graph
772787
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -776,12 +791,13 @@ jobs:
776791
import_graph.dot
777792
decls.txt
778793
imports.json
794+
pr_number.txt
779795
## Master pushes: 90 days, so later PRs forked from these commits
780796
## can consume the dumps from the artifact. Other branches: 7 days.
781797
retention-days: ${{ github.ref == 'refs/heads/master' && '90' || '7' }}
782798

783799
- name: clean up the import graph file
784-
run: rm -f import_graph.dot decls.txt imports.json
800+
run: rm -f import_graph.dot decls.txt imports.json pr_number.txt
785801

786802
- name: check all scripts build successfully
787803
run: |

.github/workflows/decls-diff.yml

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Post-build workflow that emits a Lean-aware declarations-diff in the Actions
2-
# step summary for each successful PR build. Consumes the `import-graph`
3-
# artifact uploaded by `build_template.yml` on both sides (PR head + master
4-
# merge-base) and computes the diff via mathlib-ci's `decls-diff` action.
5-
#
6-
# Stage-2 scope: visibility only. No `### PR summary` comment patching; that
7-
# behaviour ships in a follow-up PR.
1+
# Post-build workflow that patches the `### PR summary` comment with a
2+
# Lean-aware declarations diff after each successful PR build. Consumes the
3+
# `import-graph` artifact uploaded by `build_template.yml` on both sides
4+
# (PR head + master merge-base), computes the diff via mathlib-ci's
5+
# `decls-diff` action, and replaces the `#### Declarations diff (Lean ...)`
6+
# region of the comment (the regex block is left untouched). On a cache miss
7+
# it marks that region unavailable instead.
88

99
name: Declarations diff (post-build)
1010

@@ -15,9 +15,16 @@ on:
1515
workflows: ["continuous integration", "continuous integration (mathlib forks)"]
1616
types: [completed]
1717

18+
# Per upstream PR (repo + branch), keep only the latest post-build run so rapid
19+
# pushes don't race to patch the comment with a stale diff.
20+
concurrency:
21+
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}
22+
cancel-in-progress: true
23+
1824
permissions:
1925
contents: read
2026
actions: read # for cross-workflow artifact downloads
27+
pull-requests: write # for PATCHing the `### PR summary` comment
2128

2229
jobs:
2330
diff:
@@ -74,6 +81,23 @@ jobs:
7481
run-id: ${{ steps.meta.outputs.run-id }}
7582
github-token: ${{ secrets.GITHUB_TOKEN }}
7683

84+
- name: Resolve PR number
85+
id: pr
86+
env:
87+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
88+
REPO: ${{ github.repository }}
89+
NEW_SHA: ${{ steps.meta.outputs.new-sha }}
90+
run: |
91+
set -euo pipefail
92+
# The build records the PR number in the artifact — reliable for fork
93+
# PRs, where the commit-SHA search API lags or misses. Fall back to the
94+
# commit's associated PRs for same-repo pushes (commit is on this repo).
95+
PR_NUMBER="$(tr -dc '0-9' < ./new-artifact/pr_number.txt 2>/dev/null || true)"
96+
if [ -z "$PR_NUMBER" ]; then
97+
PR_NUMBER="$(gh api "repos/$REPO/commits/$NEW_SHA/pulls" --jq '.[0].number // empty')"
98+
fi
99+
echo "pr-number=$PR_NUMBER" | tee -a "$GITHUB_OUTPUT"
100+
77101
- name: Find master Build for the merge-base
78102
id: master-run
79103
env:
@@ -109,8 +133,9 @@ jobs:
109133
run-id: ${{ steps.master-run.outputs.run-id }}
110134
github-token: ${{ secrets.GITHUB_TOKEN }}
111135

136+
# Tooling is checked out unconditionally: the patcher (from CI_SCRIPTS_DIR)
137+
# is needed on the cache-miss path too, to post the warning notice.
112138
- name: Checkout local actions
113-
if: steps.master-run.outputs.found == 'true'
114139
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
115140
with:
116141
ref: ${{ github.workflow_sha }}
@@ -119,24 +144,47 @@ jobs:
119144
path: workflow-actions
120145

121146
- name: Get mathlib-ci
122-
if: steps.master-run.outputs.found == 'true'
123147
uses: ./workflow-actions/.github/actions/get-mathlib-ci
124148

125149
- name: Compute Lean-aware declarations diff
126150
if: steps.master-run.outputs.found == 'true'
151+
id: diff
127152
uses: ./ci-tools/.github/actions/decls-diff
128153
with:
129154
reference-decls-file: ${{ github.workspace }}/ref-artifact/decls.txt
130155
reference-imports-file: ${{ github.workspace }}/ref-artifact/imports.json
131156
new-decls-file: ${{ github.workspace }}/new-artifact/decls.txt
132157
new-imports-file: ${{ github.workspace }}/new-artifact/imports.json
133158
new-sha: ${{ steps.meta.outputs.new-sha }}
159+
with-heading: 'true'
160+
161+
- name: Patch PR summary comment (success)
162+
if: steps.master-run.outputs.found == 'true'
163+
env:
164+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
165+
REPO: ${{ github.repository }}
166+
PR_HEAD_SHA: ${{ steps.meta.outputs.new-sha }}
167+
PR_NUMBER: ${{ steps.pr.outputs.pr-number }}
168+
MODE: success
169+
OVERRIDE_FILE: ${{ steps.diff.outputs.decls-override-file }}
170+
run: python3 "$CI_SCRIPTS_DIR/pr_summary/updateDeclsDiffSection.py"
134171

135172
- name: Note cache miss
136173
if: steps.master-run.outputs.found != 'true'
174+
env:
175+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
176+
REPO: ${{ github.repository }}
177+
PR_HEAD_SHA: ${{ steps.meta.outputs.new-sha }}
178+
PR_NUMBER: ${{ steps.pr.outputs.pr-number }}
179+
MODE: warning
180+
DEFAULT_BRANCH: master
137181
run: |
182+
# Record the cache miss in the step summary first, so a later patcher
183+
# error (e.g. a transient GitHub failure) still leaves this run-local
184+
# note; then mark the comment's Lean region unavailable.
138185
{
139186
echo "## Declarations diff"
140187
echo
141188
echo "⚠️ The Mathlib cache for this PR's merge-base \`${{ steps.resolve.outputs.merge-base }}\` isn't on the server (typically because the merge-base is a bors-batch intermediate that CI never built). Merge \`master\` into this PR and push to retrigger the build."
142189
} >> "$GITHUB_STEP_SUMMARY"
190+
python3 "$CI_SCRIPTS_DIR/pr_summary/updateDeclsDiffSection.py"

Counterexamples/HomogeneousPrimeNotPrime.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Authors: Johan Commelin, Eric Wieser, Jujian Zhang
55
-/
66
import Mathlib.Algebra.Divisibility.Finite
77
import Mathlib.Algebra.Divisibility.Prod
8-
import Mathlib.Data.Fintype.Units
8+
import Mathlib.Algebra.GroupWithZero.Units.Fintype
99
import Mathlib.RingTheory.GradedAlgebra.Homogeneous.Ideal
1010

1111
/-!

Mathlib.lean

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ public import Mathlib.Algebra.GroupWithZero.TransferInstance
552552
public import Mathlib.Algebra.GroupWithZero.ULift
553553
public import Mathlib.Algebra.GroupWithZero.Units.Basic
554554
public import Mathlib.Algebra.GroupWithZero.Units.Equiv
555+
public import Mathlib.Algebra.GroupWithZero.Units.Fintype
555556
public import Mathlib.Algebra.GroupWithZero.Units.Lemmas
556557
public import Mathlib.Algebra.GroupWithZero.WithZero
557558
public import Mathlib.Algebra.HierarchyDesign
@@ -1485,6 +1486,7 @@ public import Mathlib.AlgebraicTopology.DoldKan.Notations
14851486
public import Mathlib.AlgebraicTopology.DoldKan.PInfty
14861487
public import Mathlib.AlgebraicTopology.DoldKan.Projections
14871488
public import Mathlib.AlgebraicTopology.DoldKan.SplitSimplicialObject
1489+
public import Mathlib.AlgebraicTopology.EilenbergSteenrod
14881490
public import Mathlib.AlgebraicTopology.ExtraDegeneracy
14891491
public import Mathlib.AlgebraicTopology.FundamentalGroupoid.Basic
14901492
public import Mathlib.AlgebraicTopology.FundamentalGroupoid.FundamentalGroup
@@ -1553,6 +1555,7 @@ public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.IsUnique
15531555
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.Op
15541556
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.Pairing
15551557
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.PairingCore
1558+
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.PushoutProduct
15561559
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.Rank
15571560
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RankNat
15581561
public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
@@ -1585,6 +1588,7 @@ public import Mathlib.AlgebraicTopology.SimplicialSet.Nerve
15851588
public import Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
15861589
public import Mathlib.AlgebraicTopology.SimplicialSet.NerveNondegenerate
15871590
public import Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplices
1591+
public import Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesColimit
15881592
public import Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
15891593
public import Mathlib.AlgebraicTopology.SimplicialSet.Nonempty
15901594
public import Mathlib.AlgebraicTopology.SimplicialSet.Nonsingular
@@ -2166,6 +2170,7 @@ public import Mathlib.Analysis.Normed.Lp.PiLp
21662170
public import Mathlib.Analysis.Normed.Lp.ProdLp
21672171
public import Mathlib.Analysis.Normed.Lp.SmoothApprox
21682172
public import Mathlib.Analysis.Normed.Lp.WithLp
2173+
public import Mathlib.Analysis.Normed.Lp.lpHolder
21692174
public import Mathlib.Analysis.Normed.Lp.lpSpace
21702175
public import Mathlib.Analysis.Normed.Module.Alternating.Basic
21712176
public import Mathlib.Analysis.Normed.Module.Alternating.Curry
@@ -3067,6 +3072,7 @@ public import Mathlib.CategoryTheory.Monoidal.Bimon_
30673072
public import Mathlib.CategoryTheory.Monoidal.Braided.Basic
30683073
public import Mathlib.CategoryTheory.Monoidal.Braided.Multifunctor
30693074
public import Mathlib.CategoryTheory.Monoidal.Braided.Opposite
3075+
public import Mathlib.CategoryTheory.Monoidal.Braided.PushoutObjObj
30703076
public import Mathlib.CategoryTheory.Monoidal.Braided.Reflection
30713077
public import Mathlib.CategoryTheory.Monoidal.Braided.Transport
30723078
public import Mathlib.CategoryTheory.Monoidal.Cartesian.Basic
@@ -3661,6 +3667,7 @@ public import Mathlib.Combinatorics.SimpleGraph.Regularity.Equitabilise
36613667
public import Mathlib.Combinatorics.SimpleGraph.Regularity.Increment
36623668
public import Mathlib.Combinatorics.SimpleGraph.Regularity.Lemma
36633669
public import Mathlib.Combinatorics.SimpleGraph.Regularity.Uniform
3670+
public import Mathlib.Combinatorics.SimpleGraph.Star
36643671
public import Mathlib.Combinatorics.SimpleGraph.StronglyRegular
36653672
public import Mathlib.Combinatorics.SimpleGraph.Subgraph
36663673
public import Mathlib.Combinatorics.SimpleGraph.Sum
@@ -3853,7 +3860,6 @@ public import Mathlib.Data.Fin.Tuple.Take
38533860
public import Mathlib.Data.Fin.VecNotation
38543861
public import Mathlib.Data.FinEnum
38553862
public import Mathlib.Data.FinEnum.Option
3856-
public import Mathlib.Data.Finite.Card
38573863
public import Mathlib.Data.Finite.Defs
38583864
public import Mathlib.Data.Finite.Perm
38593865
public import Mathlib.Data.Finite.Prod
@@ -3972,7 +3978,6 @@ public import Mathlib.Data.Fintype.Shrink
39723978
public import Mathlib.Data.Fintype.Sigma
39733979
public import Mathlib.Data.Fintype.Sort
39743980
public import Mathlib.Data.Fintype.Sum
3975-
public import Mathlib.Data.Fintype.Units
39763981
public import Mathlib.Data.Fintype.Vector
39773982
public import Mathlib.Data.Fintype.WithTopBot
39783983
public import Mathlib.Data.FunLike.Basic
@@ -4085,19 +4090,14 @@ public import Mathlib.Data.List.TakeWhile
40854090
public import Mathlib.Data.List.ToFinsupp
40864091
public import Mathlib.Data.List.Triplewise
40874092
public import Mathlib.Data.List.Zip
4088-
public import Mathlib.Data.Matrix.Action
40894093
public import Mathlib.Data.Matrix.Auto
40904094
public import Mathlib.Data.Matrix.Basic
40914095
public import Mathlib.Data.Matrix.Basis
4092-
public import Mathlib.Data.Matrix.Bilinear
40934096
public import Mathlib.Data.Matrix.Block
4094-
public import Mathlib.Data.Matrix.Cartan
40954097
public import Mathlib.Data.Matrix.ColumnRowPartitioned
40964098
public import Mathlib.Data.Matrix.Composition
40974099
public import Mathlib.Data.Matrix.DMatrix
40984100
public import Mathlib.Data.Matrix.Diagonal
4099-
public import Mathlib.Data.Matrix.DualNumber
4100-
public import Mathlib.Data.Matrix.Invertible
41014101
public import Mathlib.Data.Matrix.Mul
41024102
public import Mathlib.Data.Matrix.PEquiv
41034103
public import Mathlib.Data.Matrix.Reflection
@@ -4273,7 +4273,6 @@ public import Mathlib.Data.QPF.Multivariate.Constructions.Sigma
42734273
public import Mathlib.Data.QPF.Univariate.Basic
42744274
public import Mathlib.Data.Quot
42754275
public import Mathlib.Data.Rat.BigOperators
4276-
public import Mathlib.Data.Rat.Cardinal
42774276
public import Mathlib.Data.Rat.Cast.CharZero
42784277
public import Mathlib.Data.Rat.Cast.Defs
42794278
public import Mathlib.Data.Rat.Cast.Lemmas
@@ -4547,7 +4546,9 @@ public import Mathlib.Geometry.Convex.ConvexSpace.AffineSpace
45474546
public import Mathlib.Geometry.Convex.ConvexSpace.Defs
45484547
public import Mathlib.Geometry.Convex.ConvexSpace.Module
45494548
public import Mathlib.Geometry.Convex.ConvexSpace.Prod
4549+
public import Mathlib.Geometry.Convex.Hull
45504550
public import Mathlib.Geometry.Convex.Set
4551+
public import Mathlib.Geometry.Convex.Star
45514552
public import Mathlib.Geometry.Diffeology.Basic
45524553
public import Mathlib.Geometry.Euclidean.Altitude
45534554
public import Mathlib.Geometry.Euclidean.Angle.Bisector
@@ -5038,11 +5039,14 @@ public import Mathlib.LinearAlgebra.LinearIndependent.Defs
50385039
public import Mathlib.LinearAlgebra.LinearIndependent.Lemmas
50395040
public import Mathlib.LinearAlgebra.LinearPMap
50405041
public import Mathlib.LinearAlgebra.Matrix.AbsoluteValue
5042+
public import Mathlib.LinearAlgebra.Matrix.Action
50415043
public import Mathlib.LinearAlgebra.Matrix.Adjugate
50425044
public import Mathlib.LinearAlgebra.Matrix.BaseChange
50435045
public import Mathlib.LinearAlgebra.Matrix.Basis
5046+
public import Mathlib.LinearAlgebra.Matrix.Bilinear
50445047
public import Mathlib.LinearAlgebra.Matrix.BilinearForm
50455048
public import Mathlib.LinearAlgebra.Matrix.Block
5049+
public import Mathlib.LinearAlgebra.Matrix.Cartan
50465050
public import Mathlib.LinearAlgebra.Matrix.CharP
50475051
public import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
50485052
public import Mathlib.LinearAlgebra.Matrix.Charpoly.Coeff
@@ -5061,6 +5065,7 @@ public import Mathlib.LinearAlgebra.Matrix.Determinant.TotallyUnimodular
50615065
public import Mathlib.LinearAlgebra.Matrix.Diagonal
50625066
public import Mathlib.LinearAlgebra.Matrix.DotProduct
50635067
public import Mathlib.LinearAlgebra.Matrix.Dual
5068+
public import Mathlib.LinearAlgebra.Matrix.DualNumber
50645069
public import Mathlib.LinearAlgebra.Matrix.FiniteDimensional
50655070
public import Mathlib.LinearAlgebra.Matrix.FixedDetMatrices
50665071
public import Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Basic
@@ -5076,6 +5081,7 @@ public import Mathlib.LinearAlgebra.Matrix.HermitianFunctionalCalculus
50765081
public import Mathlib.LinearAlgebra.Matrix.Ideal
50775082
public import Mathlib.LinearAlgebra.Matrix.Integer
50785083
public import Mathlib.LinearAlgebra.Matrix.InvariantBasisNumber
5084+
public import Mathlib.LinearAlgebra.Matrix.Invertible
50795085
public import Mathlib.LinearAlgebra.Matrix.Irreducible.Defs
50805086
public import Mathlib.LinearAlgebra.Matrix.IsDiag
50815087
public import Mathlib.LinearAlgebra.Matrix.Kronecker
@@ -6185,6 +6191,7 @@ public import Mathlib.Probability.CondVar
61856191
public import Mathlib.Probability.ConditionalExpectation
61866192
public import Mathlib.Probability.ConditionalProbability
61876193
public import Mathlib.Probability.Decision.Risk.Basic
6194+
public import Mathlib.Probability.Decision.Risk.Countable
61886195
public import Mathlib.Probability.Decision.Risk.Defs
61896196
public import Mathlib.Probability.Density
61906197
public import Mathlib.Probability.Distributions.Bernoulli
@@ -7058,10 +7065,12 @@ public import Mathlib.SetTheory.Cardinal.Finite
70587065
public import Mathlib.SetTheory.Cardinal.Finsupp
70597066
public import Mathlib.SetTheory.Cardinal.Free
70607067
public import Mathlib.SetTheory.Cardinal.HasCardinalLT
7068+
public import Mathlib.SetTheory.Cardinal.NatCard
70617069
public import Mathlib.SetTheory.Cardinal.NatCount
70627070
public import Mathlib.SetTheory.Cardinal.Order
70637071
public import Mathlib.SetTheory.Cardinal.Ordinal
70647072
public import Mathlib.SetTheory.Cardinal.Pigeonhole
7073+
public import Mathlib.SetTheory.Cardinal.Rat
70657074
public import Mathlib.SetTheory.Cardinal.Regular
70667075
public import Mathlib.SetTheory.Cardinal.SchroederBernstein
70677076
public import Mathlib.SetTheory.Cardinal.Subfield
@@ -7854,6 +7863,7 @@ public import Mathlib.Topology.LocallyConstant.Algebra
78547863
public import Mathlib.Topology.LocallyConstant.Basic
78557864
public import Mathlib.Topology.LocallyFinite
78567865
public import Mathlib.Topology.LocallyFinsupp
7866+
public import Mathlib.Topology.LocallyFinsupp.Pushforward
78577867
public import Mathlib.Topology.Maps.Basic
78587868
public import Mathlib.Topology.Maps.OpenQuotient
78597869
public import Mathlib.Topology.Maps.Proper.Basic

0 commit comments

Comments
 (0)