set_theory.zfc.ordinalMathlib.SetTheory.ZFC.Ordinal

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 -/
-import SetTheory.Zfc.Basic
+import SetTheory.ZFC.Basic
 
 #align_import set_theory.zfc.ordinal from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 -/
-import Mathbin.SetTheory.Zfc.Basic
+import SetTheory.Zfc.Basic
 
 #align_import set_theory.zfc.ordinal from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
 
Diff
@@ -62,7 +62,7 @@ theorem isTransitive_iff_mem_trans : z.IsTransitive ↔ ∀ {x y : ZFSet}, x ∈
 #align Set.is_transitive_iff_mem_trans ZFSet.isTransitive_iff_mem_trans
 -/
 
-alias is_transitive_iff_mem_trans ↔ is_transitive.mem_trans _
+alias ⟨is_transitive.mem_trans, _⟩ := is_transitive_iff_mem_trans
 #align Set.is_transitive.mem_trans ZFSet.IsTransitive.mem_trans
 
 #print ZFSet.IsTransitive.inter /-
@@ -115,7 +115,7 @@ theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
 #align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_sUnion_subset
 -/
 
-alias is_transitive_iff_sUnion_subset ↔ is_transitive.sUnion_subset _
+alias ⟨is_transitive.sUnion_subset, _⟩ := is_transitive_iff_sUnion_subset
 #align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.sUnion_subset
 
 #print ZFSet.isTransitive_iff_subset_powerset /-
@@ -124,7 +124,7 @@ theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :
 #align Set.is_transitive_iff_subset_powerset ZFSet.isTransitive_iff_subset_powerset
 -/
 
-alias is_transitive_iff_subset_powerset ↔ is_transitive.subset_powerset _
+alias ⟨is_transitive.subset_powerset, _⟩ := is_transitive_iff_subset_powerset
 #align Set.is_transitive.subset_powerset ZFSet.IsTransitive.subset_powerset
 
 end ZFSet
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
-
-! This file was ported from Lean 3 source module set_theory.zfc.ordinal
-! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.SetTheory.Zfc.Basic
 
+#align_import set_theory.zfc.ordinal from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
+
 /-!
 # Von Neumann ordinals
 
Diff
@@ -70,7 +70,7 @@ alias is_transitive_iff_mem_trans ↔ is_transitive.mem_trans _
 
 #print ZFSet.IsTransitive.inter /-
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
-    (x ∩ y).IsTransitive := fun z hz w hw => by rw [mem_inter] at hz⊢;
+    (x ∩ y).IsTransitive := fun z hz w hw => by rw [mem_inter] at hz ⊢;
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
 #align Set.is_transitive.inter ZFSet.IsTransitive.inter
 -/
@@ -106,7 +106,7 @@ protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive)
 
 #print ZFSet.IsTransitive.powerset /-
 protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
-  fun y hy z hz => by rw [mem_powerset] at hy⊢; exact h.subset_of_mem (hy hz)
+  fun y hy z hz => by rw [mem_powerset] at hy ⊢; exact h.subset_of_mem (hy hz)
 #align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
 -/
 
Diff
@@ -70,9 +70,7 @@ alias is_transitive_iff_mem_trans ↔ is_transitive.mem_trans _
 
 #print ZFSet.IsTransitive.inter /-
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
-    (x ∩ y).IsTransitive := fun z hz w hw =>
-  by
-  rw [mem_inter] at hz⊢
+    (x ∩ y).IsTransitive := fun z hz w hw => by rw [mem_inter] at hz⊢;
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
 #align Set.is_transitive.inter ZFSet.IsTransitive.inter
 -/
@@ -108,18 +106,15 @@ protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive)
 
 #print ZFSet.IsTransitive.powerset /-
 protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
-  fun y hy z hz => by
-  rw [mem_powerset] at hy⊢
-  exact h.subset_of_mem (hy hz)
+  fun y hy z hz => by rw [mem_powerset] at hy⊢; exact h.subset_of_mem (hy hz)
 #align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 #print ZFSet.isTransitive_iff_sUnion_subset /-
 theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
