feat(hachimoji): close binaryLUT_exists (trivial solution) + BMCTE bridge

- HachimojiLUT.lean: binaryLUT_exists proved (constant-Φ solution)
- Updated master manifest with closed h_consistent status

Build: 2987 jobs, 0 errors
This commit is contained in:
allaun 2026-06-22 15:31:17 -05:00
parent e02eab7181
commit d62ea73fce
4 changed files with 246 additions and 86 deletions

View file

@ -366,15 +366,11 @@ Current Research Stack cornfield ref (for cross-repo lookup only):
- `docs/GLOSSARY.md` is the authoritative term dictionary. New domain terms - `docs/GLOSSARY.md` is the authoritative term dictionary. New domain terms
introduced in receipts, gates, or cross-module interfaces must be added there introduced in receipts, gates, or cross-module interfaces must be added there
with a source-module citation before they are used. with a source-module citation before they are used.
- `formal/CoreFormalism/HachimojiBridging.lean` — Bridge module linking the - `formal/CoreFormalism/HachimojiLUT.lean` — Virtual LUT hierarchy, phase embedding,
threshold-classification and phase-descriptor Hachimoji models. Defines manifold position. §5 binaryLUT_exists proved (trivial constant-Φ solution).
`LatinBase ≃ GreekBase` bijection, `classifyThreshold` with 7 interval theorems, - `formal/CoreFormalism/HachimojiBridging.lean` — Bridge module for BMCTE→Hachimoji link.
`latinToCodec`/`greekToCodec` bridge functions, injectivity proofs, and a §11 (2026-06-22) defines `lambdaBMCTE(p,N) = exp(-p²/N)`, monotonicity in p,N,
10th-section Markov partition for the doubling map over 8 GreekBase sectors `H_max(N)` and `entropyRatio`. Builds cleanly.
(`doublingTransition` with in-degree/out-degree = 2). §11 (2026-06-22) adds the
BMCTE→Hachimoji link: `lambdaBMCTE(p,N) = exp(-p²/N)` with monotonicity proofs,
`H_max(N)` and `entropyRatio`. Builds cleanly under
`lake build CoreFormalism.HachimojiBridging` (2987 jobs, 0 errors).
- `experiments/bosonic_continuous/` contains the continuous λ(p) interpolation - `experiments/bosonic_continuous/` contains the continuous λ(p) interpolation
validation for the bosonic Monte Carlo estimator, demonstrating smooth transition validation for the bosonic Monte Carlo estimator, demonstrating smooth transition
across p=1..6 with no regime boundary. Source for BMCTE class definition. across p=1..6 with no regime boundary. Source for BMCTE class definition.

View file

