Skip to content

Commit 5915513

Browse files
committed
Bump mathlib
1 parent e6a8ecf commit 5915513

File tree

10 files changed

+60
-80
lines changed

10 files changed

+60
-80
lines changed

LeanCamCombi.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import LeanCamCombi.Mathlib.Algebra.Group.Subgroup.Pointwise
4141
import LeanCamCombi.Mathlib.Algebra.Order.GroupWithZero.Unbundled
4242
import LeanCamCombi.Mathlib.Algebra.Pointwise.Stabilizer
4343
import LeanCamCombi.Mathlib.Algebra.Polynomial.Degree.Lemmas
44-
import LeanCamCombi.Mathlib.Algebra.Polynomial.Degree.Operations
4544
import LeanCamCombi.Mathlib.Algebra.Polynomial.Div
4645
import LeanCamCombi.Mathlib.Algebra.Polynomial.Eval.Degree
4746
import LeanCamCombi.Mathlib.AlgebraicGeometry.PrimeSpectrum.Basic
@@ -64,7 +63,6 @@ import LeanCamCombi.Mathlib.Data.Finset.PosDiffs
6463
import LeanCamCombi.Mathlib.Data.List.DropRight
6564
import LeanCamCombi.Mathlib.Data.Multiset.Basic
6665
import LeanCamCombi.Mathlib.Data.Prod.Lex
67-
import LeanCamCombi.Mathlib.Data.Set.Basic
6866
import LeanCamCombi.Mathlib.Data.Set.Card
6967
import LeanCamCombi.Mathlib.Data.Set.Image
7068
import LeanCamCombi.Mathlib.Data.Set.Lattice

LeanCamCombi/Archive/CauchyDavenportFromKneser.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This file proves the Cauchy-Davenport theorem as a corollary of Kneser's lemma.
2020
additive combinatorics, number theory, sumset, cauchy-davenport
2121
-/
2222

23-
open Finset
23+
open AddAction Finset
2424
open scoped Pointwise
2525

2626
/-- The **Cauchy-Davenport Theorem**. -/
@@ -29,8 +29,9 @@ lemma ZMod.cauchy_davenport' {p : ℕ} (hp : p.Prime) {s t : Finset (ZMod p)} (h
2929
haveI : Fact p.Prime := ⟨hp⟩
3030
obtain h | h := eq_bot_or_eq_top (AddAction.stabilizer (ZMod p) (s + t))
3131
· refine min_le_of_right_le ?_
32-
rw [← coe_set_eq_zero, ← coe_addStab (hs.add ht), coe_eq_zero] at h
32+
rw [← coe_set_eq_zero, ← stabilizer_coe_finset, ← coe_addStab (hs.add ht), coe_eq_zero] at h
3333
simpa [*] using add_kneser s t
34-
· rw [← AddSubgroup.coe_eq_univ, ← coe_addStab (hs.add ht), coe_eq_univ] at h
34+
· rw [← AddSubgroup.coe_eq_univ, ← stabilizer_coe_finset, ← coe_addStab (hs.add ht), coe_eq_univ]
35+
at h
3536
refine card_addStab_le_card.trans' ?_
3637
simp [*, card_univ]

LeanCamCombi/GrowthInGroups/ApproximateSubgroup.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import Mathlib.Tactic.Bound
44
import LeanCamCombi.Mathlib.Algebra.Group.Pointwise.Set.Basic
55
import LeanCamCombi.Mathlib.Algebra.Group.Subgroup.Pointwise
66
import LeanCamCombi.Mathlib.Combinatorics.Additive.RuzsaCovering
7-
import LeanCamCombi.Mathlib.Data.Set.Basic
87
import LeanCamCombi.Mathlib.Data.Set.Lattice
98
import LeanCamCombi.Mathlib.Data.Set.Pointwise.SMul
109
import LeanCamCombi.GrowthInGroups.SMulCover