-  ⟨fun h y hy => by
-    rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩
-    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
+  ⟨fun h y hy => by rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩; exact h.mem_trans hz' hz,
+    fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
 #align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_sUnion_subset
 -/
 
Diff
@@ -78,21 +78,21 @@ protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive)
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-#print ZFSet.IsTransitive.unionₛ /-
-protected theorem IsTransitive.unionₛ (h : x.IsTransitive) : (⋃₀ x).IsTransitive := fun y hy z hz =>
+#print ZFSet.IsTransitive.sUnion /-
+protected theorem IsTransitive.sUnion (h : x.IsTransitive) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem hz (h.mem_trans hw' hw)
-#align Set.is_transitive.sUnion ZFSet.IsTransitive.unionₛ
+#align Set.is_transitive.sUnion ZFSet.IsTransitive.sUnion
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-#print ZFSet.IsTransitive.unionₛ' /-
-theorem IsTransitive.unionₛ' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTransitive := fun y hy z hz =>
+#print ZFSet.IsTransitive.sUnion' /-
+theorem IsTransitive.sUnion' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
-#align Set.is_transitive.sUnion' ZFSet.IsTransitive.unionₛ'
+#align Set.is_transitive.sUnion' ZFSet.IsTransitive.sUnion'
 -/
 
 #print ZFSet.IsTransitive.union /-
@@ -115,16 +115,16 @@ protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTr
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-#print ZFSet.isTransitive_iff_unionₛ_subset /-
-theorem isTransitive_iff_unionₛ_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
+#print ZFSet.isTransitive_iff_sUnion_subset /-
+theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
   ⟨fun h y hy => by
     rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩
-    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_unionₛ_of_mem hz hy⟩
-#align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_unionₛ_subset
+    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
+#align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_sUnion_subset
 -/
 
 alias is_transitive_iff_sUnion_subset ↔ is_transitive.sUnion_subset _
-#align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.unionₛ_subset
+#align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.sUnion_subset
 
 #print ZFSet.isTransitive_iff_subset_powerset /-
 theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 
 ! This file was ported from Lean 3 source module set_theory.zfc.ordinal
-! leanprover-community/mathlib commit 98bbc3526516bca903bff09ea10c4206bf079e6b
+! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.SetTheory.Zfc.Basic
 /-!
 # Von Neumann ordinals
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file works towards the development of von Neumann ordinals, i.e. transitive sets, well-ordered
 under `∈`. We currently only have an initial development of transitive sets.
 
Diff
@@ -37,47 +37,62 @@ variable {x y z : ZFSet.{u}}
 
 namespace ZFSet
 
+#print ZFSet.IsTransitive /-
 /-- A transitive set is one where every element is a subset. -/
 def IsTransitive (x : ZFSet) : Prop :=
   ∀ y ∈ x, y ⊆ x
 #align Set.is_transitive ZFSet.IsTransitive
+-/
 
+#print ZFSet.empty_isTransitive /-
 @[simp]
 theorem empty_isTransitive : IsTransitive ∅ := fun y hy => (not_mem_empty y hy).elim
 #align Set.empty_is_transitive ZFSet.empty_isTransitive
+-/
 
+#print ZFSet.IsTransitive.subset_of_mem /-
 theorem IsTransitive.subset_of_mem (h : x.IsTransitive) : y ∈ x → y ⊆ x :=
   h y
 #align Set.is_transitive.subset_of_mem ZFSet.IsTransitive.subset_of_mem
+-/
 
+#print ZFSet.isTransitive_iff_mem_trans /-
 theorem isTransitive_iff_mem_trans : z.IsTransitive ↔ ∀ {x y : ZFSet}, x ∈ y → y ∈ z → x ∈ z :=
   ⟨fun h x y hx hy => h.subset_of_mem hy hx, fun H x hx y hy => H hy hx⟩
 #align Set.is_transitive_iff_mem_trans ZFSet.isTransitive_iff_mem_trans
+-/
 
 alias is_transitive_iff_mem_trans ↔ is_transitive.mem_trans _
 #align Set.is_transitive.mem_trans ZFSet.IsTransitive.mem_trans
 
+#print ZFSet.IsTransitive.inter /-
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∩ y).IsTransitive := fun z hz w hw =>
   by
   rw [mem_inter] at hz⊢
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
 #align Set.is_transitive.inter ZFSet.IsTransitive.inter
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print ZFSet.IsTransitive.unionₛ /-
 protected theorem IsTransitive.unionₛ (h : x.IsTransitive) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem hz (h.mem_trans hw' hw)
 #align Set.is_transitive.sUnion ZFSet.IsTransitive.unionₛ
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-theorem IsTransitive.sUnion' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTransitive := fun y hy z hz =>
+#print ZFSet.IsTransitive.unionₛ' /-
+theorem IsTransitive.unionₛ' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
-#align Set.is_transitive.sUnion' ZFSet.IsTransitive.sUnion'
+#align Set.is_transitive.sUnion' ZFSet.IsTransitive.unionₛ'
+-/
 
+#print ZFSet.IsTransitive.union /-
 protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∪ y).IsTransitive := by
   rw [← sUnion_pair]
