Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit fd453cf

Browse files
committed
chore(data/set/basic): add some simp attrs (#9074)
Also add `set.pairwise_on_union`.
1 parent 463e753 commit fd453cf

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

src/data/set/basic.lean

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ iff.rfl
783783
theorem eq_sep_of_subset {s t : set α} (h : s ⊆ t) : s = {x ∈ t | x ∈ s} :=
784784
(inter_eq_self_of_subset_right h).symm
785785

786-
theorem sep_subset (s : set α) (p : α → Prop) : {x ∈ s | p x} ⊆ s := λ x, and.left
786+
@[simp] theorem sep_subset (s : set α) (p : α → Prop) : {x ∈ s | p x} ⊆ s := λ x, and.left
787787

788788
theorem forall_not_of_sep_empty {s : set α} {p : α → Prop} (H : {x ∈ s | p x} = ∅)
789789
(x) : x ∈ s → ¬ p x := not_and.1 (eq_empty_iff_forall_not_mem.1 H x : _)
@@ -1050,16 +1050,16 @@ sup_sdiff_self_right
10501050
@[simp] theorem diff_union_self {s t : set α} : (s \ t) ∪ t = s ∪ t :=
10511051
sup_sdiff_self_left
10521052

1053-
theorem diff_inter_self {a b : set α} : (b \ a) ∩ a = ∅ :=
1053+
@[simp] theorem diff_inter_self {a b : set α} : (b \ a) ∩ a = ∅ :=
10541054
inf_sdiff_self_left
10551055

1056-
theorem diff_inter_self_eq_diff {s t : set α} : s \ (t ∩ s) = s \ t :=
1056+
@[simp] theorem diff_inter_self_eq_diff {s t : set α} : s \ (t ∩ s) = s \ t :=
10571057
sdiff_inf_self_right
10581058

1059-
theorem diff_self_inter {s t : set α} : s \ (s ∩ t) = s \ t :=
1059+
@[simp] theorem diff_self_inter {s t : set α} : s \ (s ∩ t) = s \ t :=
10601060
sdiff_inf_self_left
10611061

1062-
theorem diff_eq_self {s t : set α} : s \ t = s ↔ t ∩ s ⊆ ∅ :=
1062+
@[simp] theorem diff_eq_self {s t : set α} : s \ t = s ↔ t ∩ s ⊆ ∅ :=
10631063
show s \ t = s ↔ t ⊓ s ≤ ⊥, from sdiff_eq_self_iff_disjoint
10641064

10651065
@[simp] theorem diff_singleton_eq_self {a : α} {s : set α} (h : a ∉ s) : s \ {a} = s :=
@@ -1963,14 +1963,25 @@ lemma pairwise_on_eq_iff_exists_eq [nonempty β] (s : set α) (f : α → β) :
19631963
(pairwise_on s (λ x y, f x = f y)) ↔ ∃ z, ∀ x ∈ s, f x = z :=
19641964
pairwise_on_iff_exists_forall s f
19651965

1966-
lemma pairwise_on_insert {α} {s : set α} {a : α} {r : α → α → Prop} :
1967-
(insert a s).pairwise_on r ↔ s.pairwise_on r ∧ ∀ b ∈ s, a ≠ b → r a b ∧ r b a :=
1966+
lemma pairwise_on_union {α} {s t : set α} {r : α → α → Prop} :
1967+
(s ∪ t).pairwise_on r ↔
1968+
s.pairwise_on r ∧ t.pairwise_on r ∧ ∀ (a ∈ s) (b ∈ t), a ≠ b → r a b ∧ r b a :=
19681969
begin
1969-
simp only [pairwise_on, ball_insert_iff, forall_and_distrib, true_and, forall_false_left,
1970-
eq_self_iff_true, not_true, ne.def, @eq_comm _ a],
1971-
exact ⟨λ H, ⟨H.2.2, H.2.1, H.1⟩, λ H, ⟨H.2.2, H.2.1, H.1⟩⟩
1970+
simp only [pairwise_on, mem_union_eq, or_imp_distrib, forall_and_distrib],
1971+
exact ⟨λ H, ⟨H.1.1, H.2.2, H.2.1, λ x hx y hy hne, H.1.2 y hy x hx hne.symm⟩,
1972+
λ H, ⟨⟨H.1, λ x hx y hy hne, H.2.2.2 y hy x hx hne.symm⟩, H.2.2.1, H.2.1⟩⟩
19721973
end
19731974

1975+
lemma pairwise_on_union_of_symmetric {α} {s t : set α} {r : α → α → Prop} (hr : symmetric r) :
1976+
(s ∪ t).pairwise_on r ↔
1977+
s.pairwise_on r ∧ t.pairwise_on r ∧ ∀ (a ∈ s) (b ∈ t), a ≠ b → r a b :=
1978+
pairwise_on_union.trans $ by simp only [hr.iff, and_self]
1979+
1980+
lemma pairwise_on_insert {α} {s : set α} {a : α} {r : α → α → Prop} :
1981+
(insert a s).pairwise_on r ↔ s.pairwise_on r ∧ ∀ b ∈ s, a ≠ b → r a b ∧ r b a :=
1982+
by simp only [insert_eq, pairwise_on_union, pairwise_on_singleton, true_and,
1983+
mem_singleton_iff, forall_eq]
1984+
19741985
lemma pairwise_on_insert_of_symmetric {α} {s : set α} {a : α} {r : α → α → Prop}
19751986
(hr : symmetric r) :
19761987
(insert a s).pairwise_on r ↔ s.pairwise_on r ∧ ∀ b ∈ s, a ≠ b → r a b :=

0 commit comments

Comments
 (0)