docs(agents): document Float-free FixedPoint architecture, E8Sidon module, updated build baselines

Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
This commit is contained in:
Devin AI 2026-06-15 03:39:44 +00:00
parent d9c79c467e
commit 5774aaccee
2 changed files with 46 additions and 4 deletions

View file

@ -18,12 +18,13 @@ v0.4.74
## Research Stack — Current Project State (2026-05-28)
**Build:** `lake build` — 3571 jobs, 0 errors
**Build:** `lake build` — 3573 jobs, 0 errors (reverified 2026-06-15)
**Python tests:** 68/68 pass
**Sorry inventory:** 8 total (all with `TODO(lean-port)` documentation)
**Sorry inventory:** 20 total (all with `TODO(lean-port)` documentation)
- `AdjugateMatrix`: 3 sorries
- `FourPrimitiveErdosRenyi`: 4 sorries
- `HyperbolicStateSurface`: 1 sorry
- `E8Sidon`: 12 sorries (Eisenstein/Sidon, blocked on Mathlib valence formula)
### Key Architecture Decisions
- **Q16_16 fixed-point arithmetic** throughout — no Float in hot paths (AGENTS.md §1.4 compliant)
@ -32,7 +33,8 @@ v0.4.74
- **Golden ratio unit separation** formalized in Lean
### New Lean Modules
`AdjugateMatrix`, `OptimizedRoute`, `GoldenRatioSeparation`, `BraidBitwiseODE`
`AdjugateMatrix`, `OptimizedRoute`, `GoldenRatioSeparation`, `BraidBitwiseODE`,
`E8Sidon`, `FixedPointBoundary`
### New Python Modules
`qubo_highs.py`, `alphaproof_loop.py`, `scale_space_solver.py`

View file

@ -113,6 +113,44 @@ Full workspace: **3573 jobs, 0 errors** (`lake build`, reverified 2026-06-15).
PistSimulation: **3309 jobs, 0 errors** (`lake build Semantics.PistSimulation`, commit `778b78d3`, reverified 2026-05-27).
EmergencyBoot: **3302 jobs, 0 errors** (`lake build Semantics.Hardware.EmergencyBootTypes Semantics.Hardware.EmergencyBootState Semantics.Hardware.EmergencyBootShell`, reverified 2026-05-27).
### Float-Free FixedPoint Architecture (as of 2026-06-15)
`FixedPoint.lean` (968 lines) is now fully Float-free. Core compute functions
use integer-only algorithms:
| Function | Algorithm | Location |
|----------|-----------|----------|
| `natLog2` | Fuel-based bit-shift loop (64 steps) | `FixedPoint.lean:30` |
| `intSqrt` | Integer Newton's method (64 iterations) | `FixedPoint.lean:43` |
| `Q16_16.sqrt` | `intSqrt(q.raw * 65536)` | `FixedPoint.lean:316` |
| `Q16_16.log2` | Bit extraction + linear interpolation (94548 = 1/ln2 in Q16.16) | `FixedPoint.lean:324` |
| `Q16_16.expNeg` | 7-segment piecewise-linear, max error ~0.02 | `FixedPoint.lean:336` |
| `Q0_16.log2` | Bit extraction (47274 = 1/ln2 in Q0.16) | `FixedPoint.lean:130` |
Removed from core: `ofFloat`, `toFloat`, `ln`, `pow`, `sin`, `log` (Q16_16);
`toFloat`, `ofFloat` (Q0_16); `q0_64ScaleFloat`, `ofFloat`, `toFloat` (Q0_64).
`FixedPointBoundary.lean` (89 lines) quarantines Float conversions at the I/O
boundary. 14 downstream files import it for display/JSON purposes:
`FuzzyAssociation`, `Autobalance`, `ProvenanceSource`, `Tape`,
`Q16_16Numerics`, `CGAVersorAddress`, `EfficiencyAnalysis`,
`Functions/BracketedCalculus`, `LocalDerivative`, `NUVMATH`, `QFactor`,
`SLUG3`, `SubagentOrchestrator`, `ExtensionScaffold/Compression/SignalPolicy`,
`LawfulLoss`.
### E8Sidon Module (as of 2026-06-15)
`E8Sidon.lean` (438 lines) formalizes the Eisenstein coefficient identity
and Sidon set infrastructure:
- `sigma3`, `sigma7`, `convolutionLHS` — divisor sum definitions with 13 `#eval` witnesses
- `bernoulli_four`, `bernoulli_eight` — B4 = B8 = -1/30 via `native_decide`
- `E4_normalization`, `E8_normalization` — -(2k/Bk) = 240, 480
- `E4_sq_eq_E8_coeff` — theorem (1 sorry, blocked on Mathlib valence formula)
- `IsSidonSet`, `sidon8` (card=8), Sidon energy bounds, greedy extraction
- 12 sorries total, all with `TODO(lean-port)` + proof sketches
- 1 axiom (`e8_additive_completeness`) — open problem in additive combinatorics
### BraidDiatCodec — chirality/MMR/braid residual codec
New codec module (`Semantics.BraidDiatCodec`) layers the mountains-on-mountain stack into a compact binary format:
@ -273,7 +311,9 @@ after narrowly compiling the file under a scratch target.
- `Q16_16` is a Subtype `{ x : Int // q16MinRaw ≤ x ∧ x ≤ q16MaxRaw }`.
Safe constructors: `Q16_16.ofRawInt (n : Int)`, `Q16_16.ofBits (u : UInt32)`,
`Q16_16.ofNat`, `Q16_16.ofRatio`. No struct literals `{ val := N }`.
- `Q0_16` has `add`/`sub` (no `addSat`/`subSat`).
Float constructors (`ofFloat`/`toFloat`) are only in `FixedPointBoundary.lean`.
- `Q0_16` has `add`/`sub` (no `addSat`/`subSat`). `log2` is integer-only
(bit extraction). Float conversions are in `FixedPointBoundary.lean`.
- `List.get?` does not exist — use `list[i]?` subscript syntax.
- `liftMetaM` is the correct combinator for `MetaM → TacticM` in `mapM`.
- `MVarId.toNat` does not exist — use `g.name.toString`.