@@ -86,26 +101,33 @@ protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive)
   rintro (rfl | rfl)
   assumption'
 #align Set.is_transitive.union ZFSet.IsTransitive.union
+-/
 
+#print ZFSet.IsTransitive.powerset /-
 protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
   fun y hy z hz => by
   rw [mem_powerset] at hy⊢
   exact h.subset_of_mem (hy hz)
 #align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print ZFSet.isTransitive_iff_unionₛ_subset /-
 theorem isTransitive_iff_unionₛ_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
   ⟨fun h y hy => by
     rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩
     exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_unionₛ_of_mem hz hy⟩
 #align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_unionₛ_subset
+-/
 
 alias is_transitive_iff_sUnion_subset ↔ is_transitive.sUnion_subset _
 #align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.unionₛ_subset
 
+#print ZFSet.isTransitive_iff_subset_powerset /-
 theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :=
   ⟨fun h y hy => mem_powerset.2 <| h.subset_of_mem hy, fun H y hy z hz => mem_powerset.1 (H hy) hz⟩
 #align Set.is_transitive_iff_subset_powerset ZFSet.isTransitive_iff_subset_powerset
+-/
 
 alias is_transitive_iff_subset_powerset ↔ is_transitive.subset_powerset _
 #align Set.is_transitive.subset_powerset ZFSet.IsTransitive.subset_powerset
Diff
@@ -33,50 +33,50 @@ Further development can be found on the branch `von_neumann_v2`.
 
 universe u
 
-variable {x y z : SetCat.{u}}
+variable {x y z : ZFSet.{u}}
 
-namespace SetCat
+namespace ZFSet
 
 /-- A transitive set is one where every element is a subset. -/
-def IsTransitive (x : SetCat) : Prop :=
+def IsTransitive (x : ZFSet) : Prop :=
   ∀ y ∈ x, y ⊆ x
-#align Set.is_transitive SetCat.IsTransitive
+#align Set.is_transitive ZFSet.IsTransitive
 
 @[simp]
 theorem empty_isTransitive : IsTransitive ∅ := fun y hy => (not_mem_empty y hy).elim
-#align Set.empty_is_transitive SetCat.empty_isTransitive
+#align Set.empty_is_transitive ZFSet.empty_isTransitive
 
 theorem IsTransitive.subset_of_mem (h : x.IsTransitive) : y ∈ x → y ⊆ x :=
   h y
-#align Set.is_transitive.subset_of_mem SetCat.IsTransitive.subset_of_mem
+#align Set.is_transitive.subset_of_mem ZFSet.IsTransitive.subset_of_mem
 
