Skip to content

Commit 7d6e0ba

Browse files
committed
Bump mathlib
1 parent ce06cb9 commit 7d6e0ba

File tree

9 files changed

+97
-140
lines changed

9 files changed

+97
-140
lines changed

LeanCamCombi.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import LeanCamCombi.ErdosRenyi.Connectivity
1010
import LeanCamCombi.ErdosRenyi.GiantComponent
1111
import LeanCamCombi.GraphTheory.ExampleSheet1
1212
import LeanCamCombi.GraphTheory.ExampleSheet2
13+
import LeanCamCombi.GrowthInGroups.BooleanSubalgebra
14+
import LeanCamCombi.GrowthInGroups.Chevalley
15+
import LeanCamCombi.GrowthInGroups.Constructible
1316
import LeanCamCombi.GrowthInGroups.Lecture1
1417
import LeanCamCombi.GrowthInGroups.Lecture2
1518
import LeanCamCombi.GrowthInGroups.SmallTripling
@@ -35,13 +38,15 @@ import LeanCamCombi.Mathlib.Combinatorics.SimpleGraph.Subgraph
3538
import LeanCamCombi.Mathlib.Data.Finset.PosDiffs
3639
import LeanCamCombi.Mathlib.Data.List.DropRight
3740
import LeanCamCombi.Mathlib.Data.Multiset.Basic
41+
import LeanCamCombi.Mathlib.Data.Prod.Lex
3842
import LeanCamCombi.Mathlib.Data.Set.Pointwise.Finite
3943
import LeanCamCombi.Mathlib.Data.Set.Pointwise.SMul
4044
import LeanCamCombi.Mathlib.GroupTheory.OrderOfElement
4145
import LeanCamCombi.Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional
4246
import LeanCamCombi.Mathlib.Order.Interval.Finset.Defs
4347
import LeanCamCombi.Mathlib.Order.Partition.Finpartition
4448
import LeanCamCombi.Mathlib.Probability.ProbabilityMassFunction.Constructions
49+
import LeanCamCombi.Mathlib.RingTheory.Ideal.Span
4550
import LeanCamCombi.MetricBetween
4651
import LeanCamCombi.MinkowskiCaratheodory
4752
import LeanCamCombi.OrderShatter

LeanCamCombi/GrowthInGroups/Chevalley.lean

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import Mathlib
22
import LeanCamCombi.Mathlib.Data.Prod.Lex
3-
import LeanCamCombi.GrowthInGroups.ConstructibleSorries
3+
import LeanCamCombi.Mathlib.RingTheory.Ideal.Span
4+
import LeanCamCombi.GrowthInGroups.Constructible
45

56
variable {R M A} [CommRing R] [AddCommGroup M] [Module R M] [CommRing A] [Algebra R A]
67

@@ -228,15 +229,6 @@ lemma isOpen_image_comap_of_monic (f g : R[X]) (hg : g.Monic) :
228229

229230
universe u
230231

