Skip to content

Commit 8fe031f

Browse files
authored
Merge branch 'master' into club
2 parents 9381344 + 1b6d405 commit 8fe031f

134 files changed

Lines changed: 2462 additions & 533 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: 99a8d566da03485d4e08fa0a85e38200f2d4e964
13+
default: 455d84939bba1fbe157ff2c1469a0c258372d05c
1414
path:
1515
description: Checkout destination path.
1616
required: false

Mathlib.lean

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,7 @@ public import Mathlib.Algebra.Homology.HomotopyCategory.KInjective
635635
public import Mathlib.Algebra.Homology.HomotopyCategory.KProjective
636636
public import Mathlib.Algebra.Homology.HomotopyCategory.MappingCocone
637637
public import Mathlib.Algebra.Homology.HomotopyCategory.MappingCone
638+
public import Mathlib.Algebra.Homology.HomotopyCategory.Plus
638639
public import Mathlib.Algebra.Homology.HomotopyCategory.Pretriangulated
639640
public import Mathlib.Algebra.Homology.HomotopyCategory.Shift
640641
public import Mathlib.Algebra.Homology.HomotopyCategory.ShiftSequence
@@ -654,6 +655,7 @@ public import Mathlib.Algebra.Homology.Localization
654655
public import Mathlib.Algebra.Homology.ModelCategory.Lifting
655656
public import Mathlib.Algebra.Homology.Monoidal
656657
public import Mathlib.Algebra.Homology.Opposite
658+
public import Mathlib.Algebra.Homology.Precylinder
657659
public import Mathlib.Algebra.Homology.QuasiIso
658660
public import Mathlib.Algebra.Homology.Refinements
659661
public import Mathlib.Algebra.Homology.ShortComplex.Ab
@@ -812,6 +814,7 @@ public import Mathlib.Algebra.Module.SnakeLemma
812814
public import Mathlib.Algebra.Module.SpanRank
813815
public import Mathlib.Algebra.Module.SpanRankOperations
814816
public import Mathlib.Algebra.Module.StablyFree.Basic
817+
public import Mathlib.Algebra.Module.StablyFree.FreeOfInvertible
815818
public import Mathlib.Algebra.Module.Submodule.Basic
816819
public import Mathlib.Algebra.Module.Submodule.Bilinear
817820
public import Mathlib.Algebra.Module.Submodule.Defs
@@ -2972,6 +2975,7 @@ public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.Basic
29722975
public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.Constructor
29732976
public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.Derives
29742977
public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.OfFunctorialResolutions
2978+
public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.OfLocalizedEquivalences
29752979
public import Mathlib.CategoryTheory.Localization.DerivabilityStructure.PointwiseRightDerived
29762980
public import Mathlib.CategoryTheory.Localization.Equivalence
29772981
public import Mathlib.CategoryTheory.Localization.FiniteProducts
@@ -4495,6 +4499,8 @@ public import Mathlib.Geometry.Convex.Cone.DualFinite
44954499
public import Mathlib.Geometry.Convex.Cone.Pointed
44964500
public import Mathlib.Geometry.Convex.Cone.Simplicial
44974501
public import Mathlib.Geometry.Convex.Cone.TensorProduct
4502+
public import Mathlib.Geometry.Convex.ConvexSpace.AffineSpace
4503+
public import Mathlib.Geometry.Convex.ConvexSpace.Defs
44984504
public import Mathlib.Geometry.Diffeology.Basic
44994505
public import Mathlib.Geometry.Euclidean.Altitude
45004506
public import Mathlib.Geometry.Euclidean.Angle.Bisector
@@ -4895,8 +4901,6 @@ public import Mathlib.LinearAlgebra.Complex.FiniteDimensional
48954901
public import Mathlib.LinearAlgebra.Complex.Module
48964902
public import Mathlib.LinearAlgebra.Complex.Orientation
48974903
public import Mathlib.LinearAlgebra.Contraction
4898-
public import Mathlib.LinearAlgebra.ConvexSpace
4899-
public import Mathlib.LinearAlgebra.ConvexSpace.AffineSpace
49004904
public import Mathlib.LinearAlgebra.Countable
49014905
public import Mathlib.LinearAlgebra.CrossProduct
49024906
public import Mathlib.LinearAlgebra.DFinsupp
@@ -5631,7 +5635,6 @@ public import Mathlib.NumberTheory.Harmonic.Int
56315635
public import Mathlib.NumberTheory.Harmonic.ZetaAsymp
56325636
public import Mathlib.NumberTheory.Height.Basic
56335637
public import Mathlib.NumberTheory.Height.MvPolynomial
5634-
public import Mathlib.NumberTheory.Height.Northcott
56355638
public import Mathlib.NumberTheory.Height.NumberField
56365639
public import Mathlib.NumberTheory.Height.Projectivization
56375640
public import Mathlib.NumberTheory.JacobiSum.Basic
@@ -6038,6 +6041,7 @@ public import Mathlib.Order.Monotone.Odd
60386041
public import Mathlib.Order.Monotone.Union
60396042
public import Mathlib.Order.Nat
60406043
public import Mathlib.Order.NonemptyFiniteChains
6044+
public import Mathlib.Order.Northcott
60416045
public import Mathlib.Order.Notation
60426046
public import Mathlib.Order.Nucleus
60436047
public import Mathlib.Order.OmegaCompletePartialOrder

Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -986,6 +986,18 @@ theorem coe_iSup_of_directed [Nonempty ι] {S : ι → NonUnitalSubalgebra R A}
986986
(iSup_le fun i ↦ le_iSup (fun i ↦ (S i : Set A)) i) (Set.iUnion_subset fun _ ↦ le_iSup S _)
987987
this.symm ▸ rfl
988988