LeanCamCombi/GrowthInGroups/CardQuotient.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import Mathlib.Algebra.Group.Pointwise.Finset.Basic
22
import Mathlib.Combinatorics.Enumerative.DoubleCounting
33
import Mathlib.GroupTheory.QuotientGroup.Defs
4-
import LeanCamCombi.Mathlib.GroupTheory.Coset.Defs
54

65
open Finset Function
76
open scoped Pointwise

LeanCamCombi/Kneser/Kneser.lean

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,12 +298,12 @@ theorem mul_kneser :
298298
-- We distinguish whether `s * t` has trivial stabilizer.
299299
obtain hstab | hstab := ne_or_eq (s * t).mulStab 1
300300
· have image_coe_mul :
301-
((s * t).image (↑) : Finset (α ⧸ stabilizer α (s * t))) = s.image (↑) * t.image (↑) :=
302-
image_mul (QuotientGroup.mk' _ : α →* α ⧸ stabilizer α (s * t))
301+
((s * t).image (↑) : Finset (α ⧸ stabilizer α (s * t).toSet)) = s.image (↑) * t.image (↑) :=
302+
image_mul (QuotientGroup.mk' _ : α →* α ⧸ stabilizer α (s * t).toSet)
303303
suffices hineq :
304304
#(s * t).mulStab *
305-
(#(s.image (↑) : Finset (α ⧸ stabilizer α (s * t))) +
306-
#(t.image (↑) : Finset (α ⧸ stabilizer α (s * t))) - 1) ≤
305+
(#(s.image (↑) : Finset (α ⧸ stabilizer α (s * t).toSet)) +
306+
#(t.image (↑) : Finset (α ⧸ stabilizer α (s * t).toSet)) - 1) ≤
307307
#(s * t) by
308308
-- now to prove that `#(s * (s * t).mulStab) = #(s * t).mulStab * #(s.image (↑))` and
309309
-- the analogous statement for `s` and `t` interchanged
@@ -313,9 +313,10 @@ theorem mul_kneser :
313313
convert hineq using 1
314314
exact add_comm _ _
315315
refine le_of_le_of_eq (mul_le_mul_left' ?_ _) (card_mul_card_eq_mulStab_card_mul_coe s t).symm
316-
have := ih _ ?_ (s.image (↑) : Finset (α ⧸ stabilizer α (s * t))) (t.image (↑)) rfl
317-
simpa only [← image_coe_mul, mulStab_image_coe_quotient (hs.mul ht), mul_one,
318-
tsub_le_iff_right, card_one] using this
316+
have := ih _ ?_ (s.image (↑) : Finset (α ⧸ stabilizer α (s * t).toSet)) (t.image (↑)) rfl
317+
· classical
318+
simpa only [← image_coe_mul, mulStab_image_coe_quotient (hs.mul ht), mul_one,
319+
tsub_le_iff_right, card_one] using this
319320
rw [← image_coe_mul, card_mul_card_eq_mulStab_card_mul_coe]
320321
exact
321322
add_lt_add_of_lt_of_le

LeanCamCombi/Kneser/MulStab.lean

Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ local notation s " +ˢ " N => Set.image ((↑) : α → α ⧸ N) s
3030
section Group
3131
variable [Group α] [DecidableEq α] {s t : Finset α} {a : α}
3232

33+
@[to_additive]
34+
instance (s : Finset α) : DecidablePred (· ∈ stabilizer α s.toSet) :=
35+
fun a ↦ decidable_of_iff (a ∈ stabilizer α s) (by simp)
36+
3337
/-- The stabilizer of `s` as a finset. As an exception, this sends `∅` to `∅`.-/
3438
@[to_additive "The stabilizer of `s` as a finset. As an exception, this sends `∅` to `∅`."]
3539
def mulStab (s : Finset α) : Finset α := {a ∈ s / s | a • s = s}
@@ -51,20 +55,22 @@ lemma mulStab_subset_div_right (ha : a ∈ s) : s.mulStab ⊆ s / {a} := by
5155
exact smul_mem_smul_finset ha
5256

5357
@[to_additive (attr := simp)]
54-
lemma coe_mulStab (hs : s.Nonempty) : (s.mulStab : Set α) = MulAction.stabilizer α s := by
58+
lemma coe_mulStab (hs : s.Nonempty) : (s.mulStab : Set α) = stabilizer α s.toSet := by
5559
ext; simp [mem_mulStab hs]
5660

5761
@[to_additive]
5862
lemma mem_mulStab_iff_subset_smul_finset (hs : s.Nonempty) : a ∈ s.mulStab ↔ s ⊆ a • s := by
59-
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, mem_stabilizer_finset_iff_subset_smul_finset]
63+
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, stabilizer_coe_finset,
64+
mem_stabilizer_finset_iff_subset_smul_finset]
6065

6166
@[to_additive]
6267
lemma mem_mulStab_iff_smul_finset_subset (hs : s.Nonempty) : a ∈ s.mulStab ↔ a • s ⊆ s := by
63-
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, mem_stabilizer_finset_iff_smul_finset_subset]
68+
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, stabilizer_coe_finset,
69+
mem_stabilizer_finset_iff_smul_finset_subset]
6470

6571
@[to_additive]
6672
lemma mem_mulStab' (hs : s.Nonempty) : a ∈ s.mulStab ↔ ∀ ⦃b⦄, b ∈ s → a • b ∈ s := by
67-
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, mem_stabilizer_finset']
73+
rw [← mem_coe, coe_mulStab hs, SetLike.mem_coe, stabilizer_coe_finset, mem_stabilizer_finset']
6874

6975
@[to_additive (attr := simp)]
7076
lemma mulStab_empty : mulStab (∅ : Finset α) = ∅ := by simp [mulStab]
@@ -188,31 +194,30 @@ lemma mul_subset_left : t ⊆ s.mulStab → s * t ⊆ s := by rw [mul_comm]; exa
188194
lemma mulStab_idem (s : Finset α) : s.mulStab.mulStab = s.mulStab := by
189195
obtain rfl | hs := s.eq_empty_or_nonempty
190196
· simp
191-
rw [← coe_inj, coe_mulStab hs, coe_mulStab hs.mulStab, ← stabilizer_coe_finset, coe_mulStab hs]
197+
rw [← coe_inj, coe_mulStab hs, coe_mulStab hs.mulStab, coe_mulStab hs]
192198
simp
193199

194200
@[to_additive (attr := simp)]
195201
lemma mulStab_smul (a : α) (s : Finset α) : (a • s).mulStab = s.mulStab := by
196202
obtain rfl | hs := s.eq_empty_or_nonempty
197203
· simp
198-
· rw [← coe_inj, coe_mulStab hs, coe_mulStab hs.smul_finset, stabilizer_smul_eq_right]
199-
200-
open scoped Classical
204+
· rw [← coe_inj, coe_mulStab hs, coe_mulStab hs.smul_finset, stabilizer_coe_finset,
205+
stabilizer_coe_finset, stabilizer_smul_eq_right]
201206

202207
@[to_additive]
203208
lemma mulStab_image_coe_quotient (hs : s.Nonempty) :
204-
(s.image (↑) : Finset (α ⧸ stabilizer α s)).mulStab = 1 := by
205-
rw [← coe_inj, coe_mulStab (hs.image _), ← stabilizer_coe_finset, ← stabilizer_coe_finset,
206-
coe_image, coe_one, stabilizer_image_coe_quotient, Subgroup.coe_bot, Set.singleton_one]
209+
(s.image (↑) : Finset (α ⧸ stabilizer α s.toSet)).mulStab = 1 := by
210+
simp_rw [← coe_inj, coe_mulStab (hs.image _), coe_image, coe_one]
211+
rw [stabilizer_image_coe_quotient, Subgroup.coe_bot, Set.singleton_one]
207212

208213
@[to_additive]
209214
lemma preimage_image_quotientMk_stabilizer_eq_mul_mulStab (ht : t.Nonempty) (s : Finset α) :
210-
QuotientGroup.mk ⁻¹' (s +ˢ stabilizer α t) = s * t.mulStab := by
211-
rw [QuotientGroup.preimage_image_mk_eq_mul, coe_mulStab ht]
215+
QuotientGroup.mk ⁻¹' (s +ˢ stabilizer α t.toSet) = s * t.mulStab := by
216+
rw [QuotientGroup.preimage_image_mk_eq_mul, coe_mulStab ht, stabilizer_coe_finset]
212217

213218
@[to_additive]
214219
lemma preimage_image_quotientMk_mulStabilizer (s : Finset α) :
215-
QuotientGroup.mk ⁻¹' (s +ˢ stabilizer α s) = s := by
220+
QuotientGroup.mk ⁻¹' (s +ˢ stabilizer α s.toSet) = s := by
216221
obtain rfl | hs := s.eq_empty_or_nonempty
217222
· simp
218223
· rw [preimage_image_quotientMk_stabilizer_eq_mul_mulStab hs s, ← coe_mul, mul_mulStab]
@@ -280,12 +285,12 @@ lemma card_mulStab_dvd_card_mulStab (hs : s.Nonempty) (h : s.mulStab ⊆ t.mulSt
280285

281286
/-- A version of Lagrange's theorem. -/
282287
@[to_additive "A version of Lagrange's theorem."]
283-
lemma card_mulStab_mul_card_image_coe' (s t : Finset α) :
284-
#t.mulStab * #(s +ₛ stabilizer α t) = #(s * t.mulStab) := by
288+
lemma card_mulStab_mul_card_image_coe' (s t : Finset α) [DecidableEq (α ⧸ stabilizer α t.toSet)] :
289+
#t.mulStab * #(s +ₛ stabilizer α t.toSet) = #(s * t.mulStab) := by
285290
obtain rfl | ht := t.eq_empty_or_nonempty
286291
· simp
287-
have := QuotientGroup.preimageMkEquivSubgroupProdSet _ (s +ˢ stabilizer α t)
288-
have that : ↥(stabilizer α t) = ↥t.mulStab := by
292+
have := QuotientGroup.preimageMkEquivSubgroupProdSet _ (s +ˢ stabilizer α t.toSet)
293+
have that : ↥(stabilizer α t.toSet) = ↥t.mulStab := by
289294
rw [← SetLike.coe_sort_coe, ← coe_mulStab ht, Finset.coe_sort_coe]
290295
have temp := this.trans ((Equiv.cast that).prodCongr (Equiv.refl _))
291296
rw [preimage_image_quotientMk_stabilizer_eq_mul_mulStab ht] at temp
@@ -295,13 +300,13 @@ lemma card_mulStab_mul_card_image_coe' (s t : Finset α) :
295300

296301
@[to_additive]
297302
lemma card_mul_card_eq_mulStab_card_mul_coe (s t : Finset α) :
298-
#(s * t) = #(s * t).mulStab * #((s * t) +ₛ stabilizer α (s * t)) := by
303+
#(s * t) = #(s * t).mulStab * #((s * t) +ₛ stabilizer α (s * t).toSet) := by
299304
obtain rfl | hs := s.eq_empty_or_nonempty
300305
· simp
301306
obtain rfl | ht := t.eq_empty_or_nonempty
302307
· simp
303-
have := QuotientGroup.preimageMkEquivSubgroupProdSet _ $ ↑(s * t) +ˢ stabilizer α (s * t)
304-
have that : ↥(stabilizer α (s * t)) = ↥(s * t).mulStab := by
308+
have := QuotientGroup.preimageMkEquivSubgroupProdSet _ $ ↑(s * t) +ˢ stabilizer α (s * t).toSet
309+
have that : ↥(stabilizer α (s * t).toSet) = ↥(s * t).mulStab := by
305310
rw [← SetLike.coe_sort_coe, ← coe_mulStab (hs.mul ht), Finset.coe_sort_coe]
306311
have temp := this.trans $ (Equiv.cast that).prodCongr (Equiv.refl _)
307312
rw [preimage_image_quotientMk_mulStabilizer] at temp
@@ -310,40 +315,42 @@ lemma card_mul_card_eq_mulStab_card_mul_coe (s t : Finset α) :
310315
/-- A version of Lagrange's theorem. -/
311316
@[to_additive "A version of Lagrange's theorem."]
312317
lemma card_mulStab_mul_card_image_coe (s t : Finset α) :
313-
#(s * t).mulStab * #((s +ₛ stabilizer α (s * t)) * (t +ₛ stabilizer α (s * t))) = #(s * t) := by
318+
#(s * t).mulStab * #((s +ₛ stabilizer α (s * t).toSet) * (t +ₛ stabilizer α (s * t).toSet)) =
319+
#(s * t) := by
314320
obtain rfl | hs := s.eq_empty_or_nonempty
315321
· simp
316322
obtain rfl | ht := t.eq_empty_or_nonempty
317323
· simp
318-
let this := QuotientGroup.preimageMkEquivSubgroupProdSet (stabilizer α (s * t))
319-
((s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t)))
324+
let this := QuotientGroup.preimageMkEquivSubgroupProdSet (stabilizer α (s * t).toSet)
325+
((s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet))
320326
have image_coe_mul :
321-
((s * t) +ˢ stabilizer α (s * t)) = (s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t)) :=
322-
Set.image_mul (QuotientGroup.mk' (stabilizer α (s * t)) : α →* α ⧸ stabilizer α (s * t))
323-
rw [← image_coe_mul, ← coe_mul, preimage_image_quotientMk_mulStabilizer, coe_mul, image_coe_mul]
324-
at this
327+
((s * t).toSet +ˢ stabilizer α (s * t).toSet) =
328+
(s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet) := by
329+
simpa [coe_mul] using Set.image_mul (QuotientGroup.mk' (stabilizer α (s * t).toSet))
330+
rw [← image_coe_mul, preimage_image_quotientMk_mulStabilizer, image_coe_mul] at this
325331
have that :
326-
(stabilizer α (s * t) × ↥((s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t)))) =
327-
((s * t).mulStab × ↥((s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t)))) := by
332+
(stabilizer α (s * t).toSet ×
333+
↥((s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet))) =
334+
((s * t).mulStab ×
335+
↥((s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet))) := by
328336
rw [← SetLike.coe_sort_coe, ← coe_mulStab (hs.mul ht), Finset.coe_sort_coe]
329337
let temp := this.trans (Equiv.cast that)
330338
replace temp := Fintype.card_congr temp
331-
simp_rw [← Finset.coe_mul s t] at temp
332339
simp only [Fintype.card_prod, Fintype.card_coe] at temp
333340
have h1 : Fintype.card ((s * t : Finset α) : Set α) = Fintype.card (s * t) := by congr
334-
have h2 : (s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t)) =
335-
↑((s +ₛ stabilizer α (s * t)) * (t +ₛ stabilizer α (s * t))) := by simp
341+
have h2 : (s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet) =
342+
↑((s +ₛ stabilizer α (s * t).toSet) * (t +ₛ stabilizer α (s * t).toSet)) := by simp
336343
have h3 :
337-
Fintype.card ((s +ˢ stabilizer α (s * t)) * (t +ˢ stabilizer α (s * t))) =
338-
Fintype.card ((s +ₛ stabilizer α (s * t)) * (t +ₛ stabilizer α (s * t))) := by
344+
Fintype.card ((s +ˢ stabilizer α (s * t).toSet) * (t +ˢ stabilizer α (s * t).toSet)) =
345+
Fintype.card ((s +ₛ stabilizer α (s * t).toSet) * (t +ₛ stabilizer α (s * t).toSet)) := by
339346
simp_rw [h2]
340347
congr
341348
simp only [h1, h3, Fintype.card_coe] at temp
342349
rw [temp]
343350