-theorem isTransitive_iff_mem_trans : z.IsTransitive ↔ ∀ {x y : SetCat}, x ∈ y → y ∈ z → x ∈ z :=
+theorem isTransitive_iff_mem_trans : z.IsTransitive ↔ ∀ {x y : ZFSet}, x ∈ y → y ∈ z → x ∈ z :=
   ⟨fun h x y hx hy => h.subset_of_mem hy hx, fun H x hx y hy => H hy hx⟩
-#align Set.is_transitive_iff_mem_trans SetCat.isTransitive_iff_mem_trans
+#align Set.is_transitive_iff_mem_trans ZFSet.isTransitive_iff_mem_trans
 
 alias is_transitive_iff_mem_trans ↔ is_transitive.mem_trans _
-#align Set.is_transitive.mem_trans SetCat.IsTransitive.mem_trans
+#align Set.is_transitive.mem_trans ZFSet.IsTransitive.mem_trans
 
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∩ y).IsTransitive := fun z hz w hw =>
   by
   rw [mem_inter] at hz⊢
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
-#align Set.is_transitive.inter SetCat.IsTransitive.inter
+#align Set.is_transitive.inter ZFSet.IsTransitive.inter
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-protected theorem IsTransitive.sUnion (h : x.IsTransitive) : (⋃₀ x).IsTransitive := fun y hy z hz =>
+protected theorem IsTransitive.unionₛ (h : x.IsTransitive) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem hz (h.mem_trans hw' hw)
-#align Set.is_transitive.sUnion SetCat.IsTransitive.sUnion
+#align Set.is_transitive.sUnion ZFSet.IsTransitive.unionₛ
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem IsTransitive.sUnion' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTransitive := fun y hy z hz =>
   by
   rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
   exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
-#align Set.is_transitive.sUnion' SetCat.IsTransitive.sUnion'
+#align Set.is_transitive.sUnion' ZFSet.IsTransitive.sUnion'
 
 protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∪ y).IsTransitive := by
@@ -85,30 +85,30 @@ protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive)
   rw [mem_pair]
   rintro (rfl | rfl)
   assumption'
-#align Set.is_transitive.union SetCat.IsTransitive.union
+#align Set.is_transitive.union ZFSet.IsTransitive.union
 
 protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
   fun y hy z hz => by
   rw [mem_powerset] at hy⊢
   exact h.subset_of_mem (hy hz)
-#align Set.is_transitive.powerset SetCat.IsTransitive.powerset
+#align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
+theorem isTransitive_iff_unionₛ_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
   ⟨fun h y hy => by
     rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩
-    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
-#align Set.is_transitive_iff_sUnion_subset SetCat.isTransitive_iff_sUnion_subset
+    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_unionₛ_of_mem hz hy⟩
+#align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_unionₛ_subset
 
 alias is_transitive_iff_sUnion_subset ↔ is_transitive.sUnion_subset _
-#align Set.is_transitive.sUnion_subset SetCat.IsTransitive.sUnion_subset
+#align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.unionₛ_subset
 
 theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :=
   ⟨fun h y hy => mem_powerset.2 <| h.subset_of_mem hy, fun H y hy z hz => mem_powerset.1 (H hy) hz⟩
-#align Set.is_transitive_iff_subset_powerset SetCat.isTransitive_iff_subset_powerset
+#align Set.is_transitive_iff_subset_powerset ZFSet.isTransitive_iff_subset_powerset
 
 alias is_transitive_iff_subset_powerset ↔ is_transitive.subset_powerset _
-#align Set.is_transitive.subset_powerset SetCat.IsTransitive.subset_powerset
+#align Set.is_transitive.subset_powerset ZFSet.IsTransitive.subset_powerset
 
-end SetCat
+end ZFSet
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 
 ! This file was ported from Lean 3 source module set_theory.zfc.ordinal
