Skip to content

Commit 443f114

Browse files
author
leanprover-community-mathlib4-bot
committed
2 parents d045c18 + 1de5efc commit 443f114

File tree

62 files changed

+2735
-1364
lines changed

Some content is hidden

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

62 files changed

+2735
-1364
lines changed

.github/build.in.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ jobs:
356356
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
357357

358358
- id: PR
359-
uses: 8BitJonny/gh-get-current-pr@3.0.0
359+
uses: 8BitJonny/gh-get-current-pr@08e737c57a3a4eb24cec6487664b243b77eb5e36 # 3.0.0
360360
# TODO: this may not work properly if the same commit is pushed to multiple branches:
361361
# https://github.com/8BitJonny/gh-get-current-pr/issues/8
362362
with:

.github/workflows/bors.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ jobs:
366366
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
367367

368368
- id: PR
369-
uses: 8BitJonny/gh-get-current-pr@3.0.0
369+
uses: 8BitJonny/gh-get-current-pr@08e737c57a3a4eb24cec6487664b243b77eb5e36 # 3.0.0
370370
# TODO: this may not work properly if the same commit is pushed to multiple branches:
371371
# https://github.com/8BitJonny/gh-get-current-pr/issues/8
372372
with:

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ jobs:
373373
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
374374

375375
- id: PR
376-
uses: 8BitJonny/gh-get-current-pr@3.0.0
376+
uses: 8BitJonny/gh-get-current-pr@08e737c57a3a4eb24cec6487664b243b77eb5e36 # 3.0.0
377377
# TODO: this may not work properly if the same commit is pushed to multiple branches:
378378
# https://github.com/8BitJonny/gh-get-current-pr/issues/8
379379
with:

.github/workflows/build_fork.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ jobs:
370370
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
371371

372372
- id: PR
373-
uses: 8BitJonny/gh-get-current-pr@3.0.0
373+
uses: 8BitJonny/gh-get-current-pr@08e737c57a3a4eb24cec6487664b243b77eb5e36 # 3.0.0
374374
# TODO: this may not work properly if the same commit is pushed to multiple branches:
375375
# https://github.com/8BitJonny/gh-get-current-pr/issues/8
376376
with:

.github/workflows/update_dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Get PR and labels
3232
if: ${{ steps.sha.outputs.sha }}
3333
id: PR # all the steps below are skipped if 'ready-to-merge' is in the list of labels found here
34-
uses: 8BitJonny/gh-get-current-pr@3.0.0
34+
uses: 8BitJonny/gh-get-current-pr@08e737c57a3a4eb24cec6487664b243b77eb5e36 # 3.0.0
3535
# TODO: this may not work properly if the same commit is pushed to multiple branches:
3636
# https://github.com/8BitJonny/gh-get-current-pr/issues/8
3737
with:

Mathlib.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ import Mathlib.Algebra.GroupWithZero.Commute
431431
import Mathlib.Algebra.GroupWithZero.Conj
432432
import Mathlib.Algebra.GroupWithZero.Defs
433433
import Mathlib.Algebra.GroupWithZero.Divisibility
434+
import Mathlib.Algebra.GroupWithZero.Equiv
434435
import Mathlib.Algebra.GroupWithZero.Hom
435436
import Mathlib.Algebra.GroupWithZero.Idempotent
436437
import Mathlib.Algebra.GroupWithZero.Indicator
@@ -942,6 +943,7 @@ import Mathlib.Algebra.Polynomial.Splits
942943
import Mathlib.Algebra.Polynomial.SumIteratedDerivative
943944
import Mathlib.Algebra.Polynomial.Taylor
944945
import Mathlib.Algebra.Polynomial.UnitTrinomial
946+
import Mathlib.Algebra.Polynomial.ofFn
945947
import Mathlib.Algebra.PresentedMonoid.Basic
946948
import Mathlib.Algebra.Prime.Defs
947949
import Mathlib.Algebra.Prime.Lemmas
@@ -2994,6 +2996,7 @@ import Mathlib.Data.Matroid.IndepAxioms
29942996
import Mathlib.Data.Matroid.Init
29952997
import Mathlib.Data.Matroid.Loop
29962998
import Mathlib.Data.Matroid.Map
2999+
import Mathlib.Data.Matroid.Minor.Basic
29973000
import Mathlib.Data.Matroid.Rank.Cardinal
29983001
import Mathlib.Data.Matroid.Rank.Finite
29993002
import Mathlib.Data.Matroid.Restrict
@@ -4535,10 +4538,12 @@ import Mathlib.Order.Heyting.Hom
45354538
import Mathlib.Order.Heyting.Regular
45364539
import Mathlib.Order.Hom.Basic
45374540
import Mathlib.Order.Hom.Bounded
4541+
import Mathlib.Order.Hom.BoundedLattice
45384542
import Mathlib.Order.Hom.CompleteLattice
45394543
import Mathlib.Order.Hom.Lattice
45404544
import Mathlib.Order.Hom.Order
45414545
import Mathlib.Order.Hom.Set
4546+
import Mathlib.Order.Hom.WithTopBot
45424547
import Mathlib.Order.Ideal
45434548
import Mathlib.Order.InitialSeg
45444549
import Mathlib.Order.Interval.Basic
@@ -4732,6 +4737,7 @@ import Mathlib.Probability.Process.Filtration
47324737
import Mathlib.Probability.Process.HittingTime
47334738
import Mathlib.Probability.Process.PartitionFiltration
47344739
import Mathlib.Probability.Process.Stopping
4740+
import Mathlib.Probability.ProductMeasure
47354741
import Mathlib.Probability.StrongLaw
47364742
import Mathlib.Probability.UniformOn
47374743
import Mathlib.Probability.Variance
@@ -6051,6 +6057,7 @@ import Mathlib.Topology.UniformSpace.CompleteSeparated
60516057
import Mathlib.Topology.UniformSpace.Completion
60526058
import Mathlib.Topology.UniformSpace.Defs
60536059
import Mathlib.Topology.UniformSpace.Dini
6060+
import Mathlib.Topology.UniformSpace.DiscreteUniformity
60546061
import Mathlib.Topology.UniformSpace.Equicontinuity
60556062
import Mathlib.Topology.UniformSpace.Equiv
60566063
import Mathlib.Topology.UniformSpace.HeineCantor

Mathlib/Algebra/Field/Equiv.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Junyan Xu
55
-/
66
import Mathlib.Algebra.Field.IsField
7-
import Mathlib.Algebra.GroupWithZero.Hom
7+
import Mathlib.Algebra.GroupWithZero.Equiv
88

99
/-!
1010
# If a semiring is a field, any isomorphic semiring is also a field.

Mathlib/Algebra/Group/Subgroup/Basic.lean

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,9 +401,17 @@ instance (priority := 100) normal_in_normalizer : (H.subgroupOf H.normalizer).No
401401
(normal_subgroupOf_iff_le_normalizer H.le_normalizer).mpr le_rfl
402402

403403
@[to_additive]
404-
theorem le_normalizer_of_normal [hK : (H.subgroupOf K).Normal] (HK : H ≤ K) : K ≤ H.normalizer :=
404+
theorem le_normalizer_of_normal_subgroupOf [hK : (H.subgroupOf K).Normal] (HK : H ≤ K) :
405+
K ≤ H.normalizer :=
405406
(normal_subgroupOf_iff_le_normalizer HK).mp hK
406407