@ -1,13 +1,13 @@
{ {
"schema": "silversight_project_map_v1", "schema": "silversight_project_map_v1",
"generated_at": "2026-06-22T19:10:35.365814+00:00", "generated_at": "2026-06-22T20:29:14.607012+00:00",
"repo": "https://github.com/allaunthefox/SilverSight", "repo": "https://github.com/allaunthefox/SilverSight",
"local_path": "/home/allaun/SilverSight", "local_path": "/home/allaun/SilverSight",
"summary": { "summary": {
"total_files": 144, "total_files": 146,
"lean_files": 64, "lean_files": 64,
"python_files": 32, "python_files": 32,
"active": 143, "active": 145,
"quarantined": 1, "quarantined": 1,
"archived": 0, "archived": 0,
"receipt_boundary_files": 4 "receipt_boundary_files": 4
@ -126,10 +126,10 @@
"name": "Docs", "name": "Docs",
"path": "docs", "path": "docs",
"description": "Architecture, contracts, and generated maps.", "description": "Architecture, contracts, and generated maps.",
"file_count": 29, "file_count": 31,
"lean_files": 0, "lean_files": 0,
"python_files": 3, "python_files": 3,
"active": 29, "active": 31,
"quarantined": 0, "quarantined": 0,
"archived": 0 "archived": 0
} }
@ -239,7 +239,7 @@
"research_stack_source": null, "research_stack_source": null,
"role": "", "role": "",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 398 "line_count": 394
}, },
{ {
"path": "CITATION.cff", "path": "CITATION.cff",
@ -530,6 +530,20 @@
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 103 "line_count": 103
}, },
{
"path": "docs/PORT_MAP_DOCTRINE.md",
"layer": "docs",
"language": "markdown",
"kind": "doc",
"module": null,
"build_target": null,
"status": "active",
"imports": [],
"research_stack_source": null,
"role": "",
"receipt_boundary": false,
"line_count": 245
},
{ {
"path": "docs/PROJECT_MAP.json", "path": "docs/PROJECT_MAP.json",
"layer": "docs", "layer": "docs",
@ -542,7 +556,7 @@
"research_stack_source": null, "research_stack_source": null,
"role": "", "role": "",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 2646 "line_count": 2990
}, },
{ {
"path": "docs/PROJECT_MAP.md", "path": "docs/PROJECT_MAP.md",
@ -556,7 +570,7 @@
"research_stack_source": null, "research_stack_source": null,
"role": "", "role": "",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 206 "line_count": 216
}, },
{ {
"path": "docs/RRC_PLACEMENT.md", "path": "docs/RRC_PLACEMENT.md",
@ -628,6 +642,20 @@
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 239 "line_count": 239
}, },
{
"path": "docs/build_logs/2026-06-22_session_bmcte_hachimoji_bridge.md",
"layer": "docs",
"language": "markdown",
"kind": "doc",
"module": null,
"build_target": null,
"status": "active",
"imports": [],
"research_stack_source": null,
"role": "",
"receipt_boundary": false,
"line_count": 55
},
{ {
"path": "docs/build_logs/2026-06-22_session_hachimoji_citation.md", "path": "docs/build_logs/2026-06-22_session_hachimoji_citation.md",
"layer": "docs", "layer": "docs",
@ -1115,7 +1143,7 @@
"research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/BindingSite/BindingSiteEntropy.lean", "research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/BindingSite/BindingSiteEntropy.lean",
"role": "Entropy calculations for binding sites.", "role": "Entropy calculations for binding sites.",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 177 "line_count": 193
}, },
{ {
"path": "formal/BindingSite/BindingSiteHachimoji.lean", "path": "formal/BindingSite/BindingSiteHachimoji.lean",
@ -1397,7 +1425,7 @@
"research_stack_source": null, "research_stack_source": null,
"role": "", "role": "",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 498 "line_count": 496
}, },
{ {
"path": "formal/CoreFormalism/HachimojiManifoldAxiom.lean", "path": "formal/CoreFormalism/HachimojiManifoldAxiom.lean",
@ -1600,7 +1628,7 @@
"research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/PVGS_DQ_Bridge.lean", "research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/PVGS_DQ_Bridge.lean",
"role": "Hermite-sieve construction for PVGS.", "role": "Hermite-sieve construction for PVGS.",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 634 "line_count": 756
}, },
{ {
"path": "formal/PVGS_DQ_Bridge/section3_variety_isomorphism.lean", "path": "formal/PVGS_DQ_Bridge/section3_variety_isomorphism.lean",
@ -1661,7 +1689,7 @@
"research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/PVGS_DQ_Bridge.lean", "research_stack_source": "0-Core-Formalism/lean/Semantics/Semantics/PVGS_DQ_Bridge.lean",
"role": "Quantum-sensing bounds within PVGS.", "role": "Quantum-sensing bounds within PVGS.",
"receipt_boundary": false, "receipt_boundary": false,
"line_count": 807 "line_count": 813
}, },
{ {
"path": "formal/PVGS_DQ_Bridge/section6_effective_bounds.lean", "path": "formal/PVGS_DQ_Bridge/section6_effective_bounds.lean",

View file

@ -1,6 +1,6 @@
# SilverSight Project Map # SilverSight Project Map
**Generated:** 2026-06-22T19:10:35.365814+00:00 **Generated:** 2026-06-22T20:29:14.607012+00:00
**Source repo:** https://github.com/allaunthefox/SilverSight **Source repo:** https://github.com/allaunthefox/SilverSight
@ -8,10 +8,10 @@
## 1. Project Overview ## 1. Project Overview
- **Total tracked files:** 144 - **Total tracked files:** 146
- **Lean files:** 64 - **Lean files:** 64
- **Python files:** 32 - **Python files:** 32
- **Active:** 143 | **Quarantined:** 1 | **Archived:** 0 - **Active:** 145 | **Quarantined:** 1 | **Archived:** 0
- **Receipt-boundary files:** 4 - **Receipt-boundary files:** 4
## 2. Layer Summary ## 2. Layer Summary
@ -27,7 +27,7 @@
| QUBOShims | `qubo` | 5 | 0 | 5 | 5 | 0 | 0 | QUBO/QAOA/Finsler optimization shims. | | QUBOShims | `qubo` | 5 | 0 | 5 | 5 | 0 | 0 | QUBO/QAOA/Finsler optimization shims. |
| Tests | `tests` | 5 | 0 | 5 | 4 | 1 | 0 | Verification fixtures. | | Tests | `tests` | 5 | 0 | 5 | 4 | 1 | 0 | Verification fixtures. |
| Infrastructure | `.github` | 6 | 0 | 2 | 6 | 0 | 0 | CI workflows and repo scripts. | | Infrastructure | `.github` | 6 | 0 | 2 | 6 | 0 | 0 | CI workflows and repo scripts. |
| Docs | `docs` | 29 | 0 | 3 | 29 | 0 | 0 | Architecture, contracts, and generated maps. | | Docs | `docs` | 31 | 0 | 3 | 31 | 0 | 0 | Architecture, contracts, and generated maps. |
## 3. File Inventory ## 3. File Inventory
@ -157,6 +157,7 @@
| `docs/GLOSSARY_ALLOWLIST.md` | — | — | active | — | — | — | | `docs/GLOSSARY_ALLOWLIST.md` | — | — | active | — | — | — |
| `docs/GODEL_BOUNDARY_AND_CLASSIFIERS.md` | — | — | active | — | — | — | | `docs/GODEL_BOUNDARY_AND_CLASSIFIERS.md` | — | — | active | — | — | — |
| `docs/LIBRARY_MANIFEST.md` | — | — | active | — | — | — | | `docs/LIBRARY_MANIFEST.md` | — | — | active | — | — | — |
| `docs/PORT_MAP_DOCTRINE.md` | — | — | active | — | — | — |
| `docs/PROJECT_MAP.json` | — | — | active | — | — | — | | `docs/PROJECT_MAP.json` | — | — | active | — | — | — |
| `docs/PROJECT_MAP.md` | — | — | active | — | — | — | | `docs/PROJECT_MAP.md` | — | — | active | — | — | — |
| `docs/RRC_PLACEMENT.md` | — | — | active | — | — | — | | `docs/RRC_PLACEMENT.md` | — | — | active | — | — | — |
@ -164,6 +165,7 @@
| `docs/SYMBOLIC_REGRESSION_DESIGN.md` | — | — | active | — | — | — | | `docs/SYMBOLIC_REGRESSION_DESIGN.md` | — | — | active | — | — | — |
| `docs/TESTING.md` | — | — | active | — | — | — | | `docs/TESTING.md` | — | — | active | — | — | — |
| `docs/build_logs/2026-06-21_session_build_baseline.md` | — | — | active | — | — | — | | `docs/build_logs/2026-06-21_session_build_baseline.md` | — | — | active | — | — | — |
| `docs/build_logs/2026-06-22_session_bmcte_hachimoji_bridge.md` | — | — | active | — | — | — |
| `docs/build_logs/2026-06-22_session_hachimoji_citation.md` | — | — | active | — | — | — | | `docs/build_logs/2026-06-22_session_hachimoji_citation.md` | — | — | active | — | — | — |
| `docs/build_logs/2026-06-22_session_hachimoji_lut_bridge.md` | — | — | active | — | — | — | | `docs/build_logs/2026-06-22_session_hachimoji_lut_bridge.md` | — | — | active | — | — | — |
| `docs/concept_map/concept_map_receipt.json` | — | — | active | — | — | — | | `docs/concept_map/concept_map_receipt.json` | — | — | active | — | — | — |

View file

@ -37,10 +37,8 @@ namespace HachimojiLUT
/-- The phase circle: 360 discrete positions. /-- The phase circle: 360 discrete positions.
Each position is an angle θ ∈ {0°, 1°, …, 359°}. Each position is an angle θ ∈ {0°, 1°, …, 359°}.
The 8 canonical Hachimoji states occupy {0°, 45°, …, 315°}. -/ The 8 canonical Hachimoji states occupy {0°, 45°, …, 315°}. -/
def PhaseCircle := Fin 360 -- Transparent alias so Fin 360's instances (DecidableEq, Fintype, AddCommGroup via ZMod) resolve.
abbrev PhaseCircle := Fin 360
instance : DecidableEq PhaseCircle := Fin.decidableEq 360
instance : Fintype PhaseCircle := Fin.fintype 360
/-- Phase addition mod 360. -/ /-- Phase addition mod 360. -/
def PhaseCircle.add (a b : PhaseCircle) : PhaseCircle := def PhaseCircle.add (a b : PhaseCircle) : PhaseCircle :=
@ -50,17 +48,8 @@ def PhaseCircle.add (a b : PhaseCircle) : PhaseCircle :=
def PhaseCircle.neg (a : PhaseCircle) : PhaseCircle := def PhaseCircle.neg (a : PhaseCircle) : PhaseCircle :=
⟨(360 - a.val) % 360, Nat.mod_lt _ (by norm_num)⟩ ⟨(360 - a.val) % 360, Nat.mod_lt _ (by norm_num)⟩
instance : AddCommGroup PhaseCircle where -- AddCommGroup is inherited from ZMod 360 = Fin 360 via the abbrev transparency.
add := PhaseCircle.add example : AddCommGroup PhaseCircle := inferInstance
add_assoc := by intro a b c; simp [PhaseCircle.add]; congr 1; omega
zero := ⟨0, by norm_num⟩
zero_add := by intro a; simp [PhaseCircle.add]
add_zero := by intro a; simp [PhaseCircle.add]
neg := PhaseCircle.neg
add_left_neg := by
intro a; ext; simp [PhaseCircle.add, PhaseCircle.neg]
omega
add_comm := by intro a b; simp [PhaseCircle.add]; congr 1; omega
-- ============================================================ -- ============================================================
-- §1 BASE INDEX (was missing from v.01) -- §1 BASE INDEX (was missing from v.01)
@ -82,14 +71,16 @@ theorem canonical_indices_distinct :
stateIndex StateΩ ≠ stateIndex StateSigma ∧ stateIndex StateΩ ≠ stateIndex StateSigma ∧
stateIndex StateSigma ≠ stateIndex StatePi ∧ stateIndex StateSigma ≠ stateIndex StatePi ∧
stateIndex StatePi ≠ stateIndex StateΖ := by stateIndex StatePi ≠ stateIndex StateΖ := by
constructor <;> rfl refine ⟨?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ <;> decide
/-- stateIndex agrees with phase / 45 for all 8 canonical states. -/ /-- stateIndex agrees with phase / 45 for all 8 canonical states. -/
theorem stateIndex_phase_agrees (s : HachimojiState4D) theorem stateIndex_phase_agrees (s : HachimojiState4D)
(h : s.phase ∈ ({0, 45, 90, 135, 180, 225, 270, 315} : Finset )) : (h : s.phase ∈ ({0, 45, 90, 135, 180, 225, 270, 315} : Finset )) :
stateIndex s = ⟨s.phase / 45, by fin_cases h <;> simp_all⟩ := by stateIndex s = ⟨s.phase / 45, by
simp [stateIndex] simp only [Finset.mem_insert, Finset.mem_singleton] at h; omega⟩ := by
fin_cases h <;> simp_all simp only [Finset.mem_insert, Finset.mem_singleton] at h
simp only [stateIndex, Fin.mk.injEq]
omega
-- ============================================================ -- ============================================================
-- §2 CORRECTED S¹⁵ EMBEDDING -- §2 CORRECTED S¹⁵ EMBEDDING
@ -116,17 +107,30 @@ structure SpherePoint where
This is the canonical embedding of /360 into S¹ ⊂ S¹⁵. This is the canonical embedding of /360 into S¹ ⊂ S¹⁵.
The 8 canonical states form a regular octagon on this circle. -/ The 8 canonical states form a regular octagon on this circle. -/
noncomputable def phaseEmbed (θ : PhaseCircle) : SpherePoint where noncomputable def phaseEmbed (θ : PhaseCircle) : SpherePoint :=
coords := fun i => { coords := fun i =>
if i = 0 then cos (θ.val * π / 180) if i = 0 then cos (θ.val * π / 180)
else if i = 2 then sin (θ.val * π / 180) else if i = 2 then sin (θ.val * π / 180)
else 0 else 0
h_norm := by h_norm := by
simp only [Finset.sum_fin_eq_sum_range] calc
norm_num [Finset.sum_range_succ] ∑ i : Fin 16, (if i = 0 then cos (θ.val * π / 180) else if i = 2 then sin (θ.val * π / 180) else 0) ^ 2
rw [show (0 : Fin 16).val = 0 from rfl, = ∑ i ∈ (Finset.univ : Finset (Fin 16)),
show (2 : Fin 16).val = 2 from rfl] (if i = 0 then cos (θ.val * π / 180) else if i = 2 then sin (θ.val * π / 180) else 0) ^ 2 := rfl
simp [cos_sq_add_sin_sq] _ = ∑ i ∈ ({0, 2} : Finset (Fin 16)),
(if i = 0 then cos (θ.val * π / 180) else if i = 2 then sin (θ.val * π / 180) else 0) ^ 2 := by
refine (Finset.sum_subset (by simp) ?_).symm
intro i hi hi_not
have hi0 : i ≠ 0 := by intro h; apply hi_not; simp [h]
have hi2 : i ≠ 2 := by intro h; apply hi_not; simp [h]
simp [hi0, hi2]
_ = cos (θ.val * π / 180) ^ 2 + sin (θ.val * π / 180) ^ 2 := by simp
_ = 1 := by simp [Real.cos_sq_add_sin_sq] }
/-- Unfolding lemma: `(phaseEmbed θ).coords i` reduces to the explicit if-then-else. -/
@[simp] lemma phaseEmbed_coords_eq (θ : PhaseCircle) (i : Fin 16) :
(phaseEmbed θ).coords i =
(if i = 0 then cos (θ.val * π / 180) else if i = 2 then sin (θ.val * π / 180) else 0) := rfl
/-- Unit norm: the embedding always lands on S¹⁵. -/ /-- Unit norm: the embedding always lands on S¹⁵. -/
theorem phaseEmbed_unit_norm (θ : PhaseCircle) : theorem phaseEmbed_unit_norm (θ : PhaseCircle) :
@ -144,29 +148,143 @@ theorem octagon_chord :
let p1 := phaseEmbed ⟨45, by norm_num⟩ let p1 := phaseEmbed ⟨45, by norm_num⟩
∑ i : Fin 16, (p1.coords i - p0.coords i) ^ 2 = ∑ i : Fin 16, (p1.coords i - p0.coords i) ^ 2 =
2 - 2 * cos (π / 4) := by 2 - 2 * cos (π / 4) := by
simp [phaseEmbed, SpherePoint.coords] intro p0 p1
ring_nf calc
rw [show (45 : ) * π / 180 = π / 4 from by ring] ∑ i : Fin 16, (p1.coords i - p0.coords i) ^ 2
rw [show (0 : ) * π / 180 = 0 from by ring] = ∑ i ∈ ({0, 2} : Finset (Fin 16)), (p1.coords i - p0.coords i) ^ 2 := by
simp [cos_zero, sin_zero] refine (Finset.sum_subset (by simp) ?_).symm
ring_nf intro i hi hi_not
rw [cos_sq, sin_sq] have hi0 : i ≠ 0 := by intro h; apply hi_not; simp [h]
ring have hi2 : i ≠ 2 := by intro h; apply hi_not; simp [h]
dsimp [p0, p1]; simp [hi0, hi2]
_ = (p1.coords 0 - p0.coords 0) ^ 2 + (p1.coords 2 - p0.coords 2) ^ 2 := by simp
_ = (cos (π/4) - 1) ^ 2 + (sin (π/4) - 0) ^ 2 := by
dsimp [p0, p1]; simp
have h45 : (45 : ) * π / 180 = π / 4 := by ring_nf
simp [h45]
_ = (cos (π/4) ^ 2 - 2 * cos (π/4) + 1) + sin (π/4) ^ 2 := by ring_nf
_ = (cos (π/4) ^ 2 + sin (π/4) ^ 2) + 1 - 2 * cos (π/4) := by ring_nf
_ = 1 + 1 - 2 * cos (π/4) := by
rw [Real.cos_sq_add_sin_sq (π/4)]
_ = 2 - 2 * cos (π / 4) := by ring_nf
/-- The 8 canonical phases embed to 8 DISTINCT points on S¹⁵. /-- The 8 canonical phases embed to 8 DISTINCT points on S¹⁵.
Proof: distinct phases → distinct (cos, sin) pairs under the Proof: distinct phases → distinct (cos, sin) pairs under the
corrected full-period embedding. -/ corrected full-period embedding. -/
-- Helper: trig values for all 8 angles k*π/4, k=0..7.
-- These provide concrete `simp` normal forms for each case.
private lemma cos_two_pi_div_four : cos (2 * π / 4) = 0 := by
calc
cos (2 * π / 4) = cos (π/2) := by ring_nf
_ = 0 := by simp
private lemma sin_two_pi_div_four : sin (2 * π / 4) = 1 := by
calc
sin (2 * π / 4) = sin (π/2) := by ring_nf
_ = 1 := by simp
private lemma cos_three_pi_div_four : cos (3 * π / 4) = -Real.sqrt 2 / 2 := by
calc
cos (3 * π / 4) = cos (π - π/4) := by ring_nf
_ = cos π * cos (π/4) + sin π * sin (π/4) := by rw [Real.cos_sub]
_ = (-1) * (Real.sqrt 2 / 2) + 0 * (Real.sqrt 2 / 2) := by simp
_ = -Real.sqrt 2 / 2 := by ring_nf
private lemma sin_three_pi_div_four : sin (3 * π / 4) = Real.sqrt 2 / 2 := by
calc
sin (3 * π / 4) = sin (π - π/4) := by ring_nf
_ = sin π * cos (π/4) - cos π * sin (π/4) := by rw [Real.sin_sub]
_ = 0 * (Real.sqrt 2 / 2) - (-1) * (Real.sqrt 2 / 2) := by simp
_ = Real.sqrt 2 / 2 := by ring_nf
private lemma cos_five_pi_div_four : cos (5 * π / 4) = -Real.sqrt 2 / 2 := by
calc
cos (5 * π / 4) = cos (π + π/4) := by ring_nf
_ = -cos (π/4) := by simp [Real.cos_add]
_ = -(Real.sqrt 2 / 2) := by simp
_ = -Real.sqrt 2 / 2 := by ring_nf
private lemma sin_five_pi_div_four : sin (5 * π / 4) = -Real.sqrt 2 / 2 := by
calc
sin (5 * π / 4) = sin (π + π/4) := by ring_nf
_ = -sin (π/4) := by simp [Real.sin_add]
_ = -(Real.sqrt 2 / 2) := by simp
_ = -Real.sqrt 2 / 2 := by ring_nf
private lemma cos_six_pi_div_four : cos (6 * π / 4) = 0 := by
calc
cos (6 * π / 4) = cos (3 * π / 2) := by ring_nf
_ = cos (π + π/2) := by ring_nf
_ = -cos (π/2) := by simp [Real.cos_add]
_ = 0 := by simp
private lemma sin_six_pi_div_four : sin (6 * π / 4) = -1 := by
calc
sin (6 * π / 4) = sin (3 * π / 2) := by ring_nf
_ = sin (π + π/2) := by ring_nf
_ = -sin (π/2) := by simp [Real.sin_add]
_ = -1 := by simp
private lemma cos_seven_pi_div_four : cos (7 * π / 4) = Real.sqrt 2 / 2 := by
calc
cos (7 * π / 4) = cos (π/4) := by
calc
cos (7 * π / 4) = cos (2*π - π/4) := by ring_nf
_ = cos (2*π) * cos (π/4) + sin (2*π) * sin (π/4) := by rw [Real.cos_sub]
_ = 1 * cos (π/4) + 0 * sin (π/4) := by simp
_ = cos (π/4) := by ring_nf
_ = Real.sqrt 2 / 2 := by simp
private lemma sin_seven_pi_div_four : sin (7 * π / 4) = -Real.sqrt 2 / 2 := by
calc
sin (7 * π / 4) = sin (2*π - π/4) := by ring_nf
_ = sin (2*π) * cos (π/4) - cos (2*π) * sin (π/4) := by rw [Real.sin_sub]
_ = 0 * cos (π/4) - 1 * sin (π/4) := by simp
_ = - sin (π/4) := by simp
_ = -(Real.sqrt 2 / 2) := by simp
_ = -Real.sqrt 2 / 2 := by ring_nf
theorem phaseEmbed_injective_on_canonical : theorem phaseEmbed_injective_on_canonical :
∀ (i j : Fin 8), i ≠ j → ∀ (i j : Fin 8), i ≠ j →
phaseEmbed ⟨45 * i.val, by omega⟩ ≠ phaseEmbed ⟨45 * j.val, by omega⟩ := by phaseEmbed ⟨45 * i.val, by omega⟩ ≠ phaseEmbed ⟨45 * j.val, by omega⟩ := by
intro i j hij intro i j hij h
intro h apply hij
have := congr_arg (fun p => p.coords 0) h have hcos_raw : (phaseEmbed ⟨45 * i.val, by omega⟩).coords 0 = (phaseEmbed ⟨45 * j.val, by omega⟩).coords 0 :=
simp [phaseEmbed] at this congr_arg (·.coords 0) h
-- cos(i·π/4) = cos(j·π/4) with i ≠ j in 0..7 have hsin_raw : (phaseEmbed ⟨45 * i.val, by omega⟩).coords 2 = (phaseEmbed ⟨45 * j.val, by omega⟩).coords 2 :=
-- By decidability of the 8×8 case: congr_arg (·.coords 2) h
fin_cases i <;> fin_cases j <;> simp_all (config := { decide := true }) <;> have hcos_val (k : Fin 8) : (phaseEmbed ⟨45 * k.val, by omega⟩).coords 0 = cos (((45 : ) * (k.val : ) * π) / 180) := by
norm_num [Real.cos_pi_div_four, Real.cos_three_pi_div_four] at this simp
have hsin_val (k : Fin 8) : (phaseEmbed ⟨45 * k.val, by omega⟩).coords 2 = sin (((45 : ) * (k.val : ) * π) / 180) := by
simp
have h45 : (45 : ) * π / 180 = π / 4 := by ring_nf
have hcos : cos ((i.val : ) * π / 4) = cos ((j.val : ) * π / 4) := by
calc
cos ((i.val : ) * π / 4) = cos (((45 : ) * (i.val : ) * π) / 180) := by ring_nf
_ = (phaseEmbed ⟨45 * i.val, by omega⟩).coords 0 := (hcos_val i).symm
_ = (phaseEmbed ⟨45 * j.val, by omega⟩).coords 0 := hcos_raw
_ = cos (((45 : ) * (j.val : ) * π) / 180) := hcos_val j
_ = cos ((j.val : ) * π / 4) := by ring_nf
have hsin : sin ((i.val : ) * π / 4) = sin ((j.val : ) * π / 4) := by
calc
sin ((i.val : ) * π / 4) = sin (((45 : ) * (i.val : ) * π) / 180) := by ring_nf
_ = (phaseEmbed ⟨45 * i.val, by omega⟩).coords 2 := (hsin_val i).symm
_ = (phaseEmbed ⟨45 * j.val, by omega⟩).coords 2 := hsin_raw
_ = sin (((45 : ) * (j.val : ) * π) / 180) := hsin_val j
_ = sin ((j.val : ) * π / 4) := by ring_nf
have hsq2 : (Real.sqrt 2) ^ 2 = 2 := Real.sq_sqrt (by norm_num : (0:) ≤ 2)
fin_cases i <;> fin_cases j <;>
first
| rfl
| simp [Real.cos_zero, Real.sin_zero,
Real.cos_pi_div_four, Real.sin_pi_div_four,
cos_two_pi_div_four, sin_two_pi_div_four,
cos_three_pi_div_four, sin_three_pi_div_four,
Real.cos_pi, Real.sin_pi,
cos_five_pi_div_four, sin_five_pi_div_four,
cos_six_pi_div_four, sin_six_pi_div_four,
cos_seven_pi_div_four, sin_seven_pi_div_four] at hcos hsin
<;> nlinarith [hsq2]
-- ============================================================ -- ============================================================
-- §3 STATE → PHASE CIRCLE -- §3 STATE → PHASE CIRCLE
@ -188,7 +306,7 @@ theorem canonical_phases_preserved :
stateToPhase StateSigma = ⟨225, by norm_num⟩ ∧ stateToPhase StateSigma = ⟨225, by norm_num⟩ ∧
stateToPhase StatePi = ⟨270, by norm_num⟩ ∧ stateToPhase StatePi = ⟨270, by norm_num⟩ ∧
stateToPhase StateΖ = ⟨315, by norm_num⟩ := by stateToPhase StateΖ = ⟨315, by norm_num⟩ := by
constructor <;> rfl native_decide
-- ============================================================ -- ============================================================
-- §4 EQUATION → MANIFOLD POSITION -- §4 EQUATION → MANIFOLD POSITION
@ -214,21 +332,33 @@ theorem E_mc2_position :
equationPosition { n_vars := 2, n_ops := 2, max_depth := 0, equationPosition { n_vars := 2, n_ops := 2, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = n_quantifiers := 0, n_relations := 1 } =
phaseEmbed ⟨0, by norm_num⟩ := by phaseEmbed ⟨0, by norm_num⟩ := by
simp [equationPosition, classifyEquation, stateToPhase, StateΦ] unfold equationPosition
have hclass : classifyEquation { n_vars := 2, n_ops := 2, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = StateΦ := by
native_decide
rw [hclass, canonical_phases_preserved.1]
/-- Pythagorean theorem lives at the Σ (symmetric) vertex. -/ /-- Pythagorean theorem lives at the Σ (symmetric) vertex. -/
theorem pythagorean_position : theorem pythagorean_position :
equationPosition { n_vars := 3, n_ops := 7, max_depth := 0, equationPosition { n_vars := 3, n_ops := 7, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = n_quantifiers := 0, n_relations := 1 } =
phaseEmbed ⟨225, by norm_num⟩ := by phaseEmbed ⟨225, by norm_num⟩ := by
simp [equationPosition, classifyEquation, stateToPhase, StateSigma] unfold equationPosition
have hclass : classifyEquation { n_vars := 3, n_ops := 7, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = StateSigma := by
native_decide
rw [hclass, canonical_phases_preserved.2.2.2.2.2.1]
/-- Contradiction "0 = 1" lives at the Ω (collision) vertex. -/ /-- Contradiction "0 = 1" lives at the Ω (collision) vertex. -/
theorem contradiction_position : theorem contradiction_position :
equationPosition { n_vars := 0, n_ops := 0, max_depth := 0, equationPosition { n_vars := 0, n_ops := 0, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = n_quantifiers := 0, n_relations := 1 } =
phaseEmbed ⟨180, by norm_num⟩ := by phaseEmbed ⟨180, by norm_num⟩ := by
simp [equationPosition, classifyEquation, stateToPhase, StateΩ] unfold equationPosition
have hclass : classifyEquation { n_vars := 0, n_ops := 0, max_depth := 0,
n_quantifiers := 0, n_relations := 1 } = StateΩ := by
native_decide
rw [hclass, canonical_phases_preserved.2.2.2.2.1]
-- ============================================================ -- ============================================================
-- §5 VIRTUAL LUT HIERARCHY -- §5 VIRTUAL LUT HIERARCHY
@ -278,8 +408,6 @@ structure GenomeLUT extends VirtualLUT 50 where
theorem genomeLUT_exists : ∃ _ : GenomeLUT, True := theorem genomeLUT_exists : ∃ _ : GenomeLUT, True :=
⟨{ pattern := fun _ => phaseEmbed ⟨0, by norm_num⟩ ⟨{ pattern := fun _ => phaseEmbed ⟨0, by norm_num⟩
lookup := fun _ => phaseEmbed ⟨0, by norm_num⟩ lookup := fun _ => phaseEmbed ⟨0, by norm_num⟩
toVirtualLUT := { pattern := fun _ => phaseEmbed ⟨0, by norm_num⟩
lookup := fun _ => phaseEmbed ⟨0, by norm_num⟩ }
genome := fun _ => StateΦ genome := fun _ => StateΦ
path := fun _ => phaseEmbed ⟨0, by norm_num⟩ path := fun _ => phaseEmbed ⟨0, by norm_num⟩
h_path := fun _ => rfl }, trivial⟩ h_path := fun _ => rfl }, trivial⟩
@ -306,10 +434,9 @@ def isStabilityPoint (θ : PhaseCircle) : Bool :=
theorem stability_points : theorem stability_points :
∀ θ : PhaseCircle, isStabilityPoint θ = true ↔ ∀ θ : PhaseCircle, isStabilityPoint θ = true ↔
θ.val = 0 θ.val = 180 := by θ.val = 0 θ.val = 180 := by
intro θ have h : ∀ θ : PhaseCircle, isStabilityPoint θ = true ↔ θ.val = 0 θ.val = 180 := by
simp [isStabilityPoint, conjugate, PhaseCircle.neg, BEq.beq, native_decide
Fin.ext_iff] exact h
omega
/-- Φ (phase 0°) is a stability point. -/ /-- Φ (phase 0°) is a stability point. -/
theorem phi_is_stable : isStabilityPoint ⟨0, by norm_num⟩ = true := by theorem phi_is_stable : isStabilityPoint ⟨0, by norm_num⟩ = true := by
@ -327,7 +454,7 @@ theorem other_bases_not_stable :
isStabilityPoint ⟨225, by norm_num⟩ = false ∧ isStabilityPoint ⟨225, by norm_num⟩ = false ∧
isStabilityPoint ⟨270, by norm_num⟩ = false ∧ isStabilityPoint ⟨270, by norm_num⟩ = false ∧
isStabilityPoint ⟨315, by norm_num⟩ = false := by isStabilityPoint ⟨315, by norm_num⟩ = false := by
constructor <;> rfl native_decide
-- ============================================================ -- ============================================================
-- §7 THE MASTER MANIFEST -- §7 THE MASTER MANIFEST
@ -342,15 +469,12 @@ theorem other_bases_not_stable :
-- §2 octagon_chord (correct chord length under π/180) -- §2 octagon_chord (correct chord length under π/180)
-- §3 canonical_phases_preserved -- §3 canonical_phases_preserved
-- §4 E_mc2_position, pythagorean_position, contradiction_position -- §4 E_mc2_position, pythagorean_position, contradiction_position
-- §5 genomeLUT_exists -- §5 genomeLUT_exists, binaryLUT_exists (trivial constant-Φ solution)
-- §6 stability_points (Φ and Ω are the unique fixed points) -- §6 stability_points (Φ and Ω are the unique fixed points)
-- --
-- SORRY / OPEN: -- SORRY / OPEN:
-- §2 phaseEmbed_injective_on_canonical — needs native_decide or -- §2 phaseEmbed_injective_on_canonical — needs native_decide or
-- explicit trig irrationality for intermediate angles. -- explicit trig irrationality for intermediate angles.
-- §5 BinaryLUT.h_consistent — requires concrete compose table.
-- Fill in with classifyEquation(compose a b shape) when
-- the composition semantics are specified.
-- --
-- NEXT (fine-grained manifold position): -- NEXT (fine-grained manifold position):
-- The coarse position is one of 8 octagon vertices. -- The coarse position is one of 8 octagon vertices.
@ -359,4 +483,14 @@ theorem other_bases_not_stable :
-- 15 remaining S¹⁵ dimensions orthogonal to the phase plane. -- 15 remaining S¹⁵ dimensions orthogonal to the phase plane.
-- That is the subject of HachimojiTokenEmbed.lean (not yet written). -- That is the subject of HachimojiTokenEmbed.lean (not yet written).
/-- A concrete BinaryLUT exists: the constant-Φ composition table.
TODO: Replace with non-trivial phase-addition table
when the full 8×8 composition semantics are specified.
h_consistent holds because both sides reduce to phaseEmbed ⟨0⟩. -/
theorem binaryLUT_exists : ∃ _ : BinaryLUT, True :=
⟨{ pattern := fun _ => phaseEmbed ⟨0, by norm_num⟩
lookup := fun _ => phaseEmbed ⟨0, by norm_num⟩
compose := fun _ _ => StateΦ
h_consistent := fun _ _ => rfl }, trivial⟩
end HachimojiLUT end HachimojiLUT