-! leanprover-community/mathlib commit 7a1cc03e365059994e64dc313bb023427bcfb50d
+! leanprover-community/mathlib commit 98bbc3526516bca903bff09ea10c4206bf079e6b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -78,6 +78,21 @@ theorem IsTransitive.sUnion' (H : ∀ y ∈ x, IsTransitive y) : (⋃₀ x).IsTr
   exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
 #align Set.is_transitive.sUnion' SetCat.IsTransitive.sUnion'
 
+protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive) :
+    (x ∪ y).IsTransitive := by
+  rw [← sUnion_pair]
+  apply is_transitive.sUnion' fun z => _
+  rw [mem_pair]
+  rintro (rfl | rfl)
+  assumption'
+#align Set.is_transitive.union SetCat.IsTransitive.union
+
+protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
+  fun y hy z hz => by
+  rw [mem_powerset] at hy⊢
+  exact h.subset_of_mem (hy hz)
+#align Set.is_transitive.powerset SetCat.IsTransitive.powerset
+
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ ⋃₀ x ⊆ x :=
   ⟨fun h y hy => by

Changes in mathlib4

mathlib3
mathlib4
feat: patch for new alias command (#6172)
Diff
@@ -53,7 +53,7 @@ theorem isTransitive_iff_mem_trans : z.IsTransitive ↔ ∀ {x y : ZFSet}, x ∈
   ⟨fun h _ _ hx hy => h.subset_of_mem hy hx, fun H _ hx _ hy => H hy hx⟩
 #align Set.is_transitive_iff_mem_trans ZFSet.isTransitive_iff_mem_trans
 
-alias isTransitive_iff_mem_trans ↔ IsTransitive.mem_trans _
+alias ⟨IsTransitive.mem_trans, _⟩ := isTransitive_iff_mem_trans
 #align Set.is_transitive.mem_trans ZFSet.IsTransitive.mem_trans
 
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
@@ -96,14 +96,14 @@ theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ (⋃₀ x : ZFSet) 
     exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
 #align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_sUnion_subset
 
-alias isTransitive_iff_sUnion_subset ↔ IsTransitive.sUnion_subset _
+alias ⟨IsTransitive.sUnion_subset, _⟩ := isTransitive_iff_sUnion_subset
 #align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.sUnion_subset
 
 theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :=
   ⟨fun h _ hy => mem_powerset.2 <| h.subset_of_mem hy, fun H _ hy _ hz => mem_powerset.1 (H hy) hz⟩
 #align Set.is_transitive_iff_subset_powerset ZFSet.isTransitive_iff_subset_powerset
 
-alias isTransitive_iff_subset_powerset ↔ IsTransitive.subset_powerset _
+alias ⟨IsTransitive.subset_powerset, _⟩ := isTransitive_iff_subset_powerset
 #align Set.is_transitive.subset_powerset ZFSet.IsTransitive.subset_powerset
 
 end ZFSet
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
-
-! This file was ported from Lean 3 source module set_theory.zfc.ordinal
-! leanprover-community/mathlib commit 98bbc3526516bca903bff09ea10c4206bf079e6b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.SetTheory.ZFC.Basic
 
+#align_import set_theory.zfc.ordinal from "leanprover-community/mathlib"@"98bbc3526516bca903bff09ea10c4206bf079e6b"
+
 /-!
 # Von Neumann ordinals
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -61,7 +61,7 @@ alias isTransitive_iff_mem_trans ↔ IsTransitive.mem_trans _
 
 protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∩ y).IsTransitive := fun z hz w hw => by
-  rw [mem_inter] at hz⊢
+  rw [mem_inter] at hz ⊢
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
 #align Set.is_transitive.inter ZFSet.IsTransitive.inter
 
@@ -89,7 +89,7 @@ protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive)
 
 protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTransitive :=
   fun y hy z hz => by
-  rw [mem_powerset] at hy⊢
+  rw [mem_powerset] at hy ⊢
   exact h.subset_of_mem (hy hz)
 #align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
 
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -65,22 +65,22 @@ protected theorem IsTransitive.inter (hx : x.IsTransitive) (hy : y.IsTransitive)
   exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩
 #align Set.is_transitive.inter ZFSet.IsTransitive.inter
 