408+
@[to_additive]
409+
theorem subset_normalizer_of_normal {S : Set G} [hH : H.Normal] : S ⊆ H.normalizer :=
410+
(@normalizer_eq_top _ _ H hH) ▸ le_top
411+
412+
@[to_additive]
413+
theorem le_normalizer_of_normal [H.Normal] : K ≤ H.normalizer := subset_normalizer_of_normal
414+
407415
@[to_additive]
408416
theorem inf_normalizer_le_normalizer_inf : H.normalizer ⊓ K.normalizer ≤ (H ⊓ K).normalizer :=
409417
fun _ h g ↦ and_congr (h.1 g) (h.2 g)
@@ -897,6 +905,18 @@ theorem commute_of_normal_of_disjoint (H₁ H₂ : Subgroup G) (hH₁ : H₁.Nor
897905
apply H₂.mul_mem _ (H₂.inv_mem hy)
898906
apply hH₂.conj_mem _ hy
899907

908+
@[to_additive]
909+
theorem normal_subgroupOf_of_le_normalizer {H N : Subgroup G}
910+
(hLE : H ≤ N.normalizer) : (N.subgroupOf H).Normal := by
911+
rw [normal_subgroupOf_iff_le_normalizer_inf]
912+
exact (le_inf hLE H.le_normalizer).trans inf_normalizer_le_normalizer_inf
913+
914+
@[to_additive]
915+
theorem normal_subgroupOf_sup_of_le_normalizer {H N : Subgroup G}
916+
(hLE : H ≤ N.normalizer) : (N.subgroupOf (H ⊔ N)).Normal := by
917+
rw [normal_subgroupOf_iff_le_normalizer le_sup_right]
918+
exact sup_le hLE le_normalizer
919+
900920
end SubgroupNormal
901921

902922
end Subgroup

Mathlib/Algebra/Group/Subgroup/Pointwise.lean

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,23 @@ theorem sup_eq_closure_mul (H K : Subgroup G) : H ⊔ K = closure ((H : Set G) *
227227
((closure_mul_le _ _).trans <| by rw [closure_eq, closure_eq])
228228

229229
@[to_additive]
230-
theorem set_mul_normal_comm (s : Set G) (N : Subgroup G) [hN : N.Normal] :
231-
s * (N : Set G) = (N : Set G) * s := by
230+
theorem set_mul_normalizer_comm (S : Set G) (N : Subgroup G) (hLE : S ⊆ N.normalizer) :
231+
S * N = N * S := by
232232
rw [← iUnion_mul_left_image, ← iUnion_mul_right_image]
233-
simp only [image_mul_left, image_mul_right, Set.preimage, SetLike.mem_coe, hN.mem_comm_iff]
233+
simp only [image_mul_left, image_mul_right, Set.preimage]
234+
congr! 5 with s hs x
235+
exact (mem_normalizer_iff'.mp (inv_mem (hLE hs)) x).symm
234236

235-
/-- The carrier of `H ⊔ N` is just `↑H * ↑N` (pointwise set product) when `N` is normal. -/
237+
@[to_additive]
238+
theorem set_mul_normal_comm (S : Set G) (N : Subgroup G) [hN : N.Normal] :
239+
S * (N : Set G) = (N : Set G) * S := set_mul_normalizer_comm S N subset_normalizer_of_normal
240+
241+
/-- The carrier of `H ⊔ N` is just `↑H * ↑N` (pointwise set product)
242+
when `H` is a subgroup of the normalizer of `N` in `G`. -/
236243
@[to_additive "The carrier of `H ⊔ N` is just `↑H + ↑N` (pointwise set addition)
237-
when `N` is normal."]
238-
theorem mul_normal (H N : Subgroup G) [hN : N.Normal] : (↑(H ⊔ N) : Set G) = H * N := by
244+
when `H` is a subgroup of the normalizer of `N` in `G`."]
245+
theorem coe_mul_of_left_le_normalizer_right (H N : Subgroup G) (hLE : H ≤ N.normalizer) :
246+
(↑(H ⊔ N) : Set G) = H * N := by
239247
rw [sup_eq_closure_mul]
240248
refine Set.Subset.antisymm (fun x hx => ?_) subset_closure
241249
induction hx using closure_induction'' with
@@ -244,19 +252,33 @@ theorem mul_normal (H N : Subgroup G) [hN : N.Normal] : (↑(H ⊔ N) : Set G) =
244252
| inv_mem x hx =>
245253
obtain ⟨x, hx, y, hy, rfl⟩ := hx
246254
simpa only [mul_inv_rev, mul_assoc, inv_inv, inv_mul_cancel_left]
247-
using mul_mem_mul (inv_mem hx) (hN.conj_mem _ (inv_mem hy) x)
255+
using mul_mem_mul (inv_mem hx) ((mem_normalizer_iff.mp (hLE hx) y⁻¹).mp (inv_mem hy))
248256
| mul x' x' _ _ hx hx' =>
249257
obtain ⟨x, hx, y, hy, rfl⟩ := hx
250258
obtain ⟨x', hx', y', hy', rfl⟩ := hx'
251259
refine ⟨x * x', mul_mem hx hx', x'⁻¹ * y * x' * y', mul_mem ?_ hy', ?_⟩
252-
· simpa using hN.conj_mem _ hy x'⁻¹
260+
· exact (mem_normalizer_iff''.mp (hLE hx') y).mp hy
253261
· simp only [mul_assoc, mul_inv_cancel_left]
254262

263+
/-- The carrier of `N ⊔ H` is just `↑N * ↑H` (pointwise set product) when
264+
`H` is a subgroup of the normalizer of `N` in `G`. -/
265+
@[to_additive "The carrier of `N ⊔ H` is just `↑N + ↑H` (pointwise set addition)
266+
when `H` is a subgroup of the normalizer of `N` in `G`."]
267+
theorem coe_mul_of_right_le_normalizer_left (N H : Subgroup G) (hLE : H ≤ N.normalizer) :
268+
(↑(N ⊔ H) : Set G) = N * H := by
269+
rw [← set_mul_normalizer_comm _ _ hLE, sup_comm, coe_mul_of_left_le_normalizer_right _ _ hLE]
270+
271+
/-- The carrier of `H ⊔ N` is just `↑H * ↑N` (pointwise set product) when `N` is normal. -/
272+
@[to_additive "The carrier of `H ⊔ N` is just `↑H + ↑N` (pointwise set addition)
273+
when `N` is normal."]
274+
theorem mul_normal (H N : Subgroup G) [hN : N.Normal] : (↑(H ⊔ N) : Set G) = H * N :=
275+
coe_mul_of_left_le_normalizer_right H N le_normalizer_of_normal
276+
255277
/-- The carrier of `N ⊔ H` is just `↑N * ↑H` (pointwise set product) when `N` is normal. -/
256278
@[to_additive "The carrier of `N ⊔ H` is just `↑N + ↑H` (pointwise set addition)
257279
when `N` is normal."]
258-
theorem normal_mul (N H : Subgroup G) [N.Normal] : (↑(N ⊔ H) : Set G) = N * H := by
259-
rw [← set_mul_normal_comm, sup_comm, mul_normal]
280+
theorem normal_mul (N H : Subgroup G) [N.Normal] : (↑(N ⊔ H) : Set G) = N * H :=
281+
coe_mul_of_right_le_normalizer_left N H le_normalizer_of_normal
260282

261283
@[to_additive]
262284
theorem mul_inf_assoc (A B C : Subgroup G) (h : A ≤ C) :
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/-
2+
Copyright (c) 2022 Yaël Dillies. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Yaël Dillies
5+
-/
6+
import Mathlib.Algebra.Group.Equiv.Defs
7+
import Mathlib.Algebra.GroupWithZero.Hom
8+
9+
/-! # Isomorphisms of monoids with zero -/
10+
11+
namespace MulEquivClass
12+
variable {F α β : Type*} [EquivLike F α β]
13+
14+
-- See note [lower instance priority]
15+
instance (priority := 100) toZeroHomClass [MulZeroClass α] [MulZeroClass β] [MulEquivClass F α β] :
16+
ZeroHomClass F α β where
17+
map_zero f :=
18+
calc
19+
f 0 = f 0 * f (EquivLike.inv f 0) := by rw [← map_mul, zero_mul]
20+
_ = 0 := by simp
21+
22+
-- See note [lower instance priority]
23+
instance (priority := 100) toMonoidWithZeroHomClass
24+
[MulZeroOneClass α] [MulZeroOneClass β] [MulEquivClass F α β] :
25+
MonoidWithZeroHomClass F α β :=
26+
{ MulEquivClass.instMonoidHomClass F, MulEquivClass.toZeroHomClass with }
27+
28+
end MulEquivClass

0 commit comments

Comments
 (0)