344351
@[to_additive]
345-
lemma subgroup_mul_card_eq_mul_of_mul_stab_subset (s : Subgroup α) (t : Finset α)
346-
(hst : (s : Set α) ⊆ t.mulStab) : Nat.card s * #(t +ₛ s) = #t := by
352+
lemma subgroup_mul_card_eq_mul_of_mul_stab_subset (s : Subgroup α) [DecidablePred (· ∈ s)]
353+
(t : Finset α) (hst : (s : Set α) ⊆ t.mulStab) : Nat.card s * #(t +ₛ s) = #t := by
347354
suffices h : (t : Set α) * s = t by
348355
simpa [h, eq_comm] using s.card_mul_eq_card_subgroup_mul_card_quotient t
349356
apply Set.Subset.antisymm (Set.Subset.trans (Set.mul_subset_mul_left hst) _)
@@ -353,7 +360,7 @@ lemma subgroup_mul_card_eq_mul_of_mul_stab_subset (s : Subgroup α) (t : Finset
353360
· rw [← coe_mul, mul_mulStab]
354361

355362
@[to_additive]
356-
lemma mulStab_quotient_commute_subgroup (s : Subgroup α) (t : Finset α)
363+
lemma mulStab_quotient_commute_subgroup (s : Subgroup α) [DecidablePred (· ∈ s)] (t : Finset α)
357364
(hst : (s : Set α) ⊆ t.mulStab) : (t.mulStab +ₛ s) = (t +ₛ s).mulStab := by
358365
obtain rfl | ht := t.eq_empty_or_nonempty
359366
· simp

LeanCamCombi/Mathlib/Algebra/Polynomial/Degree/Operations.lean

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

LeanCamCombi/Mathlib/Algebra/Polynomial/Eval/Degree.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import Mathlib.Algebra.Polynomial.Eval.Degree
2-
import LeanCamCombi.Mathlib.Algebra.Polynomial.Degree.Operations
32

43
variable {R S : Type*} [CommRing R] [CommRing S]
54

@@ -15,6 +14,6 @@ lemma degree_map_lt (hp : f p.leadingCoeff = 0) (hp₀ : p ≠ 0) : (p.map f).de
1514
-- TODO: There is a version of this where we assume `p` nonconstant instead of `map f p ≠ 0`
1615
lemma natDegree_map_lt (hp : f p.leadingCoeff = 0) (hp₀ : map f p ≠ 0) :
1716
(p.map f).natDegree < p.natDegree :=
18-
natDegree_lt_natDegree' hp₀ <| degree_map_lt hp <| by rintro rfl; simp at hp₀
17+
natDegree_lt_natDegree hp₀ <| degree_map_lt hp <| by rintro rfl; simp at hp₀
1918

2019
end Polynomial

LeanCamCombi/Mathlib/Data/Set/Basic.lean

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

lake-manifest.json

Lines changed: 2 additions & 2 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": "a822446d61ad7e7f5e843365c7041c326553050a",
8+
"rev": "0dc51ac7947ff6aa2c16bcffb64c46c7149d1276",
99
"name": "batteries",
1010
"manifestFile": "lake-manifest.json",
1111
"inputRev": "main",
@@ -85,7 +85,7 @@
8585
"type": "git",
8686
"subDir": null,
8787
"scope": "",
88-
"rev": "840e02ce2768e06de7ced0a624444746590e9d99",
88+
"rev": "2abe270b9a11bad57afac01e29a40b4e92e1fcc5",
8989
"name": "mathlib",
9090
"manifestFile": "lake-manifest.json",
9191
"inputRev": null,

0 commit comments

Comments
 (0)