@@ -612,7 +612,7 @@ theorem card_one : card 1 = 1 := mk_eq_one _
612612
613613variable (r) in
614614/-- The cardinality of a set is an upper-bound for the cardinality of the order type of the set's
615- mex (minimum excluded value) -/
615+ mex (minimum excluded value). See `not_lt_enum_ord_mk_min_compl` for the `α` version. -/
616616theorem card_typein_min_le_mk [IsWellOrder α r] {s : Set α} (hs : sᶜ.Nonempty) :
617617 (typein r <| IsWellFounded.wf.min (r := r) sᶜ hs).card ≤ #s :=
618618 IsWellFounded.wf.cardinalMk_subtype_lt_min_compl_le hs
@@ -1438,12 +1438,33 @@ theorem card_eq_ofNat {o} {n : ℕ} [n.AtLeastTwo] :
14381438 card o = ofNat(n) ↔ o = OfNat.ofNat n :=
14391439 card_eq_nat
14401440
1441+ variable (r) in
14411442@[simp]
1442- theorem type_fintype (r : α → α → Prop ) [IsWellOrder α r] [Fintype α] :
1443+ theorem type_fintype [IsWellOrder α r] [Fintype α] :
14431444 type r = Fintype.card α := by rw [← card_eq_nat, card_type, mk_fintype]
14441445
14451446theorem type_fin (n : ℕ) : typeLT (Fin n) = n := by simp
14461447
1448+ variable (r) in
1449+ theorem ord_mk_le_type [IsWellOrder α r] (s : Set α) : (#s).ord ≤ type r := by
1450+ grw [← ord_le_type, ord_le_ord, le_mk_iff_exists_set]
1451+ use s
1452+
1453+ variable (r) in
1454+ theorem ord_mk_lt_type [IsWellOrder α r] {s : Set α} (hfin : s.Finite) (h : sᶜ.Nonempty) :
1455+ (#s).ord < type r := by
1456+ grw [← ord_le_type, ord_lt_ord, ← mk_univ (α := α)]
1457+ exact card_lt_card_of_left_finite hfin h.ssubset_univ
1458+
1459+ variable (r) in
1460+ /-- The `#s`-th element of `α` is an upper-bound for the set's mex (minimum excluded value),
1461+ ordered by `r`, when `s` is finite. See `card_typein_min_le_mk` for the `Ordinal` version. -/
1462+ theorem not_lt_enum_ord_mk_min_compl [IsWellOrder α r] {s : Set α} (hfin : s.Finite)
1463+ (h : sᶜ.Nonempty) :
1464+ ¬r (enum r ⟨#s |>.ord, ord_mk_lt_type r hfin h⟩) (IsWellFounded.wf.min (r := r) sᶜ h) := by
1465+ grw [← typein_le_typein, typein_enum, Cardinal.le_ord_iff_card_le_of_lt_aleph0 _ hfin.lt_aleph0,
1466+ card_typein_min_le_mk]
1467+
14471468end Ordinal
14481469
14491470/-! ### Sorted lists -/
0 commit comments