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

Commit 98bbc35

Browse files
vihdzpYaelDillies
andcommitted
feat(set_theory/zfc/ordinal): more lemmas on transitive sets (#18307)
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
1 parent a7e36e4 commit 98bbc35

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

src/set_theory/zfc/basic.lean

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,19 @@ by { rw ←mem_to_set, simp }
720720
@[simp] theorem mem_diff {x y z : Set.{u}} : z ∈ x \ y ↔ z ∈ x ∧ z ∉ y :=
721721
@@mem_sep (λ z : Set.{u}, z ∉ y)
722722

723+
@[simp] theorem sUnion_pair {x y : Set.{u}} : ⋃₀ ({x, y} : Set.{u}) = x ∪ y :=
724+
begin
725+
ext,
726+
simp_rw [mem_union, mem_sUnion, mem_pair],
727+
split,
728+
{ rintro ⟨w, (rfl | rfl), hw⟩,
729+
{ exact or.inl hw },
730+
{ exact or.inr hw } },
731+
{ rintro (hz | hz),
732+
{ exact ⟨x, or.inl rfl, hz⟩ },
733+
{ exact ⟨y, or.inr rfl, hz⟩ } }
734+
end
735+
723736
theorem mem_wf : @well_founded Set (∈) :=
724737
well_founded_lift₂_iff.mpr pSet.mem_wf
725738

src/set_theory/zfc/ordinal.lean

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ theorem is_transitive.sUnion' (H : ∀ y ∈ x, is_transitive y) : (⋃₀ x).is
6060
exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
6161
end
6262

63+
protected theorem is_transitive.union (hx : x.is_transitive) (hy : y.is_transitive) :
64+
(x ∪ y).is_transitive :=
65+
begin
66+
rw ←sUnion_pair,
67+
apply is_transitive.sUnion' (λ z, _),
68+
rw mem_pair,
69+
rintro (rfl | rfl),
70+
assumption'
71+
end
72+
73+
protected theorem is_transitive.powerset (h : x.is_transitive) : (powerset x).is_transitive :=
74+
λ y hy z hz, by { rw mem_powerset at ⊢ hy, exact h.subset_of_mem (hy hz) }
75+
6376
theorem is_transitive_iff_sUnion_subset : x.is_transitive ↔ ⋃₀ x ⊆ x :=
6477
⟨λ h y hy, by { rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩, exact h.mem_trans hz' hz },
6578
λ H y hy z hz, H $ mem_sUnion_of_mem hz hy⟩

0 commit comments

Comments
 (0)