Encyclopedia Foundation Foundation Complex From Logic Logic Complex Recovered From Mathlib
ARTICLE 3 claims 3 theorems
Foundation Complex From Logic Logic Complex Recovered From Mathlib
The framework's own complex numbers are exactly the familiar complex plane, with nothing added and nothing missing.
Complex numbers from logic
Complex numbers, in the ordinary mathematical sense, are pairs of real numbers (a, b) with the rule that i² = -1. They give every polynomial equation a solution and are the natural arena for waves, rotations, and quantum mechanics. The framework's declaration logicComplex_recovered_from_mathlib establishes that its own complex numbers, built from its recovered reals, are exactly the same objects as the standard complex numbers. The proof is a two-way translation: every framework complex number maps to a standard one, and every standard one maps back, with both round trips returning the original number.
The construction is deliberately thin. The framework builds its complex numbers as ordered pairs of its recovered real numbers, then proves a carrier-level equivalence with the standard complex plane. The theorem itself is the conjunction of two cancellation laws: sending a framework complex number to the standard plane and back returns the same number, and sending a standard complex number into the framework and back returns the same number. This is what mathematicians call a bijection, a perfect one-to-one correspondence. The framework's complex numbers are not a new kind of number; they are the same plane wearing different clothing.
The declaration also transfers the algebraic operations. Addition, multiplication, negation, subtraction, inversion, and division on the framework's complex numbers all agree with their standard counterparts under the translation. Zero and one map to zero and one. The framework's real numbers embed into its complex numbers as the numbers with imaginary part zero, and its rational numbers embed through that same path. These transfer theorems mean that any calculation done in the framework's complex numbers can be carried over to the standard complex plane and vice versa, with the same result.
In Recognition Science, this declaration is a bridge, not a destination. The framework's goal is to show that the structures of mathematics, including the complex numbers, can be recovered from its starting point of recognition events. This theorem shows that the recovery is faithful: the framework has not accidentally built a different complex plane. The framework proves that its complex numbers are exactly the standard ones, so later work can use the full power of complex analysis without redeveloping it from scratch.
The declaration does not develop complex analysis. It does not prove the fundamental theorem of algebra, Cauchy's theorem, or the residue theorem. It does not define holomorphy, contour integration, or analytic continuation. Those remain targets for later modules, which can state explicitly when they are working in the standard complex plane via this equivalence. The theorem is a foundation, not a building.
THEOREM logicComplex_recovered_from_mathlib · IndisputableMonolith/Foundation/ComplexFromLogic.lean
/-- The recovered complex carrier is exactly Mathlib `ℂ`, by transport. -/
theorem logicComplex_recovered_from_mathlib :
(∀ z : LogicComplex, fromComplex (toComplex z) = z) ∧
(∀ z : ℂ, toComplex (fromComplex z) = z) :=
⟨fromComplex_toComplex, toComplex_fromComplex⟩
THEOREM toComplex_add · toComplex_mul · toComplex_neg · toComplex_sub · toComplex_inv · toComplex_div · IndisputableMonolith/Foundation/ComplexFromLogic.lean
@[simp] theorem toComplex_add (z w : LogicComplex) :
toComplex (z + w) = toComplex z + toComplex w := by
simp [HAdd.hAdd, Add.add]
@[simp] theorem toComplex_mul (z w : LogicComplex) :
toComplex (z * w) = toComplex z * toComplex w := by
simp [HMul.hMul, Mul.mul]
@[simp] theorem toComplex_neg (z : LogicComplex) :
toComplex (-z) = -toComplex z := by
simp [Neg.neg]
@[simp] theorem toComplex_sub (z w : LogicComplex) :
toComplex (z - w) = toComplex z - toComplex w := by
simp [HSub.hSub, Sub.sub]
@[simp] theorem toComplex_inv (z : LogicComplex) :
toComplex z⁻¹ = (toComplex z)⁻¹ := by
simp [Inv.inv]
@[simp] theorem toComplex_div (z w : LogicComplex) :
toComplex (z / w) = toComplex z / toComplex w := by
simp [HDiv.hDiv, Div.div]
THEOREM toComplex_ofLogicReal · IndisputableMonolith/Foundation/ComplexFromLogic.lean
@[simp] theorem toComplex_ofLogicReal (x : LogicReal) :
toComplex (ofLogicReal x) = (toReal x : ℂ) := by
apply Complex.ext <;> simp [ofLogicReal, toComplex]
What this page does not claim
The declaration does not prove any theorem of complex analysis beyond the carrier equivalence and algebraic transfer. The declaration does not define holomorphy, contour integration, or analytic continuation in the framework. The declaration does not show that the framework's complex numbers are unique or that the recovery process is forced.
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/ComplexFromLogic.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 framework recover the real numbers from recognition events before building complex numbers on top of them?
- Which theorems of complex analysis can be transferred through this equivalence to the framework's complex numbers?
- Does the framework's recovery of the complex plane extend to the quaternions or other number systems?
- What role does the complex plane play in the framework's derivation of physical constants?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM logicComplex_recovered_from_mathlib · IndisputableMonolith/Foundation/ComplexFromLogic.lean
/-- The recovered complex carrier is exactly Mathlib `ℂ`, by transport. -/ theorem logicComplex_recovered_from_mathlib : (∀ z : LogicComplex, fromComplex (toComplex z) = z) ∧ (∀ z : ℂ, toComplex (fromComplex z) = z) := ⟨fromComplex_toComplex, toComplex_fromComplex⟩The framework's complex numbers are exactly the standard complex numbers, with a two-way translation that returns the original number. logicComplex_recovered_from_mathlib · IndisputableMonolith/Foundation/ComplexFromLogic.leanTHEOREM toComplex_add · toComplex_mul · toComplex_neg · toComplex_sub · toComplex_inv · toComplex_div · IndisputableMonolith/Foundation/ComplexFromLogic.lean
@[simp] theorem toComplex_add (z w : LogicComplex) : toComplex (z + w) = toComplex z + toComplex w := by simp [HAdd.hAdd, Add.add]@[simp] theorem toComplex_mul (z w : LogicComplex) : toComplex (z * w) = toComplex z * toComplex w := by simp [HMul.hMul, Mul.mul]@[simp] theorem toComplex_neg (z : LogicComplex) : toComplex (-z) = -toComplex z := by simp [Neg.neg]@[simp] theorem toComplex_sub (z w : LogicComplex) : toComplex (z - w) = toComplex z - toComplex w := by simp [HSub.hSub, Sub.sub]@[simp] theorem toComplex_inv (z : LogicComplex) : toComplex z⁻¹ = (toComplex z)⁻¹ := by simp [Inv.inv]@[simp] theorem toComplex_div (z w : LogicComplex) : toComplex (z / w) = toComplex z / toComplex w := by simp [HDiv.hDiv, Div.div]Addition, multiplication, negation, subtraction, inversion, and division on the framework's complex numbers all agree with their standard counterparts under the translation. toComplex_add · toComplex_mul · toComplex_neg · toComplex_sub · toComplex_inv · toComplex_div · IndisputableMonolith/Foundation/ComplexFromLogic.leanTHEOREM toComplex_ofLogicReal · IndisputableMonolith/Foundation/ComplexFromLogic.lean
@[simp] theorem toComplex_ofLogicReal (x : LogicReal) : toComplex (ofLogicReal x) = (toReal x : ℂ) := by apply Complex.ext <;> simp [ofLogicReal, toComplex]The framework's real numbers embed into its complex numbers as the numbers with imaginary part zero. toComplex_ofLogicReal · IndisputableMonolith/Foundation/ComplexFromLogic.lean