Encyclopedia Foundation Foundation Bool From Logic Decoy Constant Bool Map Rejected
ARTICLE 3 claims 2 theorems 1 model
Foundation Bool From Logic Decoy Constant Bool Map Rejected
A machine-checked proof shows that a map sending both sides of a distinction to the same value cannot be a faithful encoding, a small step in building Boolean logic from a single act of distinction.
The rejected decoy
A Boolean value, in the ordinary sense, has two states: true and false. A distinction is the primitive act of separating one thing from another, and in the Recognition Science framework it also has exactly two sides, called affirm and deny, which are the bare outcomes of making a cut. The framework's machine-checked library of formal theorems proves that these two sides are different, affirm is not deny, and that a map sending each side to a distinct Boolean value is a perfect mirror of the distinction.
The declaration decoy_constant_bool_map_rejected proves a negative result about a tempting shortcut. It shows that a function which sends both affirm and deny to the same Boolean value, for instance the constant function that always returns true, is not injective. In plain language, if a map cannot tell the two sides apart, it cannot serve as a faithful encoding of the distinction. This is not a deep mystery; it is a direct consequence of the fact that the two sides are different. The proof is a short argument by contradiction, and it is checked by the machine, not merely asserted.
This rejection matters because it closes off a wrong path. When building Boolean structure from a single distinction, one might be tempted to collapse both sides into a single value, treating the distinction as trivial. The theorem shows that such a collapse loses the information the distinction carries. The framework instead uses a pair of maps, one from the distinction to Boolean and one back, and proves they are inverses of each other, so the two-sided structure is preserved exactly. The rejected constant map is the counterexample that shows why this care is necessary.
In Recognition Science, this is a small but necessary step in a larger chain. The framework models logic as arising from the act of distinguishing, not as a given primitive. The theorem that the constant map is rejected is part of showing that the Boolean structure is genuinely two-sided and cannot be flattened without losing meaning. It does not, however, claim that the distinction itself is the same as a Boolean value, nor does it say anything about how this structure connects to the cost function or the rest of the forcing chain. It is a local lemma about maps, not a global claim about the nature of logic.
THEOREM affirm_ne_deny · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **The distinction is real**: the two sides differ. Forced by the
constructor disjointness of the inductive type, which is exactly the
statement that δ cuts something. -/
theorem affirm_ne_deny : affirm ≠ deny := by decide
THEOREM decoy_constant_bool_map_rejected · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **Decoy 2 (constant reading rejected)**: the constant-`true` map
collapses both sides of the distinction, so it is not injective and
cannot underlie an equivalence with `Bool`. -/
theorem decoy_constant_bool_map_rejected :
¬ Function.Injective (fun _ : LogicBool => true) := by
intro h
exact affirm_ne_deny (h rfl)
MODEL equivBool · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **Recovery theorem (carrier)**: `LogicBool` and `Bool` are in
bijection. The two sides of a single distinction are exactly the two
Boolean values. -/
def equivBool : LogicBool ≃ Bool where
toFun := toBool
invFun := fromBool
left_inv := fromBool_toBool
right_inv := toBool_fromBool
What this page does not claim
This theorem does not claim that a distinction is identical to a Boolean value, only that it has a two-sided structure that can be mirrored by one. This theorem does not establish that the framework's LogicBool is the only possible two-sided structure, nor does it prove any uniqueness result. This theorem does not say anything about how the distinction connects to the cost function or the forcing chain that derives physical constants.
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/BoolFromLogic.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:
- How does the two-sided structure of a distinction compose with other distinctions to build richer logical connectives?
- What role does this rejection of a constant map play in the larger chain that forces the golden ratio and three spatial dimensions?
- Does the framework's LogicBool structure satisfy the same algebraic laws as the standard Boolean algebra, and if so, which ones?
- How does the act of distinguishing relate to the cost function that the framework derives from recognition events?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM affirm_ne_deny · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **The distinction is real**: the two sides differ. Forced by the constructor disjointness of the inductive type, which is exactly the statement that δ cuts something. -/ theorem affirm_ne_deny : affirm ≠ deny := by decideA distinction has two sides, called affirm and deny, and these two sides are different. affirm_ne_deny · IndisputableMonolith/Foundation/BoolFromLogic.leanTHEOREM decoy_constant_bool_map_rejected · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **Decoy 2 (constant reading rejected)**: the constant-`true` map collapses both sides of the distinction, so it is not injective and cannot underlie an equivalence with `Bool`. -/ theorem decoy_constant_bool_map_rejected : ¬ Function.Injective (fun _ : LogicBool => true) := by intro h exact affirm_ne_deny (h rfl)A map that sends both affirm and deny to the same Boolean value is not injective, so it cannot faithfully encode the distinction. decoy_constant_bool_map_rejected · IndisputableMonolith/Foundation/BoolFromLogic.leanMODEL equivBool · IndisputableMonolith/Foundation/BoolFromLogic.lean
/-- **Recovery theorem (carrier)**: `LogicBool` and `Bool` are in bijection. The two sides of a single distinction are exactly the two Boolean values. -/ def equivBool : LogicBool ≃ Bool where toFun := toBool invFun := fromBool left_inv := fromBool_toBool right_inv := toBool_fromBoolThe framework defines a pair of maps between the distinction and Boolean values that are inverses of each other. equivBool · IndisputableMonolith/Foundation/BoolFromLogic.lean