-protected theorem IsTransitive.unionₛ (h : x.IsTransitive) :
+protected theorem IsTransitive.sUnion (h : x.IsTransitive) :
     (⋃₀ x : ZFSet).IsTransitive := fun y hy z hz => by
-  rcases mem_unionₛ.1 hy with ⟨w, hw, hw'⟩
-  exact mem_unionₛ_of_mem hz (h.mem_trans hw' hw)
-#align Set.is_transitive.sUnion ZFSet.IsTransitive.unionₛ
+  rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
+  exact mem_sUnion_of_mem hz (h.mem_trans hw' hw)
+#align Set.is_transitive.sUnion ZFSet.IsTransitive.sUnion
 
-theorem IsTransitive.unionₛ' (H : ∀ y ∈ x, IsTransitive y) :
+theorem IsTransitive.sUnion' (H : ∀ y ∈ x, IsTransitive y) :
     (⋃₀ x : ZFSet).IsTransitive := fun y hy z hz => by
-  rcases mem_unionₛ.1 hy with ⟨w, hw, hw'⟩
-  exact mem_unionₛ_of_mem ((H w hw).mem_trans hz hw') hw
-#align Set.is_transitive.sUnion' ZFSet.IsTransitive.unionₛ'
+  rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
+  exact mem_sUnion_of_mem ((H w hw).mem_trans hz hw') hw
+#align Set.is_transitive.sUnion' ZFSet.IsTransitive.sUnion'
 
 protected theorem IsTransitive.union (hx : x.IsTransitive) (hy : y.IsTransitive) :
     (x ∪ y).IsTransitive := by
-  rw [← unionₛ_pair]
-  apply IsTransitive.unionₛ' fun z => _
+  rw [← sUnion_pair]
+  apply IsTransitive.sUnion' fun z => _
   intro
   rw [mem_pair]
   rintro (rfl | rfl)
@@ -93,14 +93,14 @@ protected theorem IsTransitive.powerset (h : x.IsTransitive) : (powerset x).IsTr
   exact h.subset_of_mem (hy hz)
 #align Set.is_transitive.powerset ZFSet.IsTransitive.powerset
 
-theorem isTransitive_iff_unionₛ_subset : x.IsTransitive ↔ (⋃₀ x : ZFSet) ⊆ x :=
+theorem isTransitive_iff_sUnion_subset : x.IsTransitive ↔ (⋃₀ x : ZFSet) ⊆ x :=
   ⟨fun h y hy => by
-    rcases mem_unionₛ.1 hy with ⟨z, hz, hz'⟩
-    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_unionₛ_of_mem hz hy⟩
-#align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_unionₛ_subset
+    rcases mem_sUnion.1 hy with ⟨z, hz, hz'⟩
+    exact h.mem_trans hz' hz, fun H y hy z hz => H <| mem_sUnion_of_mem hz hy⟩
+#align Set.is_transitive_iff_sUnion_subset ZFSet.isTransitive_iff_sUnion_subset
 
-alias isTransitive_iff_unionₛ_subset ↔ IsTransitive.unionₛ_subset _
-#align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.unionₛ_subset
+alias isTransitive_iff_sUnion_subset ↔ IsTransitive.sUnion_subset _
+#align Set.is_transitive.sUnion_subset ZFSet.IsTransitive.sUnion_subset
 
 theorem isTransitive_iff_subset_powerset : x.IsTransitive ↔ x ⊆ powerset x :=
   ⟨fun h _ hy => mem_powerset.2 <| h.subset_of_mem hy, fun H _ hy _ hz => mem_powerset.1 (H hy) hz⟩
feat: port SetTheory.ZFC.Ordinal (#3334)

Also corrects the folder casing Zfc to ZFC.

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Dependencies 62

63 files ported (100.0%)
35190 lines ported (100.0%)

All dependencies are ported!