Moves all classification authority from Python into Lean:
- Adds `0-Core-Formalism/lean/Semantics/PistClassifyTrace.lean` executable.
Reads a raw trace JSON and emits spectral radius, RRC shape, and tactic
family using `Semantics.PIST.Spectral` and `Semantics.PIST.Classify`.
- Registers `pist-classify-trace` in `lakefile.toml`.
- Fixes `Semantics.PIST.Spectral` power iteration to handle directed
transition matrices:
- `symmetrize` now preserves half-integer weights as Q16_16 raw values.
- `matVecMul` uses saturated Q16_16 arithmetic to prevent overflow.
- Rewrites `4-Infrastructure/shim/pist_trace_classify_offline.py` as a pure
I/O wrapper: reads JSON, calls the Lean classifier, optionally calls
`rrc-watchdog`, and emits the combined JSON. Removes Python-side spectral
computation, shape thresholds, tactic heuristic, and KNN.
- Updates `AGENTS.md` and `4-Infrastructure/AGENTS.md` with the new build
baseline and shim contract.
Verification:
- `lake build` → 8604 jobs, 0 errors
- Canary trace outputs match previous Python outputs to within Q16_16 rounding
(e.g., apply_chain λ_q16 = 59044 vs 59045).
- `python3 -m py_compile` on the rewritten shim passes.
Formulate directed Finsler routing as TSP-MTZ (QAP) using HiGHS MIP and
benchmark against QUBO subset-selection. Five solvers across four sizes.
Key results:
- QAP-MIP scales well: n=48 solves to feasibility in 13s
- QUBO degenerate for all-positive Q_ij (unconstrained always selects 0)
- 2-phase strategy viable: QUBO-card to select K, then TSP-on-subset
Build: N/A (Python shim)
Document the switch from the unreachable k3s llama.cpp NodePort to a
local Ollama service (ollama-hermes3.service) serving hermes3:latest.
Hermes config now points at http://127.0.0.1:11434/v1. Note CPU fallback
until a CUDA-enabled llama-server is available.
Keep Kimi Code on the direct Kimi endpoint by default; document the
Headroom proxy as an opt-in via KIMI_BASE_URL env var. Avoids breaking
Kimi OAuth/search/fetch services when the proxy is not needed.
Add Kimi Code proxy subsection: systemd user service on port 8789,
Headroom anyllm/openai backend targeting https://api.kimi.com/coding/v1,
and ~/.kimi/config.toml base_url update.
- Corrected type mismatches in SOSCertificate and SemialgebraicSet constraints, ensuring polynomial components are correctly typed as ((σ → ℝ) → ℝ).
- Resolved block comment syntax errors (/-- unexpected token) by converting section commentaries to standard block comments.
- Decomposed foldl list inductions into generalized induction helper lemmas foldl_nonneg and foldl_weighted_nonneg to resolve type mismatches.
- Unfolded let bindings in softplus_derivative_bounded via dsimp only to allow linarith to successfully find contradictions.
- Updated CITATION.cff, GEMINI.md, and local AGENTS.md files with baseline records.
Build: 3314 jobs, 0 errors (lake build Compiler)
Added theoretical entropy power laws, physical target scales, RTX 4070 SUPER hardware limits (VRAM & time complexity), and scaling recommendations to the ContextStream blocks in AGENTS.md and GEMINI.md.
Build: 3314 jobs, 0 errors (lake build Compiler)
Replace the TODO(lean-port) sorry with a complete proof of the
projectionOrdering theorem: for positive SourceValue pairs s1 < s2
with s2 ≤ maxExpected, projectToCoding preserves strict ordering
of the Q0_64 values.
The proof uses Nat-only arithmetic (no Float) and handles two cases:
- a2 < d: both values fit in Q0_64 range, ordering follows from
monotonicity of integer division
- a2 = d: a2*s/d = s clamped to q0_64MaxRaw; a1*s/d < q0_64MaxRaw
via the key inequality (d-1)*s < (s-1)*d
Build: 8598 jobs, 0 errors (lake build)
This squashes all local history (768 commits) onto the scrubbed PR #90
baseline. Individual commits were lost during filter-repo corruption;
the working tree content is preserved intact.
Build: N/A (working tree state only)
- Added lean-proof skill auto-load requirement to Ground Rules
- Added no-Float rule to Ground Rules (front and center)
- lean-proof skill has trigger_patterns for auto-activation
- lean-autoformalization and vcn-compute-substrate also have triggers
- 6 hub skills installed (fpga, systemverilog, verilog-design, math-help, physics-intuition, hardware-counters)
- MCP4EDA registered as MCP server
Adds §5 Programming choice flow — a decision tree that runs before writing
any new code. Covers:
- Admissibility / gating / routing logic → Lean only
- Receipt minting / top-level JSON emission → AVMIsa.Emit only (sole boundary)
- Alignment classification → Lean (RRC.Emit or new Semantics.RRC.*)
- Raw input features → Python shim acceptable with strict constraints
(no admissibility logic, regenerable, TODO(lean-port) if portable)
- Float in compute paths → STOP, use Q16_16
- Promotion advancement in shim space → STOP, always not_promoted until
a Lean gate passes
- Pure I/O → Python shim fine, must route receipt output through AVMIsa.Emit
Summary rule: Lean owns all decisions. Python owns all I/O.
Generated with [Devin](https://cli.devin.ai/docs)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>