231-
lemma Prod.Lex.lt_iff' {α β} [PartialOrder α] [Preorder β] (x y : α) (w z : β) :
232-
toLex (x, w) < toLex (y, z) ↔ x ≤ y ∧ (x = y → w < z) := by
233-
rw [Prod.Lex.lt_iff]
234-
simp only [lt_iff_le_not_le, le_antisymm_iff]
235-
tauto
236-
237-
@[simp]
238-
lemma Ideal.span_singleton_zero : Ideal.span {0} = (⊥ : Ideal R) := by simp
239-
240232
lemma Polynomial.degree_C_mul_eq_of_mul_ne_zero
241233
(r : R) (p : R[X]) (h : r * p.leadingCoeff ≠ 0) : (C r * p).degree = p.degree := by
242234
by_cases hp : p = 0
@@ -426,15 +418,15 @@ lemma RingHom.FinitePresentation.polynomial_induction
426418
rw [← RingHom.comap_ker]
427419
convert hg'.map (MvPolynomial.isEmptyRingEquiv R (Fin 0)).toRingHom using 1
428420
simp only [RingEquiv.toRingHom_eq_coe]
429-
exact Ideal.comap_symm (RingHom.ker g') (MvPolynomial.isEmptyRingEquiv R (Fin 0))
421+
exact Ideal.comap_symm (MvPolynomial.isEmptyRingEquiv R (Fin 0))
430422
| succ n IH =>
431423
let e : MvPolynomial (Fin (n + 1)) R ≃ₐ[R] MvPolynomial (Fin n) R[X] :=
432424
(MvPolynomial.renameEquiv R (_root_.finSuccEquiv n)).trans
433425
(MvPolynomial.optionEquivRight R (Fin n))
434426
have he : (RingHom.ker (g'.comp <| RingHomClass.toRingHom e.symm)).FG := by
435427
rw [← RingHom.comap_ker]
436428
convert hg'.map e.toAlgHom.toRingHom using 1
437-
exact Ideal.comap_symm (RingHom.ker g') e.toRingEquiv
429+
exact Ideal.comap_symm e.toRingEquiv
438430
have := IH (R := R[X]) (S := S) (g'.comp e.symm) (hg.comp e.symm.surjective) he
439431
convert h₃ _ _ _ _ _ (h₁ _) this using 1
440432
rw [RingHom.comp_assoc, RingHom.comp_assoc]

LeanCamCombi/GrowthInGroups/Constructible.lean

Lines changed: 66 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Copyright (c) 2024 Yaël Dillies. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Yaël Dillies
55
-/
6+
import Mathlib.Tactic.StacksAttribute
67
import Mathlib.Topology.Compactness.Compact
78
import Mathlib.Topology.Separation.Basic
89
import LeanCamCombi.GrowthInGroups.BooleanSubalgebra
@@ -13,36 +14,36 @@ import LeanCamCombi.GrowthInGroups.BooleanSubalgebra
1314

1415
open Set
1516

16-
variable {α : Type*} [TopologicalSpace α] {s t : Set α} {a : α}
17+
variableβ : Type*} [TopologicalSpace α] [TopologicalSpace β] {s t : Set α} (f : α → β) {a : α}
1718

1819
/-! ### Retrocompact sets -/
1920

20-
def IsRetrocompact (s : Set α) : Prop := ∀ ⦃U⦄, IsCompact U → IsOpen U → IsCompact (s ∩ U)
21+
def IsRetroCompact (s : Set α) : Prop := ∀ ⦃U⦄, IsCompact U → IsOpen U → IsCompact (s ∩ U)
2122

22-
@[simp] lemma IsRetrocompact.empty : IsRetrocompact (∅ : Set α) := by simp [IsRetrocompact]
23+
@[simp] lemma IsRetroCompact.empty : IsRetroCompact (∅ : Set α) := by simp [IsRetroCompact]
2324

24-
@[simp] lemma IsRetrocompact.singleton : IsRetrocompact {a} :=
25+
@[simp] lemma IsRetroCompact.singleton : IsRetroCompact {a} :=
2526
fun _ _ _ ↦ Subsingleton.singleton_inter.isCompact
2627

27-
lemma IsRetrocompact.union (hs : IsRetrocompact s) (ht : IsRetrocompact t) :
28-
IsRetrocompact (s ∪ t : Set α) :=
28+
lemma IsRetroCompact.union (hs : IsRetroCompact s) (ht : IsRetroCompact t) :
29+
IsRetroCompact (s ∪ t : Set α) :=
2930
fun _U hUcomp hUopen ↦ union_inter_distrib_right .. ▸ (hs hUcomp hUopen).union (ht hUcomp hUopen)
3031

31-
lemma IsRetrocompact.inter [T2Space α] (hs : IsRetrocompact s) (ht : IsRetrocompact t) :
32-
IsRetrocompact (s ∩ t : Set α) :=
32+
lemma IsRetroCompact.inter [T2Space α] (hs : IsRetroCompact s) (ht : IsRetroCompact t) :
33+
IsRetroCompact (s ∩ t : Set α) :=
3334
fun _U hUcomp hUopen ↦ inter_inter_distrib_right .. ▸ (hs hUcomp hUopen).inter (ht hUcomp hUopen)
3435

35-
lemma IsRetrocompact.inter_isOpen (hs : IsRetrocompact s) (ht : IsRetrocompact t)
36-
(htopen : IsOpen t) : IsRetrocompact (s ∩ t : Set α) :=
36+
lemma IsRetroCompact.inter_isOpen (hs : IsRetroCompact s) (ht : IsRetroCompact t)
37+
(htopen : IsOpen t) : IsRetroCompact (s ∩ t : Set α) :=
3738
fun _U hUcomp hUopen ↦ inter_assoc .. ▸ hs (ht hUcomp hUopen) (htopen.inter hUopen)
3839

39-
lemma IsRetrocompact.isOpen_inter (hs : IsRetrocompact s) (ht : IsRetrocompact t)
40-
(hsopen : IsOpen s) : IsRetrocompact (s ∩ t : Set α) :=
40+
lemma IsRetroCompact.isOpen_inter (hs : IsRetroCompact s) (ht : IsRetroCompact t)
41+
(hsopen : IsOpen s) : IsRetroCompact (s ∩ t : Set α) :=
4142
inter_comm .. ▸ ht.inter_isOpen hs hsopen
4243

4344
def IsConstructible (s : Set α) : Prop :=
4445
∃ F : Set (Set α × Set α), F.Finite ∧ ⋃ UV ∈ F, UV.1 \ UV.2 = s ∧
45-
∀ UV ∈ F, IsOpen UV.1 ∧ IsOpen UV.2IsRetrocompact UV.1IsRetrocompact UV.2
46+
∀ UV ∈ F, IsOpen UV.1 ∧ IsOpen UV.2IsRetroCompact UV.1IsRetroCompact UV.2
4647

4748
@[simp] lemma IsConstructible.empty : IsConstructible (∅ : Set α) := ⟨∅, by simp⟩
4849

@@ -68,4 +69,55 @@ lemma IsConstructible.union (hs : IsConstructible s) (ht : IsConstructible t) :
6869

6970
def IsLocallyConstructible (s : Set α) : Prop :=
7071
∃ F : Set (Set α × Set α), F.Finite ∧ ⋃ UV ∈ F, UV.1 \ UV.2 = s ∧
71-
∀ UV ∈ F, IsOpen UV.1 ∧ IsOpen UV.2 ∧ IsRetrocompact UV.1 ∧ IsRetrocompact UV.2
72+
∀ UV ∈ F, IsOpen UV.1 ∧ IsOpen UV.2 ∧ IsRetroCompact UV.1 ∧ IsRetroCompact UV.2
73+
74+
lemma IsRetroCompact.isCompact [CompactSpace α] {s : Set α} (hs : IsRetroCompact s) :
75+
IsCompact s := by
76+
simpa using hs CompactSpace.isCompact_univ
77+
78+
lemma IsRetroCompact.isConstructible {s : Set α} (hs : IsRetroCompact s)
79+
(hs' : IsOpen s) : IsConstructible s := sorry
80+
81+
82+
@[stacks 09YD]
83+
lemma IsConstructible.image_of_isOpenEmbedding {s : Set α} (hs : IsConstructible s)
84+
(hf : IsOpenEmbedding f) (hf' : IsRetroCompact (Set.range f)) : IsConstructible (f '' s) :=
85+
sorry
86+
87+
@[stacks 005J]
88+
lemma IsConstructible.preimage_of_isOpenEmbedding {s : Set β} (hs : IsConstructible s)
89+
(hf : IsOpenEmbedding f) : IsConstructible (f ⁻¹' s) :=
90+
sorry
91+
92+
@[stacks 09YG]
93+
lemma IsConstructible.image_of_isClosedEmbedding {s : Set α} (hs : IsConstructible s)
94+
(hf : IsClosedEmbedding f) (hf' : IsRetroCompact (Set.range f)ᶜ) : IsConstructible (f '' s) :=
95+
sorry
96+
97+
@[stacks 09YE]
98+
lemma IsConstructible.preimage_of_isClosedEmbedding {s : Set β} (hs : IsConstructible s)
99+
(hf : IsClosedEmbedding f) (hf' : IsCompact (Set.range f)ᶜ) : IsConstructible (f ⁻¹' s) :=
100+
sorry
101+
102+
variable {ι} (b : ι → Set α) (hb : TopologicalSpace.IsTopologicalBasis (Set.range b))
103+
104+
include hb in
105+
lemma isRetroCompact_iff_isCompact_of_isTopologicalBasis [CompactSpace α]
106+
(hb' : ∀ i j, IsCompact (b i ∩ b j))
107+
{U : Set α} (hU : IsOpen U) :
108+
IsRetroCompact U ↔ IsCompact U := by
109+
refine ⟨IsRetroCompact.isCompact, fun hU' {V} hV' hV ↦ ?_⟩
110+
have hb'' : ∀ i, IsCompact (b i) := fun i ↦ by simpa using hb' i i
111+
obtain ⟨s, hs, rfl⟩ :=
112+
(isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis b hb hb'' U).mp ⟨hU', hU⟩
113+
obtain ⟨t, ht, rfl⟩ :=
114+
(isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis b hb hb'' V).mp ⟨hV', hV⟩
115+
simp only [Set.iUnion_inter, Set.inter_iUnion]
116+
exact ht.isCompact_biUnion fun _ _ ↦ hs.isCompact_biUnion fun _ _ ↦ (hb' _ _)
117+
118+
include hb in
119+
lemma IsConstructible.induction_of_isTopologicalBasis
120+
(P : Set α → Prop)
121+
(hP : ∀ i s, Set.Finite s → P (b i \ ⋃ j ∈ s, b j))
122+
(hP' : ∀ s t, P s → P t → P (s ∪ t))
123+
(s : Set α) (hs : IsConstructible s) : P s := sorry

LeanCamCombi/GrowthInGroups/ConstructibleSorries.lean

Lines changed: 0 additions & 62 deletions
This file was deleted.

LeanCamCombi/GrowthInGroups/Lecture2.lean

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ open Fin Finset List
88
open scoped Pointwise
99

1010
namespace GrowthInGroups.Lecture2
11-
variable {G : Type*} [DecidableEq G] [CommGroup G] {A : Finset G} {k K : ℝ} {m : ℕ}
11+
variable {G : Type*} [DecidableEq G] [Group G] {A : Finset G} {k K : ℝ} {m : ℕ}
1212

1313
-- TODO: Genealise to non-commutative groups
1414
lemma lemma_4_2 (U V W : Finset G) : #U * #(V⁻¹ * W) ≤ #(U * V) * #(U * W) := by
15-
rw [mul_comm, inv_mul_eq_div, mul_comm _ W, mul_comm #(U * V)]
16-
exact ruzsa_triangle_inequality_div_mul_mul ..
15+
exact ruzsa_triangle_inequality_invMul_mul_mul ..
1716

1817
lemma lemma_4_3_2 (hA : #(A ^ 2) ≤ K * #A) : #(A⁻¹ * A) ≤ K ^ 2 * #A := by
1918
obtain rfl | hA₀ := A.eq_empty_or_nonempty

LeanCamCombi/GrowthInGroups/SmallTripling.lean

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@ open List hiding tail
1515
open scoped Pointwise
1616

1717
namespace Finset
18-
variable {G : Type*} [DecidableEq G] [CommGroup G] {A : Finset G} {k K : ℝ} {m : ℕ}
18+
variable {G : Type*} [DecidableEq G] [Group G] {A : Finset G} {k K : ℝ} {m : ℕ}
1919

20-
-- TODO: Generalise to non-commutative groups
21-
private lemma pluennecke_ruzsa (U V W : Finset G) : #U * #(V⁻¹ * W) ≤ #(U * V) * #(U * W) := by
22-
rw [mul_comm, inv_mul_eq_div, mul_comm _ W, mul_comm #(U * V)]
23-
exact ruzsa_triangle_inequality_div_mul_mul ..
20+
private lemma pluennecke_ruzsa (U V W : Finset G) : #U * #(V⁻¹ * W) ≤ #(U * V) * #(U * W) :=
21+
ruzsa_triangle_inequality_invMul_mul_mul V U W
2422

2523
private lemma inductive_claim (hm : 3 ≤ m)
2624
(h : ∀ ε : Fin 3 → ℤ, (∀ i, |ε i| = 1) → #((finRange 3).map fun i ↦ A ^ ε i).prod ≤ k * #A)

LeanCamCombi/Mathlib/Data/Prod/Lex.lean

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
import Mathlib.Data.Prod.Lex
2+
import Mathlib.Tactic.Common
23

34
namespace Prod.Lex
4-
variable {α β : Type*} [PartialOrder α] [Preorder β] [WellFoundedLT α] [WellFoundedLT β]
5+
variable {α β : Type*} [PartialOrder α] [Preorder β]
6+
7+
lemma lt_iff' (x y : α × β) : toLex x < toLex y ↔ x.1 ≤ y.1 ∧ (x.1 = y.1 → x.2 < y.2) := by
8+
rw [Prod.Lex.lt_iff]
9+
simp only [lt_iff_le_not_le, le_antisymm_iff]
10+
tauto
11+
12+
variable [WellFoundedLT α] [WellFoundedLT β]
513

614
instance : WellFoundedLT (α ×ₗ β) := instIsWellFoundedProdLex
715

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import Mathlib.RingTheory.Ideal.Span
2+
3+
variable {R : Type*} [Semiring R]
4+
5+
@[simp] lemma Ideal.span_singleton_zero : Ideal.span {0} = (⊥ : Ideal R) := by simp

lake-manifest.json

Lines changed: 3 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "git",
66
"subDir": null,
77
"scope": "leanprover-community",
8-
"rev": "dc72dcdb8e97b3c56bd70f06f043ed2dee3258e6",
8+
"rev": "500a529408399c44d7e1649577e3c98697f95aa4",
99
"name": "batteries",
1010
"manifestFile": "lake-manifest.json",
1111
"inputRev": "main",
@@ -55,7 +55,7 @@
5555
"type": "git",
5656
"subDir": null,
5757
"scope": "leanprover-community",
58-
"rev": "0ea83a676d288220ba227808568cbb80fe43ace0",
58+
"rev": "c1970bea80ac3357a6a991a6d00d12e7435c12c7",
5959
"name": "importGraph",
6060
"manifestFile": "lake-manifest.json",
6161
"inputRev": "main",
@@ -75,51 +75,11 @@
7575
"type": "git",
7676
"subDir": null,
7777
"scope": "",
78-
"rev": "991921d3bd6203a88526aed794553b0ba2350735",
78+
"rev": "348232e527e0363cd27a7a49302dad2de3817be6",
7979
"name": "mathlib",
8080
"manifestFile": "lake-manifest.json",
8181
"inputRev": null,
8282
"inherited": false,
83-
"configFile": "lakefile.lean"},
84-
{"url": "https://github.com/acmepjz/md4lean",
85-
"type": "git",
86-
"subDir": null,
87-
"scope": "",
88-
"rev": "5e95f4776be5e048364f325c7e9d619bb56fb005",
89-
"name": "MD4Lean",
90-
"manifestFile": "lake-manifest.json",
91-
"inputRev": "main",
92-
"inherited": true,
93-
"configFile": "lakefile.lean"},
94-
{"url": "https://github.com/fgdorais/lean4-unicode-basic",
95-
"type": "git",
96-
"subDir": null,
97-
"scope": "",
98-
"rev": "6d2e06515f1ed1f74208d5a1da3a9cc26c60a7a0",
99-
"name": "UnicodeBasic",
100-
"manifestFile": "lake-manifest.json",
101-
"inputRev": "main",
102-
"inherited": true,
103-
"configFile": "lakefile.lean"},
104-
{"url": "https://github.com/dupuisf/BibtexQuery",
105-
"type": "git",
106-
"subDir": null,
107-
"scope": "",
108-
"rev": "85e1e7143dd4cfa2b551826c27867bada60858e8",
109-
"name": "BibtexQuery",
110-
"manifestFile": "lake-manifest.json",
111-
"inputRev": "master",
112-
"inherited": true,
113-
"configFile": "lakefile.lean"},
114-
{"url": "https://github.com/leanprover/doc-gen4",
115-
"type": "git",
116-
"subDir": null,
117-
"scope": "",
118-
"rev": "d36b7fd4c730cae8a3a8edfe98beb34ef0fc6e0a",
119-
"name": "«doc-gen4»",
120-
"manifestFile": "lake-manifest.json",
121-
"inputRev": "main",
122-
"inherited": false,
12383
"configFile": "lakefile.lean"}],
12484
"name": "LeanCamCombi",
12585
"lakeDir": ".lake"}

0 commit comments

Comments
 (0)