feat: add a typeclass for the continuum hypothesis - #34075
Conversation
PR summary bc90dd441bImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
| ContinuumHypothesis ↔ | ||
| ∃ f : ℝ → ℝ → Prop, (∀ x, {y | ¬ f x y}.Countable) ∧ ∀ y, {x : ℝ | f x y}.Countable := by |
There was a problem hiding this comment.
Likewise, I believe this theorem generalizes to:
| ContinuumHypothesis ↔ | |
| ∃ f : ℝ → ℝ → Prop, (∀ x, {y | ¬ f x y}.Countable) ∧ ∀ y, {x : ℝ | f x y}.Countable := by | |
| #α = c ↔ | |
| ∃ f : α → α → Prop, (∀ x, #{y | ¬ f x y} < c) ∧ ∀ y, #{x : ℝ | f x y} < c := by |
So the continuum hypothesis is truly doing nothing other than giving you the initial rewrite of #ℝ = ℵ₁.
There was a problem hiding this comment.
Is one of these being an equality a typo?
There was a problem hiding this comment.
Is c here intended to be a bound variable or 𝔠?
There was a problem hiding this comment.
Bound variable. The same strategy of "take a well-ordering with least order type" should work to prove this.
| theorem iff_continuum_eq_aleph_one.{u} : ContinuumHypothesis ↔ (𝔠 : Cardinal.{u}) = ℵ₁ := by | ||
| rw [iff_continuum_eq_aleph_one', ← Cardinal.lift_continuum.{u, 0}, Cardinal.lift_eq_aleph_one] |
There was a problem hiding this comment.
Would it be desirable to do something like this instead
| theorem iff_continuum_eq_aleph_one.{u} : ContinuumHypothesis ↔ (𝔠 : Cardinal.{u}) = ℵ₁ := by | |
| rw [iff_continuum_eq_aleph_one', ← Cardinal.lift_continuum.{u, 0}, Cardinal.lift_eq_aleph_one] | |
| theorem iff_continuum_eq_aleph_one.{u} : ContinuumHypothesis ↔ (𝔠 : Cardinal.{u}) = ℵ₁ := | |
| ⟨fun ⟨h⟩ => by rw [← lift_continuum.{u, 0}, h, lift_eq_aleph_one], | |
| fun h => ⟨by rw [← lift_inj.{0, u}, lift_continuum, h, aleph_one_eq_lift]⟩⟩ |
and remove the primed version?
There was a problem hiding this comment.
What's the harm in the primed version? I could also make it private, but maybe that's not possibly with mk_iff.
|
This pull request has conflicts, please merge |
e903475 to
1566080
Compare
| (`Mathlib.Analysis.Convex.SimplicialComplex.Basic, `Mathlib.AlgebraicTopology), | ||
| (`Mathlib.Analysis.Convex.SimplicialComplex.AffineIndependentUnion, `Mathlib.AlgebraicTopology), | ||
| (`Mathlib.Probability.Kernel.Category, `Mathlib.CategoryTheory), -- For the category of s-finite/Markov kernels | ||
| (`Mathlib.SetTheory.Cardinal.ContinuumHypothesis, `Mathlib.Analysis.Real.Cardinality), |
There was a problem hiding this comment.
I don't think we should be importing real numbers in the continuum hypothesis file. If there are any theorems about types with cardinality continuum they should be written in that generality.
|
Opened #37965 proving a more general version of the pathological relation theorem. |
|
This pull request has conflicts, please merge |
|
@eric-wieser do you still plan to work on this? If not I'd be interested in adding some "additional axioms" (CH, GHC and MA) |
|
Closing in favor of #43537, since I am unable to push further changes to this now-protected branch. |
This allows a proof from the Archive to be promoted to mathlib itself.
The proof strategy of
iff_exists_sierpinski_pathological_predwas written almost entirely with public Gemini 3 Thinking, and then manually corrected.