Skip to content

Commit 0777acc

Browse files
Merge master into nightly-testing
2 parents 67244f5 + ee3a540 commit 0777acc

143 files changed

Lines changed: 1968 additions & 1163 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: 8c3d31d2beba80d86de30b6ccd373d2c3a76b26e
13+
default: ca86f6900d53e503e28ec1cfa2bff2f505474553
1414
path:
1515
description: Checkout destination path.
1616
required: false

Archive/Imo/Imo2002Q3.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import Mathlib.RingTheory.Polynomial.Content
1212
Find all pairs of positive integers $m,n ≥ 3$ for which there exist infinitely many
1313
positive integers $a$ such that $(a^m+a-1) / (a^n+a^2-1)$ is itself an integer.
1414
15-
# Solution
15+
## Solution
1616
1717
It suffices to find $(m,n)$ pairs for which $a^n+a^2-1 ∣ a^m+a-1$, where both sides are viewed as
1818
polynomials in $a$. This automatically gives $n ≤ m$, so we have

Archive/Imo/Imo2010Q5.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Determine if there exists a finite sequence of operations of the allowed types,
2525
that the five boxes $B_1, B_2, B_3, B_4, B_5$ become empty, while box $B_6$ contains exactly
2626
$2010^{2010^{2010}}$ coins.
2727
28-
# Solution
28+
## Solution
2929
3030
We follow the solution from https://web.evanchen.cc/exams/IMO-2010-notes.pdf.
3131

