Skip to content

Commit 60cbef0

Browse files
plp127joelriou
authored andcommitted
1 parent e40a019 commit 60cbef0

15 files changed

Lines changed: 52 additions & 56 deletions

File tree

Archive/Imo/Imo1987Q1.lean

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ def fixedPointsEquiv : { σx : α × Perm α // σx.2 σx.1 = σx.1 } ≃ Σ x :
4444
theorem card_fixed_points :
4545
card { σx : α × Perm α // σx.2 σx.1 = σx.1 } = card α * (card α - 1)! := by
4646
simp only [card_congr (fixedPointsEquiv α), card_sigma, card_perm]
47-
have (x : _) : ({x}ᶜ : Set α) = Finset.filter (· ≠ x) Finset.univ := by
47+
have h (x : α) : ({x}ᶜ : Set α) = Finset.univ.erase x := by
4848
ext; simp
49-
simp [this]
49+
simp_rw [h, Fintype.card_subtype, SetLike.mem_coe, Finset.filter_univ_mem]
50+
simp
5051

5152
/-- Given `α : Type*` and `k : ℕ`, `fiber α k` is the set of permutations of `α` with exactly `k`
5253
fixed points. -/

Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -625,12 +625,10 @@ identify to subsets of `Fin (n + 1)` of cardinality `d + 1`. -/
625625
(Δ[n] : SSet.{u}).nonDegenerate d ≃ { S : Finset (Fin (n + 1)) | S.card = d + 1 } :=
626626
Equiv.ofBijective _ (bijective_image_objEquiv_toOrderHom_univ n d)
627627

628-
set_option backward.isDefEq.respectTransparency false in
629628
lemma nonDegenerateEquiv'_iff {n d : ℕ} (x : (Δ[n] : SSet.{u}).nonDegenerate d) (j : Fin (n + 1)) :
630629
j ∈ (nonDegenerateEquiv' x).val ↔ ∃ (i : Fin (d + 1)), x.val i = j := by
631-
simp only [Set.mem_setOf_eq, Set.coe_setOf]
632-
dsimp [nonDegenerateEquiv']
633-
aesop
630+
unfold nonDegenerateEquiv'
631+
simp
634632

635633
set_option backward.defeqAttrib.useBackward true in
636634
/-- If `x` is a nondegenerate `d`-simplex of `Δ[n]`, this is the order isomorphism

Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ set_option backward.isDefEq.respectTransparency false in
4040
@[simp]
4141
theorem range_arcsin : range arcsin = Icc (-(π / 2)) (π / 2) := by
4242
rw [arcsin, range_comp Subtype.val]
43-
simp [Icc]
43+
ext
44+
simp
4445

4546
theorem arcsin_le_pi_div_two (x : ℝ) : arcsin x ≤ π / 2 :=
4647
(arcsin_mem_Icc x).2

Mathlib/CategoryTheory/GradedObject/Monoidal.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,8 +610,8 @@ instance (n : ℕ) : Finite ({ i : (ℕ × ℕ × ℕ) | i.1 + i.2.1 + i.2.2 = n
610610
refine Finite.of_injective (fun ⟨⟨i₁, i₂, i₃⟩, (hi : i₁ + i₂ + i₃ = n)⟩ =>
611611
(⟨⟨i₁, by lia⟩, ⟨i₂, by lia⟩, ⟨i₃, by lia⟩⟩ :
612612
Fin (n + 1) × Fin (n + 1) × Fin (n + 1))) ?_
613-
rintro ⟨⟨_, _, _⟩, _⟩ ⟨⟨_, _, _⟩, _⟩ h
614-
simpa using h
613+
intro _ _ h
614+
exact Subtype.ext (congrArg (fun x => (x.1.1, x.2.1.1, x.2.2.1)) h)
615615

616616
/-!
617617
The monoidal category structure on `GradedObject ℕ C` can be inferred

Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ theorem EqualizerCondition.bijective_mapToEqualizer_pullback' {P : Cᵒᵖ ⥤ T
107107
simpa [mapToEqualizer] using! ha₁
108108
· intro y h
109109
apply ha₂ y
110-
simpa [mapToEqualizer, Subtype.ext_iff] using! h
110+
simpa [mapToEqualizer] using Subtype.ext_iff.1 h
111111

112112
theorem EqualizerCondition.bijective_mapToEqualizer_pullback {P : Cᵒᵖ ⥤ Type*}
113113
(hP : EqualizerCondition P) {X B : C} (π : X ⟶ B) [EffectiveEpi π] [HasPullback π π] :
@@ -126,10 +126,11 @@ theorem EqualizerCondition.mk' (P : Cᵒᵖ ⥤ Type*)
126126
intro b hb
127127
obtain ⟨a, ha₁, ha₂⟩ := hP ⟨b, hb⟩
128128
refine ⟨a, ?_, ?_⟩
129-
· simpa [Subtype.ext_iff, mapToEqualizer] using! ha₁
129+
· simpa [mapToEqualizer] using Subtype.ext_iff.1 ha₁
130130
· intro y h
131131
apply ha₂ y
132-
simpa [mapToEqualizer, Subtype.ext_iff] using! h
132+
ext
133+
simpa [mapToEqualizer] using h
133134

134135
set_option backward.isDefEq.respectTransparency false in
135136
theorem EqualizerCondition.mk (P : Cᵒᵖ ⥤ Type*)

Mathlib/CategoryTheory/Sites/IsSheafFor.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@ theorem isSheafFor_iff_yonedaSheafCondition {P : Cᵒᵖ ⥤ Type v₁} :
557557
dsimp [functor]
558558
simp only [Subtype.forall, shrinkYonedaObjObjEquiv.forall_congr_left, Equiv.apply_symm_apply]
559559
congr!
560-
simp [Equiv.subtypeEquiv]
560+
simp
561561

562562
/--
563563
If `P` is a sheaf for the sieve `S` on `X`, a natural transformation from `S` (viewed as a functor)

Mathlib/CategoryTheory/Sites/Sieves.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,7 +1440,7 @@ def shrinkFunctorUliftFunctorIso [LocallySmall.{w} C] [LocallySmall.{max w' w} C
14401440
fun {U V} f ↦ by
14411441
dsimp
14421442
ext
1443-
dsimp [Equiv.subtypeEquiv]
1443+
dsimp [Equiv.subtypeEquiv_apply]
14441444
rw [shrinkYonedaObjObjEquiv_obj_map, shrinkYonedaObjObjEquiv_symm_comp]
14451445
simp
14461446

@@ -1459,7 +1459,7 @@ variable (S) in
14591459
noncomputable def shrinkFunctorIsoFunctor : (shrinkFunctor.{v₁} S).toFunctor ≅ S.functor :=
14601460
NatIso.ofComponents (fun Y ↦ Equiv.toIso <| Equiv.subtypeEquiv shrinkYonedaObjObjEquiv (by simp))
14611461
fun {U V} f ↦ by
1462-
dsimp [Equiv.subtypeEquiv]
1462+
dsimp [Equiv.subtypeEquiv_apply]
14631463
ext
14641464
simp [shrinkYonedaObjObjEquiv_obj_map]
14651465

Mathlib/Combinatorics/SimpleGraph/Connectivity/Finite.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ lemma ncard_oddComponents_mono [Finite V] {G' : SimpleGraph V} (h : G ≤ G') :
114114
G'.oddComponents.ncard ≤ G.oddComponents.ncard := by
115115
have aux (c : G'.ConnectedComponent) (hc : Odd c.supp.ncard) :
116116
{c' : G.ConnectedComponent | Odd c'.supp.ncard ∧ c'.supp ⊆ c.supp}.Nonempty := by
117-
refine Set.nonempty_of_ncard_ne_zero fun h' ↦ ?_
118-
simpa [-Nat.card_eq_fintype_card, -Set.coe_setOf, h']
119-
using (c.odd_oddComponents_ncard_subset_supp _ h).2 hc
117+
refine Set.nonempty_of_ncard_ne_zero fun h' ↦ Nat.not_odd_zero ?_
118+
rw [← h']
119+
exact (c.odd_oddComponents_ncard_subset_supp _ h).2 hc
120120
let f : G'.oddComponents → G.oddComponents :=
121121
fun ⟨c, hc⟩ ↦ ⟨(aux c hc).choose, (aux c hc).choose_spec.1
122122
refine Nat.card_le_card_of_injective f fun c c' fcc' ↦ ?_

Mathlib/Data/Set/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ instance (s : Set α) : CoeTC s α := ⟨fun x => x.1⟩
142142
theorem Set.coe_eq_subtype (s : Set α) : ↥s = { x // x ∈ s } :=
143143
rfl
144144

145-
@[simp]
146145
theorem Set.coe_setOf (p : α → Prop) : ↥{ x | p x } = { x // p x } :=
147146
rfl
148147

Mathlib/Data/Set/Finite/Lattice.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ variable {s t : Set α}
269269
theorem infinite_iUnion {ι : Type*} [Infinite ι] {s : ι → Set α} (hs : Function.Injective s) :
270270
(⋃ i, s i).Infinite :=
271271
fun hfin ↦ @not_injective_infinite_finite ι _ _ hfin.finite_subsets.to_subtype
272-
(fun i ↦ ⟨s i, subset_iUnion _ _⟩) fun i j h_eq ↦ hs (by simpa using h_eq)
272+
(fun i ↦ ⟨s i, subset_iUnion _ _⟩) fun _ _ h_eq ↦ hs (Subtype.ext_iff.1 h_eq)
273273

274274
theorem Infinite.biUnion {ι : Type*} {s : ι → Set α} {a : Set ι} (ha : a.Infinite)
275275
(hs : a.InjOn s) : (⋃ i ∈ a, s i).Infinite := by

0 commit comments

Comments
 (0)