Pith. sign in

IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCModelTheoryNonForcing

IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/PRCModelTheoryNonForcing.lean · 90 lines · 4 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1/-
   2  PrimitiveRecognitionCalculus/PRCModelTheoryNonForcing.lean
   3
   4  Round-trip source:
   5    δ/Delta_Continuum_Is_Not_Forced.tex  (the model-theory / definability
   6    non-forcing argument, the fourth of the paper's four independent
   7    arguments that the continuum is not forced).
   8
   9  This module formalizes that fourth argument. The paper gives four
  10  independent routes to "distinction does not force the continuum":
  11
  12    1. cardinality              (real_not_countable, etc.)
  13    2. generative countability  (generated_countable, in PRCNativeCostUniqueness)
  14    3. measure zero             (generated_volume_zero, in PRCNativeCostUniqueness)
  15    4. model theory             (this file)
  16
  17  The model-theory route is the sharpest: it says no *first-order* description
  18  in a countable language can pin ℝ down to isomorphism, because downward
  19  Löwenheim–Skolem produces a countable structure that satisfies exactly the
  20  same first-order sentences as ℝ yet cannot be isomorphic to it (it has the
  21  wrong cardinality). Whatever first-order theory distinction writes about its
  22  number line, a countable companion validates every sentence of it.
  23
  24  We isolate the heavy `Mathlib.ModelTheory` import in this sibling module so
  25  the rest of the PRC cost-uniqueness development does not pay the build cost.
  26-/
  27
  28import Mathlib.ModelTheory.Satisfiability
  29import Mathlib.Analysis.Real.Cardinality
  30import Mathlib.SetTheory.Cardinal.Continuum
  31
  32namespace IndisputableMonolith
  33namespace Foundation
  34namespace PrimitiveRecognitionCalculus
  35namespace ModelTheoryNonForcing
  36
  37open Cardinal FirstOrder
  38
  39/-- **Downward Löwenheim–Skolem for the reals.**
  40For any countable first-order language `L` in which `ℝ` carries a structure,
  41there is a *countable* `L`-structure `N` that is elementarily equivalent to
  42`ℝ` (i.e. `ℝ ≅[L] N`): `N` satisfies exactly the same `L`-sentences as `ℝ`.
  43
  44This is the engine of the model-theory non-forcing argument. The hypothesis
  45`hL : L.card ≤ ℵ₀` is the "countable language" assumption: distinction can
  46only write down countably many primitive relations, functions, and constants. -/
  47theorem real_has_countable_ee_model
  48    {L : FirstOrder.Language.{0, 0}} [L.Structure ℝ] (hL : L.card ≤ Cardinal.aleph0) :
  49    ∃ N : CategoryTheory.Bundled L.Structure, (ℝ ≅[L] N) ∧ Cardinal.mk N = Cardinal.aleph0 :=
  50  FirstOrder.Language.exists_elementarilyEquivalent_card_eq L ℝ Cardinal.aleph0
  51    le_rfl (by simpa using hL)
  52
  53/-- **The reals are not first-order categorical (in any countable language).**
  54For any countable language structure on `ℝ`, there is a structure `N`
  55elementarily equivalent to `ℝ` that is *not* isomorphic to `ℝ` even as a bare
  56type: it is countable while `ℝ` has cardinality continuum.
  57
  58Consequence for the δ program: no first-order description in a countable
  59language fixes `ℝ` up to isomorphism. Distinction may force a complete
  60first-order theory of its number line, and `ℝ` may be one model of it, but a
  61countable model of the very same theory always exists. The continuum is not
  62forced by any amount of first-order distinction. -/
  63theorem real_not_first_order_categorical
  64    {L : FirstOrder.Language.{0, 0}} [L.Structure ℝ] (hL : L.card ≤ Cardinal.aleph0) :
  65    ∃ N : CategoryTheory.Bundled L.Structure,
  66      (ℝ ≅[L] N) ∧ Cardinal.mk ℝ ≠ Cardinal.mk N := by
  67  obtain ⟨N, hee, hcard⟩ := real_has_countable_ee_model hL
  68  refine ⟨N, hee, ?_⟩
  69  rw [hcard, Cardinal.mk_real]
  70  exact Cardinal.aleph0_lt_continuum.ne'
  71
  72/-- The countable elementarily-equivalent companion exists and is a genuine
  73witness of non-forcing: it agrees with `ℝ` on every first-order sentence yet
  74is countable, hence not equinumerous with `ℝ`. Packaged form combining all
  75three facts for downstream citation. (Equinumerosity is necessary for any
  76structure isomorphism, so distinct cardinals rule out `ℝ ≃ N` of any kind.) -/
  77theorem real_first_order_underdetermined
  78    {L : FirstOrder.Language.{0, 0}} [L.Structure ℝ] (hL : L.card ≤ Cardinal.aleph0) :
  79    ∃ N : CategoryTheory.Bundled L.Structure,
  80      (ℝ ≅[L] N) ∧ Cardinal.mk N = Cardinal.aleph0 ∧ Cardinal.mk ℝ ≠ Cardinal.mk N := by
  81  obtain ⟨N, hee, hcard⟩ := real_has_countable_ee_model hL
  82  refine ⟨N, hee, hcard, ?_⟩
  83  rw [hcard, Cardinal.mk_real]
  84  exact Cardinal.aleph0_lt_continuum.ne'
  85
  86end ModelTheoryNonForcing
  87end PrimitiveRecognitionCalculus
  88end Foundation
  89end IndisputableMonolith
  90

source mirrored from github.com/jonwashburn/shape-of-logic