Mathlib.lean

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -694,9 +694,11 @@ public import Mathlib.Algebra.Jordan.Basic
694694
public import Mathlib.Algebra.Lie.Abelian
695695
public import Mathlib.Algebra.Lie.AdjointAction.Basic
696696
public import Mathlib.Algebra.Lie.AdjointAction.Derivation
697+
public import Mathlib.Algebra.Lie.AdjointAction.JordanChevalley
697698
public import Mathlib.Algebra.Lie.BaseChange
698699
public import Mathlib.Algebra.Lie.Basic
699700
public import Mathlib.Algebra.Lie.Basis
701+
public import Mathlib.Algebra.Lie.CartanCriterion
700702
public import Mathlib.Algebra.Lie.CartanExists
701703
public import Mathlib.Algebra.Lie.CartanMatrix
702704
public import Mathlib.Algebra.Lie.CartanSubalgebra
@@ -1568,6 +1570,7 @@ public import Mathlib.AlgebraicTopology.SimplicialSet.Subdivision
15681570
public import Mathlib.AlgebraicTopology.SimplicialSet.TopAdj
15691571
public import Mathlib.AlgebraicTopology.SingularHomology.Basic
15701572
public import Mathlib.AlgebraicTopology.SingularHomology.HomotopyInvariance
1573+
public import Mathlib.AlgebraicTopology.SingularHomology.HomotopyInvarianceTopCat
15711574
public import Mathlib.AlgebraicTopology.SingularSet
15721575
public import Mathlib.AlgebraicTopology.TopologicalSimplex
15731576
public import Mathlib.Analysis.AbsoluteValue.Equivalence
@@ -3514,9 +3517,10 @@ public import Mathlib.Combinatorics.SimpleGraph.Bipartite
35143517
public import Mathlib.Combinatorics.SimpleGraph.Cayley
35153518
public import Mathlib.Combinatorics.SimpleGraph.Circulant
35163519
public import Mathlib.Combinatorics.SimpleGraph.Clique
3520+
public import Mathlib.Combinatorics.SimpleGraph.Coloring.Constructions
3521+
public import Mathlib.Combinatorics.SimpleGraph.Coloring.EdgeLabeling
35173522
public import Mathlib.Combinatorics.SimpleGraph.Coloring.VertexColoring
35183523
public import Mathlib.Combinatorics.SimpleGraph.CompleteMultipartite
3519-
public import Mathlib.Combinatorics.SimpleGraph.ConcreteColorings
35203524
public import Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
35213525
public import Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity
35223526
public import Mathlib.Combinatorics.SimpleGraph.Connectivity.Finite
@@ -3528,7 +3532,6 @@ public import Mathlib.Combinatorics.SimpleGraph.DegreeSum
35283532
public import Mathlib.Combinatorics.SimpleGraph.DeleteEdges
35293533
public import Mathlib.Combinatorics.SimpleGraph.Density
35303534
public import Mathlib.Combinatorics.SimpleGraph.Diam
3531-
public import Mathlib.Combinatorics.SimpleGraph.EdgeLabeling
35323535
public import Mathlib.Combinatorics.SimpleGraph.Ends.Defs
35333536
public import Mathlib.Combinatorics.SimpleGraph.Ends.Properties
35343537
public import Mathlib.Combinatorics.SimpleGraph.Extremal.Basic
@@ -3595,11 +3598,13 @@ public import Mathlib.Computability.Language
35953598
public import Mathlib.Computability.MyhillNerode
35963599
public import Mathlib.Computability.NFA
35973600
public import Mathlib.Computability.Partrec
3601+
public import Mathlib.Computability.PartrecBasis
35983602
public import Mathlib.Computability.PartrecCode
35993603
public import Mathlib.Computability.PostTuringMachine
36003604
public import Mathlib.Computability.Primrec
36013605
public import Mathlib.Computability.Primrec.Basic
36023606
public import Mathlib.Computability.Primrec.List
3607+
public import Mathlib.Computability.RE
36033608
public import Mathlib.Computability.RecursiveIn
36043609
public import Mathlib.Computability.Reduce
36053610
public import Mathlib.Computability.RegularExpressions
@@ -7084,8 +7089,8 @@ public import Mathlib.Tactic.Linarith.Parsing
70847089
public import Mathlib.Tactic.Linarith.Preprocessing
70857090
public import Mathlib.Tactic.Linarith.Verification
70867091
public import Mathlib.Tactic.LinearCombination
7087-
public import Mathlib.Tactic.LinearCombination'
70887092
public import Mathlib.Tactic.LinearCombination.Lemmas
7093+
public import Mathlib.Tactic.LinearCombinationPrime
70897094
public import Mathlib.Tactic.Linter
70907095
public import Mathlib.Tactic.Linter.CommandRanges
70917096
public import Mathlib.Tactic.Linter.CommandStart
@@ -7857,6 +7862,7 @@ public import Mathlib.Topology.Sheaves.Skyscraper
78577862
public import Mathlib.Topology.Sheaves.Stalks
78587863
public import Mathlib.Topology.ShrinkingLemma
78597864
public import Mathlib.Topology.Sion
7865+
public import Mathlib.Topology.SmallInductiveDimension
78607866
public import Mathlib.Topology.Sober
78617867
public import Mathlib.Topology.Specialization
78627868
public import Mathlib.Topology.Spectral.Basic

Mathlib/Algebra/Algebra/Basic.lean

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ end SubsemiringAlgebra
138138
def algebraMapSubmonoid (S : Type*) [Semiring S] [Algebra R S] (M : Submonoid R) : Submonoid S :=
139139
M.map (algebraMap R S)
140140

141-
theorem mem_algebraMapSubmonoid_of_mem {S : Type*} [Semiring S] [Algebra R S] {M : Submonoid R}
141+
variable {S : Type*} [Semiring S] [Algebra R S]
142+
143+
theorem mem_algebraMapSubmonoid_of_mem {M : Submonoid R}
142144
(x : M) : algebraMap R S x ∈ algebraMapSubmonoid S M :=
143145
Set.mem_image_of_mem (algebraMap R S) x.2
144146

@@ -147,10 +149,15 @@ lemma algebraMapSubmonoid_self (M : Submonoid R) : Algebra.algebraMapSubmonoid R
147149
Submonoid.map_id M
148150

149151
@[simp]
150-
lemma algebraMapSubmonoid_powers {S : Type*} [Semiring S] [Algebra R S] (r : R) :
152+
lemma algebraMapSubmonoid_powers (r : R) :
151153
Algebra.algebraMapSubmonoid S (.powers r) = Submonoid.powers (algebraMap R S r) := by
152154
simp [Algebra.algebraMapSubmonoid]
153155

