Skip to content

Commit

Permalink
chore: classify "simp can prove" porting notes (#11550)
Browse files Browse the repository at this point in the history
Classifies by adding issue number #10618 to porting notes claiming "`simp` can prove it".
  • Loading branch information
pitmonticone committed Mar 21, 2024
1 parent bf26b9c commit 5befdcb
Show file tree
Hide file tree
Showing 26 changed files with 80 additions and 78 deletions.
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Invertible/Basic.lean
Expand Up @@ -212,7 +212,7 @@ def invertibleDiv (a b : α) [Invertible a] [Invertible b] : Invertible (a / b)
⟨b / a, by simp [← mul_div_assoc], by simp [← mul_div_assoc]⟩
#align invertible_div invertibleDiv

-- Porting note (#11119): removed `simp` attribute as `simp` can prove it
-- Porting note (#10618): removed `simp` attribute as `simp` can prove it
theorem invOf_div (a b : α) [Invertible a] [Invertible b] [Invertible (a / b)] :
⅟ (a / b) = b / a :=
invOf_eq_right_inv (by simp [← mul_div_assoc])
Expand Down
8 changes: 4 additions & 4 deletions Mathlib/Algebra/Order/AbsoluteValue.lean
Expand Up @@ -109,7 +109,7 @@ protected theorem add_le (x y : R) : abv (x + y) ≤ abv x + abv y :=
abv.add_le' x y
#align absolute_value.add_le AbsoluteValue.add_le

-- Porting note: was `@[simp]` but `simp` can prove it
-- Porting note (#10618): was `@[simp]` but `simp` can prove it
protected theorem map_mul (x y : R) : abv (x * y) = abv x * abv y :=
abv.map_mul' x y
#align absolute_value.map_mul AbsoluteValue.map_mul
Expand All @@ -135,7 +135,7 @@ theorem map_one_of_isLeftRegular (h : IsLeftRegular (abv 1)) : abv 1 = 1 :=
h <| by simp [← abv.map_mul]
#align absolute_value.map_one_of_is_regular AbsoluteValue.map_one_of_isLeftRegular

-- Porting note: was `@[simp]` but `simp` can prove it
-- Porting note (#10618): was `@[simp]` but `simp` can prove it
protected theorem map_zero : abv 0 = 0 :=
abv.eq_zero.2 rfl
#align absolute_value.map_zero AbsoluteValue.map_zero
Expand Down Expand Up @@ -170,7 +170,7 @@ section IsDomain
variable {R S : Type*} [Semiring R] [OrderedRing S] (abv : AbsoluteValue R S)
variable [IsDomain S] [Nontrivial R]

-- Porting note: was `@[simp]` but `simp` can prove it
-- Porting note (#10618): was `@[simp]` but `simp` can prove it
protected theorem map_one : abv 1 = 1 :=
abv.map_one_of_isLeftRegular (isRegular_of_ne_zero <| abv.ne_zero one_ne_zero).left
#align absolute_value.map_one AbsoluteValue.map_one
Expand Down Expand Up @@ -200,7 +200,7 @@ theorem coe_toMonoidHom : ⇑abv.toMonoidHom = abv :=
rfl
#align absolute_value.coe_to_monoid_hom AbsoluteValue.coe_toMonoidHom

-- Porting note: was `@[simp]` but `simp` can prove it
-- Porting note (#10618): was `@[simp]` but `simp` can prove it
protected theorem map_pow (a : R) (n : ℕ) : abv (a ^ n) = abv a ^ n :=
abv.toMonoidHom.map_pow a n
#align absolute_value.map_pow AbsoluteValue.map_pow
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Ring/Commute.lean
Expand Up @@ -113,13 +113,13 @@ section

variable [MulOneClass R] [HasDistribNeg R] {a : R}

-- Porting note: no longer needs to be `@[simp]` since `simp` can prove it.
-- Porting note (#10618): no longer needs to be `@[simp]` since `simp` can prove it.
-- @[simp]
theorem neg_one_right (a : R) : Commute a (-1) :=
SemiconjBy.neg_one_right a
#align commute.neg_one_right Commute.neg_one_right

-- Porting note: no longer needs to be `@[simp]` since `simp` can prove it.
-- Porting note (#10618): no longer needs to be `@[simp]` since `simp` can prove it.
-- @[simp]
theorem neg_one_left (a : R) : Commute (-1) a :=
SemiconjBy.neg_one_left a
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Tropical/Basic.lean
Expand Up @@ -343,7 +343,7 @@ theorem add_eq_right_iff {x y : Tropical R} : x + y = y ↔ y ≤ x := by
rw [trop_add_def, trop_eq_iff_eq_untrop, ← untrop_le_iff, min_eq_right_iff]
#align tropical.add_eq_right_iff Tropical.add_eq_right_iff

-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem add_self (x : Tropical R) : x + x = x :=
untrop_injective (min_eq_right le_rfl)
#align tropical.add_self Tropical.add_self
Expand Down Expand Up @@ -577,7 +577,7 @@ theorem succ_nsmul {R} [LinearOrder R] [OrderTop R] (x : Tropical R) (n : ℕ) :
-- Requires `zero_eq_bot` to be true
-- lemma add_eq_zero_iff {a b : tropical R} :
-- a + b = 1 ↔ a = 1 ∨ b = 1 := sorry
-- Porting note: removing @[simp], `simp` can prove it
-- Porting note (#10618): removing @[simp], `simp` can prove it
theorem mul_eq_zero_iff {R : Type*} [LinearOrderedAddCommMonoid R] {a b : Tropical (WithTop R)} :
a * b = 0 ↔ a = 0 ∨ b = 0 := by simp [← untrop_inj_iff, WithTop.add_eq_top]
#align tropical.mul_eq_zero_iff Tropical.mul_eq_zero_iff
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Data/Fin/Basic.lean
Expand Up @@ -544,12 +544,12 @@ instance addCommSemigroup (n : ℕ) : AddCommSemigroup (Fin n) where
add_comm := by simp [ext_iff, add_def, add_comm]
#align fin.add_comm_semigroup Fin.addCommSemigroup

-- Porting note: removing `simp`, `simp` can prove it with AddCommMonoid instance
-- Porting note (#10618): removing `simp`, `simp` can prove it with AddCommMonoid instance
protected theorem add_zero [NeZero n] (k : Fin n) : k + 0 = k := by
simp only [add_def, val_zero', add_zero, mod_eq_of_lt (is_lt k)]
#align fin.add_zero Fin.add_zero

-- Porting note: removing `simp`, `simp` can prove it with AddCommMonoid instance
-- Porting note (#10618): removing `simp`, `simp` can prove it with AddCommMonoid instance
protected theorem zero_add [NeZero n] (k : Fin n) : 0 + k = k := by
simp [ext_iff, add_def, mod_eq_of_lt (is_lt k)]
#align fin.zero_add Fin.zero_add
Expand Down
10 changes: 5 additions & 5 deletions Mathlib/Data/IsROrC/Basic.lean
Expand Up @@ -181,7 +181,7 @@ theorem ofReal_inj {z w : ℝ} : (z : K) = (w : K) ↔ z = w :=
#align is_R_or_C.of_real_inj IsROrC.ofReal_inj

set_option linter.deprecated false in
@[deprecated, isROrC_simps] -- porting note (#10618): was `simp` but `simp` can prove it
@[deprecated, isROrC_simps] -- Porting note (#10618): was `simp` but `simp` can prove it
theorem bit0_re (z : K) : re (bit0 z) = bit0 (re z) :=
map_bit0 _ _
#align is_R_or_C.bit0_re IsROrC.bit0_re
Expand All @@ -192,7 +192,7 @@ theorem bit1_re (z : K) : re (bit1 z) = bit1 (re z) := by simp only [bit1, map_a
#align is_R_or_C.bit1_re IsROrC.bit1_re

set_option linter.deprecated false in
@[deprecated, isROrC_simps] -- porting note (#10618): was `simp` but `simp` can prove it
@[deprecated, isROrC_simps] -- Porting note (#10618): was `simp` but `simp` can prove it
theorem bit0_im (z : K) : im (bit0 z) = bit0 (im z) :=
map_bit0 _ _
#align is_R_or_C.bit0_im IsROrC.bit0_im
Expand Down Expand Up @@ -369,18 +369,18 @@ theorem conj_ofReal (r : ℝ) : conj (r : K) = (r : K) := by
#align is_R_or_C.conj_of_real IsROrC.conj_ofReal

set_option linter.deprecated false in
@[deprecated, isROrC_simps] -- porting note (#10618): was `simp` but `simp` can prove it
@[deprecated, isROrC_simps] -- Porting note (#10618): was `simp` but `simp` can prove it
theorem conj_bit0 (z : K) : conj (bit0 z) = bit0 (conj z) :=
map_bit0 _ _
#align is_R_or_C.conj_bit0 IsROrC.conj_bit0

set_option linter.deprecated false in
@[deprecated, isROrC_simps] -- porting note (#10618): was `simp` but `simp` can prove it
@[deprecated, isROrC_simps] -- Porting note (#10618): was `simp` but `simp` can prove it
theorem conj_bit1 (z : K) : conj (bit1 z) = bit1 (conj z) :=
map_bit1 _ _
#align is_R_or_C.conj_bit1 IsROrC.conj_bit1

@[isROrC_simps] -- Porting note: was a `simp` but `simp` can prove it
@[isROrC_simps] -- Porting note (#10618): was a `simp` but `simp` can prove it
theorem conj_neg_I : conj (-I) = (I : K) := by rw [map_neg, conj_I, neg_neg]
set_option linter.uppercaseLean3 false in
#align is_R_or_C.conj_neg_I IsROrC.conj_neg_I
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Data/List/Sigma.lean
Expand Up @@ -390,7 +390,7 @@ def kerase (a : α) : List (Sigma β) → List (Sigma β) :=
eraseP fun s => a = s.1
#align list.kerase List.kerase

-- Porting note: removing @[simp], `simp` can prove it
-- Porting note (#10618): removing @[simp], `simp` can prove it
theorem kerase_nil {a} : @kerase _ β _ a [] = [] :=
rfl
#align list.kerase_nil List.kerase_nil
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Data/Multiset/Range.lean
Expand Up @@ -49,7 +49,7 @@ theorem mem_range {m n : ℕ} : m ∈ range n ↔ m < n :=
List.mem_range
#align multiset.mem_range Multiset.mem_range

-- Porting note: removing @[simp], `simp` can prove it
-- Porting note (#10618): removing @[simp], `simp` can prove it
theorem not_mem_range_self {n : ℕ} : n ∉ range n :=
List.not_mem_range_self
#align multiset.not_mem_range_self Multiset.not_mem_range_self
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Data/Nat/Order/Basic.lean
Expand Up @@ -500,7 +500,7 @@ section Find

variable {p q : ℕ → Prop} [DecidablePred p] [DecidablePred q]

-- Porting note: removing `simp` attribute as `simp` can prove it
-- Porting note (#10618): removing `simp` attribute as `simp` can prove it
theorem find_pos (h : ∃ n : ℕ, p n) : 0 < Nat.find h ↔ ¬p 0 := by
rw [pos_iff_ne_zero, Ne, Nat.find_eq_zero]
#align nat.find_pos Nat.find_pos
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Data/Option/NAry.lean
Expand Up @@ -50,7 +50,7 @@ theorem map₂_def {α β γ : Type u} (f : α → β → γ) (a : Option α) (b
by cases a <;> rfl
#align option.map₂_def Option.map₂_def

-- Porting note: In Lean3, was `@[simp]` but now `simp` can prove it
-- Porting note (#10618): In Lean3, was `@[simp]` but now `simp` can prove it
theorem map₂_some_some (f : α → β → γ) (a : α) (b : β) : map₂ f (some a) (some b) = f a b := rfl
#align option.map₂_some_some Option.map₂_some_some

Expand Down
22 changes: 11 additions & 11 deletions Mathlib/Data/Polynomial/Derivative.lean
Expand Up @@ -73,7 +73,7 @@ theorem coeff_derivative (p : R[X]) (n : ℕ) :
simp [h]
#align polynomial.coeff_derivative Polynomial.coeff_derivative

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_zero : derivative (0 : R[X]) = 0 :=
derivative.map_zero
#align polynomial.derivative_zero Polynomial.derivative_zero
Expand Down Expand Up @@ -114,7 +114,7 @@ theorem derivative_X_pow (n : ℕ) : derivative (X ^ n : R[X]) = C (n : R) * X ^
set_option linter.uppercaseLean3 false in
#align polynomial.derivative_X_pow Polynomial.derivative_X_pow

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_X_sq : derivative (X ^ 2 : R[X]) = C 2 * X := by
rw [derivative_X_pow, Nat.cast_two, pow_one]
set_option linter.uppercaseLean3 false in
Expand All @@ -141,33 +141,33 @@ theorem derivative_one : derivative (1 : R[X]) = 0 :=
#align polynomial.derivative_one Polynomial.derivative_one

set_option linter.deprecated false in
-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_bit0 {a : R[X]} : derivative (bit0 a) = bit0 (derivative a) := by simp [bit0]
#align polynomial.derivative_bit0 Polynomial.derivative_bit0

set_option linter.deprecated false in
-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_bit1 {a : R[X]} : derivative (bit1 a) = bit0 (derivative a) := by simp [bit1]
#align polynomial.derivative_bit1 Polynomial.derivative_bit1

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_add {f g : R[X]} : derivative (f + g) = derivative f + derivative g :=
derivative.map_add f g
#align polynomial.derivative_add Polynomial.derivative_add

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_X_add_C (c : R) : derivative (X + C c) = 1 := by
rw [derivative_add, derivative_X, derivative_C, add_zero]
set_option linter.uppercaseLean3 false in
#align polynomial.derivative_X_add_C Polynomial.derivative_X_add_C

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_sum {s : Finset ι} {f : ι → R[X]} :
derivative (∑ b in s, f b) = ∑ b in s, derivative (f b) :=
map_sum ..
#align polynomial.derivative_sum Polynomial.derivative_sum

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_smul {S : Type*} [Monoid S] [DistribMulAction S R] [IsScalarTower S R R] (s : S)
(p : R[X]) : derivative (s • p) = s • derivative p :=
derivative.map_smul_of_tower s p
Expand Down Expand Up @@ -590,7 +590,7 @@ section Ring

variable [Ring R]

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_neg (f : R[X]) : derivative (-f) = -derivative f :=
LinearMap.map_neg derivative f
#align polynomial.derivative_neg Polynomial.derivative_neg
Expand All @@ -600,12 +600,12 @@ theorem iterate_derivative_neg {f : R[X]} {k : ℕ} : derivative^[k] (-f) = -der
(@derivative R _).toAddMonoidHom.iterate_map_neg _ _
#align polynomial.iterate_derivative_neg Polynomial.iterate_derivative_neg

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_sub {f g : R[X]} : derivative (f - g) = derivative f - derivative g :=
LinearMap.map_sub derivative f g
#align polynomial.derivative_sub Polynomial.derivative_sub

-- Porting note: removed `simp`: `simp` can prove it.
-- Porting note (#10618): removed `simp`: `simp` can prove it.
theorem derivative_X_sub_C (c : R) : derivative (X - C c) = 1 := by
rw [derivative_sub, derivative_X, derivative_C, sub_zero]
set_option linter.uppercaseLean3 false in
Expand Down
22 changes: 11 additions & 11 deletions Mathlib/Data/Set/Basic.lean
Expand Up @@ -162,12 +162,12 @@ theorem Set.coe_setOf (p : α → Prop) : ↥{ x | p x } = { x // p x } :=
rfl
#align set.coe_set_of Set.coe_setOf

-- Porting note: removed `simp` because `simp` can prove it
-- Porting note (#10618): removed `simp` because `simp` can prove it
theorem SetCoe.forall {s : Set α} {p : s → Prop} : (∀ x : s, p x) ↔ ∀ (x) (h : x ∈ s), p ⟨x, h⟩ :=
Subtype.forall
#align set_coe.forall SetCoe.forall

-- Porting note: removed `simp` because `simp` can prove it
-- Porting note (#10618): removed `simp` because `simp` can prove it
theorem SetCoe.exists {s : Set α} {p : s → Prop} :
(∃ x : s, p x) ↔ ∃ (x : _) (h : x ∈ s), p ⟨x, h⟩ :=
Subtype.exists
Expand Down Expand Up @@ -407,7 +407,7 @@ theorem not_mem_empty (x : α) : ¬x ∈ (∅ : Set α) :=
id
#align set.not_mem_empty Set.not_mem_empty

-- Porting note: removed `simp` because `simp` can prove it
-- Porting note (#10618): removed `simp` because `simp` can prove it
theorem not_not_mem : ¬a ∉ s ↔ a ∈ s :=
not_not
#align set.not_not_mem Set.not_not_mem
Expand Down Expand Up @@ -1169,7 +1169,7 @@ theorem insert_comm (a b : α) (s : Set α) : insert a (insert b s) = insert b (
ext fun _ => or_left_comm
#align set.insert_comm Set.insert_comm

-- Porting note: removing `simp` attribute because `simp` can prove it
-- Porting note (#10618): removing `simp` attribute because `simp` can prove it
theorem insert_idem (a : α) (s : Set α) : insert a (insert a s) = insert a s :=
insert_eq_of_mem <| mem_insert _ _
#align set.insert_idem Set.insert_idem
Expand Down Expand Up @@ -1291,7 +1291,7 @@ theorem singleton_ne_empty (a : α) : ({a} : Set α) ≠ ∅ :=
(singleton_nonempty _).ne_empty
#align set.singleton_ne_empty Set.singleton_ne_empty

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem empty_ssubset_singleton : (∅ : Set α) ⊂ {a} :=
(singleton_nonempty _).empty_ssubset
#align set.empty_ssubset_singleton Set.empty_ssubset_singleton
Expand Down Expand Up @@ -1364,7 +1364,7 @@ theorem default_coe_singleton (x : α) : (default : ({x} : Set α)) = ⟨x, rfl
/-! ### Lemmas about pairs -/


--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem pair_eq_singleton (a : α) : ({a, a} : Set α) = {a} :=
union_self _
#align set.pair_eq_singleton Set.pair_eq_singleton
Expand Down Expand Up @@ -1426,22 +1426,22 @@ theorem sep_eq_empty_iff_mem_false : { x ∈ s | p x } = ∅ ↔ ∀ x ∈ s, ¬
simp_rw [ext_iff, mem_sep_iff, mem_empty_iff_false, iff_false_iff, not_and]
#align set.sep_eq_empty_iff_mem_false Set.sep_eq_empty_iff_mem_false

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem sep_true : { x ∈ s | True } = s :=
inter_univ s
#align set.sep_true Set.sep_true

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem sep_false : { x ∈ s | False } = ∅ :=
inter_empty s
#align set.sep_false Set.sep_false

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem sep_empty (p : α → Prop) : { x ∈ (∅ : Set α) | p x } = ∅ :=
empty_inter p
#align set.sep_empty Set.sep_empty

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem sep_univ : { x ∈ (univ : Set α) | p x } = { x | p x } :=
univ_inter p
#align set.sep_univ Set.sep_univ
Expand Down Expand Up @@ -2055,7 +2055,7 @@ theorem insert_diff_singleton_comm (hab : a ≠ b) (s : Set α) :
diff_singleton_eq_self (mem_singleton_iff.not.2 hab.symm)]
#align set.insert_diff_singleton_comm Set.insert_diff_singleton_comm

--Porting note (#11119): removed `simp` attribute because `simp` can prove it
--Porting note (#10618): removed `simp` attribute because `simp` can prove it
theorem diff_self {s : Set α} : s \ s = ∅ :=
sdiff_self
#align set.diff_self Set.diff_self
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Data/Set/Finite.lean
Expand Up @@ -302,8 +302,8 @@ protected theorem toFinset_image [DecidableEq β] (f : α → β) (hs : s.Finite
simp
#align set.finite.to_finset_image Set.Finite.toFinset_image

-- Porting note: now `simp` can prove it but it needs the `fintypeRange` instance from the next
-- section
-- Porting note (#10618): now `simp` can prove it but it needs the `fintypeRange` instance
-- from the next section
protected theorem toFinset_range [DecidableEq α] [Fintype β] (f : β → α) (h : (range f).Finite) :
h.toFinset = Finset.univ.image f := by
ext
Expand Down
10 changes: 5 additions & 5 deletions Mathlib/Data/Set/Lattice.lean
Expand Up @@ -273,7 +273,7 @@ theorem subset_iInter_iff {s : Set α} {t : ι → Set α} : (s ⊆ ⋂ i, t i)
#align set.subset_Inter_iff Set.subset_iInter_iff

/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem subset_iInter₂_iff {s : Set α} {t : ∀ i, κ i → Set α} :
(s ⊆ ⋂ (i) (j), t i j) ↔ ∀ i j, s ⊆ t i j := by simp_rw [subset_iInter_iff]
#align set.subset_Inter₂_iff Set.subset_iInter₂_iff
Expand Down Expand Up @@ -685,7 +685,7 @@ theorem nonempty_iUnion : (⋃ i, s i).Nonempty ↔ ∃ i, (s i).Nonempty := by
simp [nonempty_iff_ne_empty]
#align set.nonempty_Union Set.nonempty_iUnion

-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem nonempty_biUnion {t : Set α} {s : α → Set β} :
(⋃ i ∈ t, s i).Nonempty ↔ ∃ i ∈ t, (s i).Nonempty := by simp
#align set.nonempty_bUnion Set.nonempty_biUnion
Expand Down Expand Up @@ -1226,7 +1226,7 @@ theorem nonempty_iInter {f : ι → Set α} : (⋂ i, f i).Nonempty ↔ ∃ x,

/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-- classical
-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem nonempty_iInter₂ {s : ∀ i, κ i → Set α} :
(⋂ (i) (j), s i j).Nonempty ↔ ∃ a, ∀ i j, a ∈ s i j := by
simp
Expand Down Expand Up @@ -2077,14 +2077,14 @@ theorem disjoint_iUnion_right {ι : Sort*} {s : ι → Set α} :
#align set.disjoint_Union_right Set.disjoint_iUnion_right

/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem disjoint_iUnion₂_left {s : ∀ i, κ i → Set α} {t : Set α} :
Disjoint (⋃ (i) (j), s i j) t ↔ ∀ i j, Disjoint (s i j) t :=
iSup₂_disjoint_iff
#align set.disjoint_Union₂_left Set.disjoint_iUnion₂_left

/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-- Porting note: removing `simp`. `simp` can prove it
-- Porting note (#10618): removing `simp`. `simp` can prove it
theorem disjoint_iUnion₂_right {s : Set α} {t : ∀ i, κ i → Set α} :
Disjoint s (⋃ (i) (j), t i j) ↔ ∀ i j, Disjoint s (t i j) :=
disjoint_iSup₂_iff
Expand Down

0 comments on commit 5befdcb

Please sign in to comment.