Encyclopedia Foundation Foundation Self Bootstrap Distinguishability
ARTICLE 5 claims 5 theorems
Foundation Self Bootstrap Distinguishability
The module proves that a formal language can tell two propositions apart, and that this fact is distinct from its own denial, without deriving any object from nothing.
The bootstrap's honest floor
Distinguishability is the capacity of a system to tell two things apart. In mathematics, the simplest carrier of this capacity is the two-element type Bool, whose values are false and true. The framework's module begins by proving, in a machine-checked library of formal theorems, that false is not equal to true. This is the base case: a two-element type carries a definitional distinction.
The module then lifts this distinction to any carrier that supports a Boolean predicate taking both truth values. If a type K has a predicate P such that some x satisfies P and some y does not, then x and y are distinct. This is a theorem, not an assumption: the existence of the two truth values forces the existence of two distinct objects. The proof is constructive, producing the witnesses x and y from the two hypotheses.
Next, the module proves a meta-level fact about the formal language itself. For any proposition P, the proposition P is never equal to its negation, not P. This holds in classical logic. The proof runs by cases: if P holds, then assuming P equals not P yields a contradiction; if P fails, the same equality yields P. Either way, the equality is impossible.
The self-bootstrap claim is the assertion that some carrier admits a non-trivial distinction, written as there exist x and y with x not equal to y. The module proves that this claim is itself distinguishable from its own denial. That is, the claim is not equal to the negation of the claim. This follows directly from the previous theorem applied to the proposition that the carrier has two distinct elements.
Finally, the module packages these facts into a certificate structure. The certificate states two things: the meta-language distinguishes propositions, and the object-level claim is not its own negation. The certificate is theorem-backed, meaning it is constructed from the proved theorems, not postulated. The module does not derive an object-level non-singleton carrier from nothing; it proves the meta-level facts that the self-bootstrap argument uses, and it names the object-level condition as an explicit hypothesis in the final theorem.
What this establishes in plain language is a precise boundary. The formal language already contains distinctions among propositions, and the claim that objects are distinguishable is distinct from its denial. But the module does not pretend to conjure a two-object world from an empty one. The object-level non-singleton carrier remains an input, not an output. This is the honest form of the bootstrap: it closes at the meta-language floor, not below it.
THEOREM bool_distinguishable · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The two-element type carries a definitional distinction. -/
theorem bool_distinguishable : (false : Bool) ≠ true := by
decide
THEOREM distinguishability_lifted_from_bool · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- Any carrier supporting a Boolean predicate with both truth values
inherits an object-level distinction. -/
theorem distinguishability_lifted_from_bool
{K : Type*} (P : K → Bool)
(hpos : ∃ x : K, P x = true) (hneg : ∃ x : K, P x = false) :
∃ x y : K, x ≠ y := by
obtain ⟨x, hx⟩ := hpos
obtain ⟨y, hy⟩ := hneg
refine ⟨x, y, ?_⟩
intro hxy
have hfalse : P x = false := by
simpa [hxy] using hy
cases hx.symm.trans hfalse
THEOREM prop_ne_not · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- A proposition is never equal to its negation in classical logic. -/
theorem prop_ne_not (P : Prop) : P ≠ ¬ P := by
intro h
by_cases hp : P
· have hnp : ¬ P := by
rw [h] at hp
exact hp
exact hnp hp
· have hp' : P := by
rw [h.symm] at hp
exact hp
exact hp hp'
THEOREM dist_claim_self_distinguishes · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The claim that a carrier admits a non-trivial distinction is itself
distinguishable from the denial of that claim. -/
theorem dist_claim_self_distinguishes (K : Type*) :
(∃ x y : K, x ≠ y) ≠ (¬ ∃ x y : K, x ≠ y) :=
prop_ne_not (∃ x y : K, x ≠ y)
THEOREM selfBootstrapCert · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The self-bootstrap certificate is theorem-backed. -/
theorem selfBootstrapCert : SelfBootstrapCert where
meta_distinguishes := meta_language_distinguishes_props
claim_not_its_negation := dist_claim_self_distinguishes
What this page does not claim
This module does not derive an object-level non-singleton carrier from nothing. The certificate does not establish that any particular physical carrier has two distinct elements. The module does not prove that the self-bootstrap argument succeeds in deriving object-level distinguishability from the meta-language alone.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- What would a derivation of an object-level non-singleton carrier from the meta-language floor require?
- How does the self-bootstrap certificate relate to the framework's forcing chain that derives physical constants?
- What role does the distinction between a proposition and its negation play in the framework's account of recognition events?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM bool_distinguishable · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The two-element type carries a definitional distinction. -/ theorem bool_distinguishable : (false : Bool) ≠ true := by decideThe two-element type Bool carries a definitional distinction, with false not equal to true. bool_distinguishable · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.leanTHEOREM distinguishability_lifted_from_bool · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- Any carrier supporting a Boolean predicate with both truth values inherits an object-level distinction. -/ theorem distinguishability_lifted_from_bool {K : Type*} (P : K → Bool) (hpos : ∃ x : K, P x = true) (hneg : ∃ x : K, P x = false) : ∃ x y : K, x ≠ y := by obtain ⟨x, hx⟩ := hpos obtain ⟨y, hy⟩ := hneg refine ⟨x, y, ?_⟩ intro hxy have hfalse : P x = false := by simpa [hxy] using hy cases hx.symm.trans hfalseAny carrier supporting a Boolean predicate with both truth values inherits an object-level distinction. distinguishability_lifted_from_bool · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.leanTHEOREM prop_ne_not · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- A proposition is never equal to its negation in classical logic. -/ theorem prop_ne_not (P : Prop) : P ≠ ¬ P := by intro h by_cases hp : P · have hnp : ¬ P := by rw [h] at hp exact hp exact hnp hp · have hp' : P := by rw [h.symm] at hp exact hp exact hp hp'A proposition is never equal to its negation in classical logic. prop_ne_not · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.leanTHEOREM dist_claim_self_distinguishes · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The claim that a carrier admits a non-trivial distinction is itself distinguishable from the denial of that claim. -/ theorem dist_claim_self_distinguishes (K : Type*) : (∃ x y : K, x ≠ y) ≠ (¬ ∃ x y : K, x ≠ y) := prop_ne_not (∃ x y : K, x ≠ y)The claim that a carrier admits a non-trivial distinction is itself distinguishable from the denial of that claim. dist_claim_self_distinguishes · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.leanTHEOREM selfBootstrapCert · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean
/-- The self-bootstrap certificate is theorem-backed. -/ theorem selfBootstrapCert : SelfBootstrapCert where meta_distinguishes := meta_language_distinguishes_props claim_not_its_negation := dist_claim_self_distinguishesThe self-bootstrap certificate is theorem-backed, stating both that the meta-language distinguishes propositions and that the object-level claim is not its own negation. selfBootstrapCert · IndisputableMonolith/Foundation/SelfBootstrapDistinguishability.lean