156+
lemma algebraMapSubmonoid_isUnit_le :
157+
algebraMapSubmonoid S (IsUnit.submonoid R) ≤ IsUnit.submonoid S := by
158+
rintro x ⟨y, hy, rfl⟩
159+
exact hy.map _
160+
154161
end Semiring
155162

156163
section CommSemiring

Mathlib/Algebra/Category/AlgCat/Limits.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ instance limitAlgebra :
6767
Algebra R (Types.Small.limitCone (F ⋙ forget (AlgCat.{w} R))).pt :=
6868
inferInstanceAs <| Algebra R (Shrink (sectionsSubalgebra F))
6969

70-
#adaptation_note /-- After nightly-2026-02-23 we need this to avoid timeouts. -/
7170
set_option backward.isDefEq.respectTransparency false in
7271
/-- `limit.π (F ⋙ forget (AlgCat R)) j` as an `AlgHom`. -/
7372
def limitπAlgHom (j) :

Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@ def kerHomogeneousCochainsZeroEquiv
199199
continuous_invFun := continuous_induced_rng.mpr
200200
(continuous_induced_rng.mpr ((ContinuousLinearMap.const R G).cont.comp continuous_subtype_val))
201201

202-
#adaptation_note /-- After nightly-2026-02-23 we need this to avoid timeouts. -/
203202
set_option backward.isDefEq.respectTransparency false in
204203
open ShortComplex HomologyData in
205204
/-- `H⁰_cont(G, X) ≅ Xᴳ`. -/

Mathlib/Algebra/Category/ModuleCat/Basic.lean

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -509,26 +509,10 @@ def smulNatTrans : R →+* End (forget₂ (ModuleCat R) AddCommGrpCat) where
509509
toFun r :=
510510
{ app := fun M => M.smul r
511511
naturality := fun _ _ _ => smul_naturality _ r }
512-
map_one' := NatTrans.ext (by
513-
#adaptation_note /-- Prior to https://github.com/leanprover/lean4/pull/12244
514-
this was just `cat_disch`. -/
515-
simp +instances only [forget₂_obj, map_one, End.one_def]
516-
cat_disch)
517-
map_zero' := NatTrans.ext (by
518-
#adaptation_note /-- Prior to https://github.com/leanprover/lean4/pull/12244
519-
this was just `cat_disch`. -/
520-
simp +instances only [forget₂_obj, map_zero]
521-
cat_disch)
522-
map_mul' _ _ := NatTrans.ext (by
523-
#adaptation_note /-- Prior to https://github.com/leanprover/lean4/pull/12244
524-
this was just `cat_disch`. -/
525-
simp +instances only [forget₂_obj, map_mul, End.mul_def]
526-
cat_disch)
527-
map_add' _ _ := NatTrans.ext (by
528-
#adaptation_note /-- Prior to https://github.com/leanprover/lean4/pull/12244
529-
this was just `cat_disch`. -/
530-
simp +instances only [forget₂_obj, map_add]
531-
cat_disch)
512+
map_one' := by cat_disch
513+
map_zero' := by cat_disch
514+
map_mul' _ _ := by cat_disch
515+
map_add' _ _ := by cat_disch
532516

