Skip to content

Commit 85eb149

Browse files
committed
refactor: redefine Equiv.Set.sumCompl = Equiv.sumCompl (#30890)
1 parent 2dcdfaa commit 85eb149

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

Mathlib/Logic/Equiv/Set.lean

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -285,12 +285,11 @@ theorem insert_apply_right {α} {s : Set.{u} α} [DecidablePred (· ∈ s)] {a :
285285
Equiv.Set.insert H ⟨b, Or.inr b.2⟩ = Sum.inl b :=
286286
(Equiv.Set.insert H).apply_eq_iff_eq_symm_apply.2 rfl
287287

288-
/-- If `s : Set α` is a set with decidable membership, then `s ⊕ sᶜ` is equivalent to `α`. -/
288+
/-- If `s : Set α` is a set with decidable membership, then `s ⊕ sᶜ` is equivalent to `α`.
289+
290+
See also `Equiv.sumCompl`. -/
289291
protected def sumCompl {α} (s : Set α) [DecidablePred (· ∈ s)] : s ⊕ (sᶜ : Set α) ≃ α :=
290-
calc
291-
s ⊕ (sᶜ : Set α) ≃ ↥(s ∪ sᶜ) := (Equiv.Set.union disjoint_compl_right).symm
292-
_ ≃ @univ α := Equiv.setCongr (by simp)
293-
_ ≃ α := Equiv.Set.univ _
292+
Equiv.sumCompl (· ∈ s)
294293

295294
@[simp]
296295
theorem sumCompl_apply_inl {α : Type u} (s : Set α) [DecidablePred (· ∈ s)] (x : s) :
@@ -303,25 +302,25 @@ theorem sumCompl_apply_inr {α : Type u} (s : Set α) [DecidablePred (· ∈ s)]
303302
rfl
304303

305304
theorem sumCompl_symm_apply_of_mem {α : Type u} {s : Set α} [DecidablePred (· ∈ s)] {x : α}
306-
(hx : x ∈ s) : (Equiv.Set.sumCompl s).symm x = Sum.inl ⟨x, hx⟩ := by
307-
simp [Equiv.Set.sumCompl, Equiv.Set.univ, union_apply_left, hx]
305+
(hx : x ∈ s) : (Equiv.Set.sumCompl s).symm x = Sum.inl ⟨x, hx⟩ :=
306+
sumCompl_symm_apply_of_pos hx
308307

309308
theorem sumCompl_symm_apply_of_notMem {α : Type u} {s : Set α} [DecidablePred (· ∈ s)] {x : α}
310-
(hx : x ∉ s) : (Equiv.Set.sumCompl s).symm x = Sum.inr ⟨x, hx⟩ := by
311-
simp [Equiv.Set.sumCompl, Equiv.Set.univ, union_apply_right, hx]
309+
(hx : x ∉ s) : (Equiv.Set.sumCompl s).symm x = Sum.inr ⟨x, hx⟩ :=
310+
sumCompl_symm_apply_of_neg hx
312311

313312
@[deprecated (since := "2025-05-23")]
314313
alias sumCompl_symm_apply_of_not_mem := sumCompl_symm_apply_of_notMem
315314

316315
@[simp]
317-
theorem sumCompl_symm_apply {α : Type*} {s : Set α} [DecidablePred (· ∈ s)] {x : s} :
316+
theorem sumCompl_symm_apply {α : Type*} {s : Set α} [DecidablePred (· ∈ s)] (x : s) :
318317
(Equiv.Set.sumCompl s).symm x = Sum.inl x :=
319-
Set.sumCompl_symm_apply_of_mem x.2
318+
sumCompl_symm_apply_pos x
320319

321320
@[simp]
322321
theorem sumCompl_symm_apply_compl {α : Type*} {s : Set α} [DecidablePred (· ∈ s)]
323-
{x : (sᶜ : Set α)} : (Equiv.Set.sumCompl s).symm x = Sum.inr x :=
324-
Set.sumCompl_symm_apply_of_notMem x.2
322+
(x : (sᶜ : Set α)) : (Equiv.Set.sumCompl s).symm x = Sum.inr x :=
323+
sumCompl_symm_apply_neg x
325324

326325
/-- `sumDiffSubset s t` is the natural equivalence between
327326
`s ⊕ (t \ s)` and `t`, where `s` and `t` are two sets. -/

Mathlib/Logic/Equiv/Sum.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ the sum of the two subtypes `{a // p a}` and its complement `{a // ¬ p a}`
252252
is naturally equivalent to `α`.
253253
254254
See `subtypeOrEquiv` for sum types over subtypes `{x // p x}` and `{x // q x}`
255-
that are not necessarily `IsCompl p q`. -/
255+
that are not necessarily `IsCompl p q`. See also `Equiv.Set.sumCompl` for a version on sets. -/
256256
def sumCompl {α : Type*} (p : α → Prop) [DecidablePred p] :
257257
{ a // p a } ⊕ { a // ¬p a } ≃ α where
258258
toFun := Sum.elim Subtype.val Subtype.val

0 commit comments

Comments
 (0)