@@ -664,19 +664,31 @@ theorem mk_list_eq_mk (α : Type u) [Infinite α] : #(List α) = #α :=
664664theorem mk_list_eq_aleph0 (α : Type u) [Countable α] [Nonempty α] : #(List α) = ℵ₀ :=
665665 mk_le_aleph0.antisymm (aleph0_le_mk _)
666666
667- theorem mk_list_eq_max_mk_aleph0 (α : Type u) [Nonempty α] : #(List α) = max #α ℵ₀ := by
667+ theorem mk_list_eq_max (α : Type u) [Nonempty α] : #(List α) = max ℵ₀ #α := by
668668 cases finite_or_infinite α
669- · rw [mk_list_eq_aleph0, eq_comm, max_eq_right ]
669+ · rw [mk_list_eq_aleph0, eq_comm, max_eq_left ]
670670 exact mk_le_aleph0
671- · rw [mk_list_eq_mk, eq_comm, max_eq_left ]
671+ · rw [mk_list_eq_mk, eq_comm, max_eq_right ]
672672 exact aleph0_le_mk α
673673
674+ -- TODO: standardize whether we write `max ℵ₀ x` or `max x ℵ₀`.
675+ theorem mk_list_eq_max_mk_aleph0 (α : Type u) [Nonempty α] : #(List α) = max #α ℵ₀ := by
676+ rw [mk_list_eq_max, max_comm]
677+
678+ theorem sum_pow_eq_max_aleph0 {x : Cardinal} (h : x ≠ 0 ) : sum (fun n ↦ x ^ n) = max ℵ₀ x := by
679+ have := nonempty_out h
680+ conv_lhs => rw [← x.mk_out, ← mk_list_eq_sum_pow, mk_list_eq_max, mk_out]
681+
674682theorem mk_list_le_max (α : Type u) : #(List α) ≤ max ℵ₀ #α := by
675683 cases finite_or_infinite α
676684 · exact mk_le_aleph0.trans (le_max_left _ _)
677685 · rw [mk_list_eq_mk]
678686 apply le_max_right
679687
688+ theorem sum_pow_le_max_aleph0 (x : Cardinal) : sum (fun n ↦ x ^ n) ≤ max ℵ₀ x := by
689+ rw [← x.mk_out, ← mk_list_eq_sum_pow]
690+ exact mk_list_le_max _
691+
680692@[simp]
681693theorem mk_finset_of_infinite (α : Type u) [Infinite α] : #(Finset α) = #α := by
682694 classical
0 commit comments