989+
theorem isMulCommutative_iSup {ι : Sort*} [Nonempty ι] {S : ι → NonUnitalSubalgebra R A}
990+
[hS : ∀ i, IsMulCommutative (S i)] (dir : Directed (· ≤ ·) S) :
991+
IsMulCommutative (⨆ i, S i : NonUnitalSubalgebra R A) := by
992+
have := NonUnitalSubsemiring.isMulCommutative_iSup dir
993+
simpa [isMulCommutative_iff, ← SetLike.mem_coe, coe_iSup_of_directed dir,
994+
NonUnitalSubsemiring.coe_iSup_of_directed dir]
995+
996+
instance instIsMulCommutative_iSup {ι : Type*} [Nonempty ι] [Preorder ι] [IsDirectedOrder ι]
997+
{S : ι →o NonUnitalSubalgebra R A} [hS : ∀ i, IsMulCommutative (S i)] :
998+
IsMulCommutative (⨆ i, S i : NonUnitalSubalgebra R A) :=
999+
isMulCommutative_iSup S.monotone.directed_le
1000+
9891001
/-- Define an algebra homomorphism on a directed supremum of non-unital subalgebras by defining
9901002
it on each non-unital subalgebra, and proving that it agrees on the intersection of
9911003
non-unital subalgebras. -/

Mathlib/Algebra/Algebra/Subalgebra/Directed.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ theorem coe_iSup_of_directed (dir : Directed (· ≤ ·) K) : ↑(iSup K) = ⋃
3838
(iSup_le fun i ↦ le_iSup (fun i ↦ (K i : Set A)) i) (Set.iUnion_subset fun _ ↦ le_iSup K _)
3939
simp [this, s]
4040

41+
theorem isMulCommutative_iSup {S : ι → Subalgebra R A}
42+
[hS : ∀ i, IsMulCommutative (S i)] (dir : Directed (· ≤ ·) S) :
43+
IsMulCommutative (⨆ i, S i : Subalgebra R A) := by
44+
simpa [isMulCommutative_iff, ← SetLike.mem_coe, coe_iSup_of_directed dir,
45+
Subsemiring.coe_iSup_of_directed dir] using Subsemiring.isMulCommutative_iSup dir
46+
47+
instance instIsMulCommutative_iSup [Preorder ι] [IsDirectedOrder ι]
48+
{S : ι →o Subalgebra R A} [hS : ∀ i, IsMulCommutative (S i)] :
49+
IsMulCommutative (⨆ i, S i : Subalgebra R A) :=
50+
isMulCommutative_iSup S.monotone.directed_le
51+
4152
variable (K)
4253

4354
/-- Define an algebra homomorphism on a directed supremum of subalgebras by defining

Mathlib/Algebra/Algebra/Tower.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ def lsmul : A →ₐ[R] Module.End B M where
7676
@[simp]
7777
theorem lsmul_coe (a : A) : (lsmul R B M a : M → M) = (a • ·) := rfl
7878

