Skip to content

Commit a4ae26a

Browse files
committed
Merge remote-tracking branch 'origin/master' into bump/v4.31.0
2 parents 78924d5 + 1b6d405 commit a4ae26a

100 files changed

Lines changed: 2092 additions & 434 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/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/Homology/HomologySequenceLemmas.lean

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ for `φ.τ₁` and `φ.τ₂` shall also be obtained (TODO).
3232

3333
open CategoryTheory ComposableArrows Abelian
3434

35-
namespace HomologicalComplex
36-
3735
variable {C ι : Type*} [Category* C] [Abelian C] {c : ComplexShape ι}
3836
{S S₁ S₂ : ShortComplex (HomologicalComplex C c)} (φ : S₁ ⟶ S₂)
3937
(hS₁ : S₁.ShortExact) (hS₂ : S₂.ShortExact)
4038

39+
namespace HomologicalComplex
40+
4141
namespace HomologySequence
4242

4343
set_option backward.defeqAttrib.useBackward true in
@@ -179,3 +179,62 @@ lemma quasiIso_τ₃ (h₁ : QuasiIso φ.τ₁) (h₂ : QuasiIso φ.τ₂) :
179179
end HomologySequence
180180

181181
end HomologicalComplex
182+
183+
namespace CategoryTheory.ShortComplex.ShortExact
184+
185+
open HomologicalComplex Limits
186+
187+
lemma exactAt_X₁ (hS : S.ShortExact) (j : ι)
188+
(h₁ : Mono (HomologicalComplex.homologyMap S.g j) := by infer_instance)
189+
(h₂ : ∀ (i : ι), c.Rel i j → Epi (HomologicalComplex.homologyMap S.g i) := by infer_instance) :
190+
S.X₁.ExactAt j := by
191+
rw [exactAt_iff_isZero_homology]
192+
by_cases! hj : ∃ i, c.Rel i j
193+
· obtain ⟨i, hij⟩ := hj
194+
have := h₂ i hij
195+
apply (hS.homology_exact₁ i j hij).isZero_X₂
196+
· simp [← cancel_epi (HomologicalComplex.homologyMap S.g i)]
197+
· simp [← cancel_mono (HomologicalComplex.homologyMap S.g j),
198+
← HomologicalComplex.homologyMap_comp]
199+
· have := hS.mono_f
200+
have := HomologicalComplex.mono_homologyMap_of_mono_of_not_rel S.f j hj
201+
rw [IsZero.iff_id_eq_zero,
202+
← cancel_mono (HomologicalComplex.homologyMap S.f j),
203+
← cancel_mono (HomologicalComplex.homologyMap S.g j)]
204+
simp [← HomologicalComplex.homologyMap_comp]
205+
206+
lemma exactAt_X₂ (hS : S.ShortExact) (i : ι) (h₁ : S.X₁.ExactAt i) (h₃ : S.X₃.ExactAt i) :
207+
S.X₂.ExactAt i := by
208+
rw [exactAt_iff_isZero_homology] at h₁ h₃ ⊢
209+
exact (hS.homology_exact₂ i).isZero_X₂ (h₁.eq_of_src _ _) (h₃.eq_of_tgt _ _)
210+
211+
lemma exactAt_X₃ (hS : S.ShortExact) (i : ι)
212+
(h₁ : Epi (HomologicalComplex.homologyMap S.f i) := by infer_instance)
213+
(h₂ : ∀ (j : ι), c.Rel i j → Mono (HomologicalComplex.homologyMap S.f j) := by infer_instance) :
214+
S.X₃.ExactAt i := by
215+
rw [exactAt_iff_isZero_homology]
216+
by_cases! hi : ∃ j, c.Rel i j
217+
· obtain ⟨j, hij⟩ := hi
218+
have := h₂ j hij
219+
apply (hS.homology_exact₃ i j hij).isZero_X₂
220+
· simp [← cancel_epi (HomologicalComplex.homologyMap S.f i),
221+
← HomologicalComplex.homologyMap_comp]
222+
· simp [← cancel_mono (HomologicalComplex.homologyMap S.f j)]
223+
· have := hS.epi_g
224+
have := HomologicalComplex.epi_homologyMap_of_epi_of_not_rel S.g i hi
225+
rw [IsZero.iff_id_eq_zero,
226+
← cancel_epi (HomologicalComplex.homologyMap S.g i),
227+
← cancel_epi (HomologicalComplex.homologyMap S.f i)]
228+
simp [← HomologicalComplex.homologyMap_comp]
229+
230+
lemma acyclic_X₁ (hS : S.ShortExact) (hg : _root_.QuasiIso S.g) : S.X₁.Acyclic :=
231+
fun j ↦ hS.exactAt_X₁ j
232+
233+
lemma acyclic_X₂ (hS : S.ShortExact) (h₁ : S.X₁.Acyclic) (h₃ : S.X₃.Acyclic) :
234+
S.X₂.Acyclic :=
235+
fun i ↦ hS.exactAt_X₂ i (h₁ _) (h₃ _)
236+
237+
lemma acyclic_X₃ (hS : S.ShortExact) (h : _root_.QuasiIso S.f) : S.X₃.Acyclic :=
238+
fun i ↦ hS.exactAt_X₃ i
239+
240+
end CategoryTheory.ShortComplex.ShortExact

0 commit comments

Comments
 (0)