Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - docs(set_theory/schroeder_bernstein): add module docstring #7900

Closed
wants to merge 4 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 11 additions & 4 deletions src/set_theory/schroeder_bernstein.lean
Expand Up @@ -2,12 +2,17 @@
Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Mario Carneiro

The Schröder-Bernstein theorem, and well ordering of cardinals.
-/
import order.fixed_points
import order.zorn

/-!
# Schröder-Bernstein theorem, well-ordering of cardinals

This file proves (nonconstructively) the Schröder-Bernstein theorem (see `schroeder_bernstein`), the
YaelDillies marked this conversation as resolved.
Show resolved Hide resolved
well-ordering of cardinals (see `min_injective`) and the totality of their order (see `total`).
-/

open set classical
open_locale classical

Expand Down Expand Up @@ -50,7 +55,7 @@ have surjective h,
let ⟨a, _, eq⟩ := this in
⟨a, eq⟩,

have split : ∀x ∈ s, ∀y ∉ s, h x = h y → false,
have split : ∀ x ∈ s, ∀ y ∉ s, h x = h y → false,
from λ x hx y hy eq,
have y ∈ g '' (f '' s)ᶜ, by rwa [←hns],
let ⟨y', hy', eq_y'⟩ := this in
Expand Down Expand Up @@ -95,8 +100,9 @@ parameters {ι : Type u} {β : ι → Type v}
@[reducible] private def sets := {s : set (∀ i, β i) |
∀ (x ∈ s) (y ∈ s) i, (x : ∀ i, β i) i = y i → x = y}

/-- The cardinals are well-ordered. -/
theorem min_injective (I : nonempty ι) : ∃ i, nonempty (∀ j, β i ↪ β j) :=
YaelDillies marked this conversation as resolved.
Show resolved Hide resolved
let ⟨s, hs, ms⟩ := show ∃ s ∈ sets, ∀a ∈ sets, s ⊆ a → a = s, from
let ⟨s, hs, ms⟩ := show ∃ s ∈ sets, ∀ a ∈ sets, s ⊆ a → a = s, from
zorn.zorn_subset sets (λ c hc hcc, ⟨⋃₀ c,
λ x ⟨p, hpc, hxp⟩ y ⟨q, hqc, hyq⟩ i hi, (hcc.total hpc hqc).elim
(λ h, hc hqc x (h hxp) y hyq i hi) (λ h, hc hpc x hxp y (h hyq) i hi),
Expand All @@ -121,6 +127,7 @@ let ⟨f, hf⟩ := axiom_of_choice e in

end wo

/-- The cardinals are totally ordered. -/
YaelDillies marked this conversation as resolved.
Show resolved Hide resolved
theorem total {α : Type u} {β : Type v} : nonempty (α ↪ β) ∨ nonempty (β ↪ α) :=
match @min_injective bool (λ b, cond b (ulift α) (ulift.{(max u v) v} β)) ⟨tt⟩ with
| ⟨tt, ⟨h⟩⟩ := let ⟨f, hf⟩ := h ff in or.inl ⟨embedding.congr equiv.ulift equiv.ulift ⟨f, hf⟩⟩
Expand Down