79+
lemma lsmul_apply (a : A) (m : M) : lsmul R B M a m = a • m := rfl
80+
81+
lemma lsmul_eq_smul_one (a : A) : lsmul R R M a = a • 1 := rfl
82+
7983
end Algebra
8084

8185
namespace IsScalarTower

Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module
77

88
public import Mathlib.Algebra.Category.Grp.Basic
99
public import Mathlib.CategoryTheory.Yoneda
10+
public import Mathlib.Algebra.Category.Grp.Preadditive
1011

1112
/-!
1213
# The forget functor is corepresentable
@@ -79,3 +80,14 @@ instance AddGrpCat.forget_isCorepresentable :
7980
instance AddCommGrpCat.forget_isCorepresentable :
8081
(forget AddCommGrpCat.{u}).IsCorepresentable :=
8182
Functor.IsCorepresentable.mk' AddCommGrpCat.coyonedaObjIsoForget
83+
84+
theorem uliftZMultiplesHom_apply_add (G : Type u) [AddCommGroup G] (x y : G) :
85+
uliftZMultiplesHom G (x + y) = uliftZMultiplesHom G x + uliftZMultiplesHom G y := by
86+
ext
87+
simp_all only [uliftZMultiplesHom_apply_apply, smul_add, AddMonoidHom.add_apply]
88+
89+
/-- The additive equivalence `(ℤ ⟶ G) ≃+ G` -/
90+
@[simps!]
91+
def AddCommGrpCat.uliftZMultiplesAddEquiv (G : AddCommGrpCat) : (of (ULift ℤ) ⟶ G) ≃+ G :=
92+
AddCommGrpCat.homAddEquiv.trans
93+
(AddEquiv.mk' (uliftZMultiplesHom G) (uliftZMultiplesHom_apply_add G)).symm

Mathlib/Algebra/GCDMonoid/FinsetLemmas.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public import Mathlib.Algebra.GCDMonoid.Finset
99
public import Mathlib.Algebra.GCDMonoid.Nat
1010
public import Mathlib.Data.Nat.GCD.Basic
1111
public import Mathlib.RingTheory.Coprime.Lemmas
12+
public import Mathlib.Data.Nat.Factorization.Basic
1213

1314
/-!
1415
# `Finset.lcm` lemmas
@@ -36,6 +37,14 @@ theorem lcm_eq_prod {s : Finset ι} {f : ι → ℕ} (h : Set.Pairwise s <| Nat.
3637
rw [show Nat.Coprime = IsRelPrime by ext; exact Nat.coprime_iff_isRelPrime] at h
3738
exact associated_lcm_prod h |>.eq_of_normalized (normalize_eq _) (normalize_eq _)
3839

40+
/-- An analogue of `Nat.factorization_lcm` for `Finset.lcm`. -/
41+
theorem factorization_lcm {f : ι → ℕ} {s : Finset ι} (hf : ∀ k ∈ s, f k ≠ 0) (p : ℕ) :
42+
(s.lcm f).factorization p = s.sup fun a ↦ (f a).factorization p := by
43+
classical
44+
induction s using Finset.induction with
45+
| empty => simp
46+
| insert _ _ _ _ => simp_all [lcm_eq_nat_lcm, Nat.factorization_lcm]
47+
3948
namespace Rat
4049

4150
theorem den_sum_dvd_lcm_den {ι : Type*} (s : Finset ι) (f : ι → ℚ) :

Mathlib/Algebra/Group/Subgroup/Lattice.lean

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,23 @@ theorem mem_sSup_of_directedOn {K : Set (Subgroup G)} (Kne : K.Nonempty) (hK : D
580580
haveI : Nonempty K := Kne.to_subtype
581581
simp only [sSup_eq_iSup', mem_iSup_of_directed hK.directed_val, SetCoe.exists, exists_prop]
582582

583+
@[to_additive]
584+
theorem isMulCommutative_iSup {ι : Sort*} [Nonempty ι]
585+
{S : ι → Subgroup G} [hS : ∀ i, IsMulCommutative (S i)]
586+
(dir : Directed (· ≤ ·) S) : IsMulCommutative (⨆ i, S i : Subgroup G) := by
587+
refine .of_setLike_mul_comm ?_
588+
simp_rw [← SetLike.mem_coe, coe_iSup_of_directed dir, Set.mem_iUnion,
589+
SetLike.mem_coe, forall_exists_index]
590+
intro a i ha b j hb
591+
obtain ⟨k, hik, hjk⟩ := dir i j
592+
exact setLike_mul_comm (hik ha) (hjk hb)
593+
594+
@[to_additive]
595+
instance instIsMulCommutative_iSup {ι : Type*} [Nonempty ι] [Preorder ι] [IsDirectedOrder ι]
596+
{S : ι →o Subgroup G} [hS : ∀ i, IsMulCommutative (S i)] :
597+
IsMulCommutative (⨆ i, S i : Subgroup G) :=
598+
isMulCommutative_iSup S.monotone.directed_le
599+
583600
variable {C : Type*} [CommGroup C] {s t : Subgroup C} {x : C}
584601

585602
@[to_additive]

Mathlib/Algebra/Group/Submonoid/Membership.lean

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,23 @@ theorem coe_sSup_of_directedOn {S : Set (Submonoid M)} (Sne : S.Nonempty)
9696
(hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set M) = ⋃ s ∈ S, ↑s :=
9797
Set.ext fun x => by simp [mem_sSup_of_directedOn Sne hS]
9898

99+
@[to_additive]
100+
theorem isMulCommutative_iSup {ι : Sort*} [Nonempty ι]
101+
{S : ι → Submonoid M} [hS : ∀ i, IsMulCommutative (S i)]
102+
(dir : Directed (· ≤ ·) S) : IsMulCommutative (⨆ i, S i : Submonoid M) := by
103+
refine .of_setLike_mul_comm ?_
104+
simp_rw [← SetLike.mem_coe, coe_iSup_of_directed dir, Set.mem_iUnion,
105+
SetLike.mem_coe, forall_exists_index]
106+
intro a i ha b j hb
107+
obtain ⟨k, hik, hjk⟩ := dir i j
108+
exact setLike_mul_comm (hik ha) (hjk hb)
109+
110+
@[to_additive]
111+
instance instIsMulCommutative_iSup {ι : Type*} [Nonempty ι] [Preorder ι]
112+
[IsDirectedOrder ι] {S : ι →o Submonoid M} [hS : ∀ i, IsMulCommutative (S i)] :
113+
IsMulCommutative (⨆ i, S i : Submonoid M) :=
114+
Submonoid.isMulCommutative_iSup S.monotone.directed_le
115+
99116
@[to_additive]
100117
theorem mem_sup_left {S T : Submonoid M} : ∀ {x : M}, x ∈ S → x ∈ S ⊔ T := by
101118
rw [← SetLike.le_def]

Mathlib/Algebra/Group/Subsemigroup/Membership.lean

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,25 @@ theorem coe_iSup_of_directed {S : ι → Subsemigroup M} (hS : Directed (· ≤
7979
((⨆ i, S i : Subsemigroup M) : Set M) = ⋃ i, S i :=
8080
Set.ext fun x => by simp [mem_iSup_of_directed hS]
8181

82+
/-- The supremum of a directed family of commutative subsemigroups is commutative. -/
83+
@[to_additive]
84+
theorem isMulCommutative_iSup {S : ι → Subsemigroup M}
85+
[hS : ∀ i, IsMulCommutative (S i)] (dir : Directed (· ≤ ·) S) :
86+
IsMulCommutative (⨆ i, S i : Subsemigroup M) := by
87+
refine .of_setLike_mul_comm ?_
88+
simp_rw [← SetLike.mem_coe, coe_iSup_of_directed dir, Set.mem_iUnion,
89+
SetLike.mem_coe, forall_exists_index]
90+
intro a i ha b j hb
91+
obtain ⟨k, hik, hjk⟩ := dir i j
92+
exact setLike_mul_comm (hik ha) (hjk hb)
93+
94+
/-- The supremum of a directed family of commutative subsemigroups is commutative. -/
95+
@[to_additive]
96+
instance instIsMulCommutative_iSup {ι : Type*} [Preorder ι] [IsDirectedOrder ι]
97+
(S : ι →o Subsemigroup M) [hS : ∀ i, IsMulCommutative (S i)] :
98+
IsMulCommutative (⨆ i, S i : Subsemigroup M) :=
99+
isMulCommutative_iSup S.monotone.directed_le
100+
82101
@[to_additive]
83102
theorem mem_sSup_of_directed_on {S : Set (Subsemigroup M)} (hS : DirectedOn (· ≤ ·) S) {x : M} :
84103
x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s := by

0 commit comments

Comments
 (0)