533517
/-- Given `A : AddCommGrpCat` and a ring morphism `R →+* End A`, this is a type synonym
534518
for `A`, on which we shall define a structure of `R`-module. -/

Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,6 @@ def unit : 𝟭 (ModuleCat R) ⟶ extendScalars f ⋙ restrictScalars.{max v u
823823
app _ := Unit.map.{u₁, u₂, v} f
824824

825825
set_option backward.isDefEq.respectTransparency false in
826-
set_option backward.proofsInPublic true in
827826
/-- For any `S`-module Y, there is a natural `R`-linear map from `S ⨂ Y` to `Y` by
828827
`s ⊗ y ↦ s • y` -/
829828
@[simps! hom_apply]
@@ -832,7 +831,7 @@ def Counit.map {Y : ModuleCat S} : (restrictScalars f ⋙ extendScalars f).obj Y
832831
{ toFun :=
833832
letI m1 : Module R S := Module.compHom S f
834833
letI m2 : Module R Y := Module.compHom Y f
835-
TensorProduct.lift
834+
TensorProduct.lift (σ₁₂ := .id R)
836835
{ toFun := fun s : S =>
837836
{ toFun := fun y : Y => s • y,
838837
map_add' := smul_add _

Mathlib/Algebra/Category/ModuleCat/Kernels.lean

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ def kernelCone : KernelFork f :=
3737
def kernelIsLimit : IsLimit (kernelCone f) :=
3838
Fork.IsLimit.mk _
3939
(fun s => ofHom <|
40-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation on LinearMap.ker
41-
LinearMap.codRestrict (LinearMap.ker f.hom) (Fork.ι s).hom fun c =>
40+
LinearMap.codRestrict f.hom.ker (Fork.ι s).hom fun c =>
4241
LinearMap.mem_ker.2 <| by simp [← ConcreteCategory.comp_apply])
4342
(fun _ => hom_ext <| LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
4443
hom_ext <| LinearMap.ext fun x => Subtype.ext_iff.2 (by simp [← h]; rfl)
@@ -64,11 +63,9 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
6463
(fun s => ofHom <| (LinearMap.range f.hom).liftQ (Cofork.π s).hom <|
6564
LinearMap.range_le_ker_iff.2 <| ModuleCat.hom_ext_iff.mp <| CokernelCofork.condition s)
6665
(fun s => hom_ext <| (LinearMap.range f.hom).liftQ_mkQ (Cofork.π s).hom _) fun s m h => by
67-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
68-
haveI : Epi (ofHom (LinearMap.range f.hom).mkQ) :=
66+
haveI : Epi (ofHom f.hom.range.mkQ) :=
6967
(epi_iff_range_eq_top _).mpr (Submodule.range_mkQ _)
70-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
71-
apply (cancel_epi (ofHom (LinearMap.range f.hom).mkQ)).1
68+
apply (cancel_epi (ofHom f.hom.range.mkQ)).1
7269
exact h
7370

7471
/-- Construct an `IsColimit` structure of cokernels given `Function.Exact`. -/
@@ -105,29 +102,24 @@ variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
105102
agrees with the usual module-theoretical kernel.
106103
-/
107104
noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
108-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
109-
kernel f ≅ ModuleCat.of R (LinearMap.ker f.hom) :=
105+
kernel f ≅ ModuleCat.of R f.hom.ker :=
110106
limit.isoLimitCone ⟨_, kernelIsLimit f⟩
111107

112108
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
113109
@[simp, elementwise]
114-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
115-
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f =
116-
ofHom (LinearMap.ker f.hom).subtype :=
110+
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = ofHom f.hom.ker.subtype :=
117111
limit.isoLimitCone_inv_π _ _
118112

119113
@[simp, elementwise]
120114
theorem kernelIsoKer_hom_ker_subtype :
121-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
122-
(kernelIsoKer f).hom ≫ ofHom (LinearMap.ker f.hom).subtype = kernel.ι f :=
115+
(kernelIsoKer f).hom ≫ ofHom f.hom.ker.subtype = kernel.ι f :=
123116
IsLimit.conePointUniqueUpToIso_inv_comp _ (limit.isLimit _) WalkingParallelPair.zero
124117

125118
/-- The categorical cokernel of a morphism in `ModuleCat`
126119
agrees with the usual module-theoretical quotient.
127120
-/
128121
noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H) :
129-
-- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation
130-
cokernel f ≅ ModuleCat.of R (H ⧸ LinearMap.range f.hom) :=
122+
cokernel f ≅ ModuleCat.of R (H ⧸ f.hom.range) :=
131123
colimit.isoColimitCocone ⟨_, cokernelIsColimit f⟩
132124

133125
-- We now show this isomorphism commutes with the projection of target to the cokernel.

0 commit comments

Comments
 (0)