Pith. sign in

IndisputableMonolith.Foundation.MaximalForcing.Primitive

IndisputableMonolith/Foundation/MaximalForcing/Primitive.lean · 68 lines · 6 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2
   3/-!
   4# Maximal Forcing: Primitive and Claim Language
   5
   6This module starts the Maximal Forcing Closure program.
   7
   8The target is:
   9
  10* from distinction / Law of Logic, derive every invariant that is invariant
  11  across all admissible realizations;
  12* prove every remaining degree of freedom is either forced by a deeper
  13  admissibility condition or independent by countermodel.
  14
  15This file only defines the primitive and claim language. It intentionally does
  16not assert the crown theorem.
  17-/
  18
  19namespace IndisputableMonolith
  20namespace Foundation
  21namespace MaximalForcing
  22
  23universe u
  24
  25/-- The primitive starting point for maximal forcing. The two constructors are
  26kept distinct so later modules can prove their equivalence rather than silently
  27identify them. -/
  28inductive Primitive where
  29  /-- Object-level distinction: `exists x y : K, x != y`. -/
  30  | distinction
  31  /-- Law-of-Logic realization, after the floor is non-vacuous. -/
  32  | lawOfLogic
  33  deriving DecidableEq, Repr
  34
  35/-- A claim about realizations. The `label` is audit-facing metadata; the theorem
  36content is the predicate `holds`. -/
  37structure RealityClaim (R : Type u) where
  38  label : String
  39  holds : R -> Prop
  40
  41/-- A claim is forced on an admissible class when it holds in every admissible
  42realization. -/
  43def Forced {R : Type u} (Admissible : Set R) (C : RealityClaim R) : Prop :=
  44  ∀ R0 : R, R0 ∈ Admissible -> C.holds R0
  45
  46/-- A claim is independent over an admissible class when two admissible
  47realizations disagree on it. -/
  48def Independent {R : Type u} (Admissible : Set R) (C : RealityClaim R) : Prop :=
  49  ∃ R0 R1 : R,
  50    R0 ∈ Admissible ∧ R1 ∈ Admissible ∧ C.holds R0 ∧ ¬ C.holds R1
  51
  52/-- A named selection principle for claims not yet forced on the current
  53admissible class. -/
  54structure SelectionPrinciple {R : Type u} (Admissible : Set R)
  55    (C : RealityClaim R) where
  56  label : String
  57  applies : Prop
  58
  59/-- A claim is selected when it is not forced on the current admissible class but
  60does have a named selection principle. This is not final closure; it is an
  61honest tag that must later be strengthened to `Forced` or `Independent`. -/
  62def Selected {R : Type u} (Admissible : Set R) (C : RealityClaim R) : Prop :=
  63  ¬ Forced Admissible C ∧ Nonempty (SelectionPrinciple Admissible C)
  64
  65end MaximalForcing
  66end Foundation
  67end IndisputableMonolith
  68

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