Ordinal ranks of PSet and ZFSet #
In this file, we define the ordinal ranks of PSet
and ZFSet
. These ranks are the same as
IsWellFounded.rank
over ∈
, but are defined in a way that the universe levels of ranks are the
same as the indexing types.
Definitions #
PSet.rank
: Ordinal rank of a pre-set.ZFSet.rank
: Ordinal rank of a ZFC set.
The ordinal rank of a pre-set
Equations
- (PSet.mk α A).rank = Ordinal.lsub fun (a : α) => (A a).rank
Instances For
@[simp]
theorem
PSet.rank_pair
{x : PSet}
{y : PSet}
:
{x, y}.rank = max (Order.succ x.rank) (Order.succ y.rank)
For the rank of ⋃₀ x
, we only have rank (⋃₀ x) ≤ rank x ≤ rank (⋃₀ x) + 1
.
This inequality is split into rank_sUnion_le
and le_succ_rank_sUnion
.
theorem
PSet.rank_eq_wfRank
{x : PSet}
:
Ordinal.lift.{u + 1, u} x.rank = IsWellFounded.rank (fun (x1 x2 : PSet) => x1 ∈ x2) x
PSet.rank
is equal to the IsWellFounded.rank
over ∈
.
The ordinal rank of a ZFC set
Equations
Instances For
@[simp]
theorem
ZFSet.rank_insert
{x : ZFSet}
{y : ZFSet}
:
(insert x y).rank = max (Order.succ x.rank) y.rank
theorem
ZFSet.rank_pair
{x : ZFSet}
{y : ZFSet}
:
{x, y}.rank = max (Order.succ x.rank) (Order.succ y.rank)
For the rank of ⋃₀ x
, we only have rank (⋃₀ x) ≤ rank x ≤ rank (⋃₀ x) + 1
.
This inequality is split into rank_sUnion_le
and le_succ_rank_sUnion
.
@[simp]
theorem
ZFSet.rank_range
{α : Type u}
{f : α → ZFSet}
:
(ZFSet.range f).rank = Ordinal.lsub fun (i : α) => (f i).rank
theorem
ZFSet.rank_eq_wfRank
{x : ZFSet}
:
Ordinal.lift.{u + 1, u} x.rank = IsWellFounded.rank (fun (x1 x2 : ZFSet) => x1 ∈ x2) x
ZFSet.rank
is equal to the IsWellFounded.rank
over ∈
.