Hermes already handles model routing. Remove MCP server, keep skill
as a cost-optimized model selection guide.
Key insight: DeepSeek V4 Pro is 55x cheaper than Claude Opus and
nearly as good at math/code. Default to DeepSeek, escalate to Opus
only when stuck.
Removed: break_glass_mcp.py (unnecessary — Hermes handles routing)
Defines the core tension: formal verification of novel mathematical
structures using LLMs that can't reliably do arithmetic. Documents
why panels help (diversity > quality), what makes the work
transcendental, and how the break-glass protocol addresses it.
Self-contained document for LLM agents to close the 6 remaining
bridge sorries. Covers:
- Theorem statement and definitions
- Proof architecture (3 verified kernels + 6 bridge sorries)
- What each sorry needs and the proof strategy
- The key insight (zero/non-zero pattern only)
- The blocker (simp can't reduce List operations on 8 elements)
- Possible solutions and file context
canonicalize_ne_zero: (canonicalize q != 0) = (q != 0)
Proof: unfold canonicalize, split on if-condition,
rw h in isTrue branch (Q16_16.one != zero = true by rfl),
simp in isFalse branch.
canonicalize_pattern: boolPattern ∘ canonicalizeSignature = boolPattern
Proof: unfold definitions, exhaustive match on list length (0-9+ elements),
simp with canonicalize_ne_zero rewrites each component.
6 bridge sorries remain (down from 8). Each requires list-level reasoning
over 8-element Q16_16 lists — the simp terms from List.zip/filter/all are
too large for automatic simplification.
Build: 3314 jobs, 0 errors (Compiler surface)
native_decide +revert fails on Q16_16 (Subtype Int, infinite type).
gapQ16_canonical (verified) proves the computation works on {zero,one}.
The bridge from arbitrary Q16_16 to canonical values requires proving
predicate invariance under canonicalization — which is the same lemma.
The fundamental chicken-and-egg: to use native_decide, we need finite
values. To get finite values, we canonicalize. To prove canonicalization
preserves predicates, we need the bridge. The bridge is the lemma we
are trying to prove.
7 bridge sorries remain, all list-induction over 8 elements.
Build: 3314 jobs, 0 errors
gapQ16_canonical: for all 2^8 boolean patterns, verifySpectralGap on
canonical Q16_16 bins (zero or one) = boolGapPat on the pattern.
Verified by native_decide — the first time verifySpectralGap has been
computationally verified on concrete Q16_16 values.
Three independent computational kernels now verified:
- mergeCheck_all_256: 256×256 byte pairs (native_decide)
- gap_byte_pat: 256 boolean patterns (native_decide)
- gapQ16_canonical: 256 Q16_16 patterns (native_decide)
The bridge lemmas (canonicalize_pattern, gap_preserved, etc.) remain
as sorry — each is ~20 lines of list simp on 8-element lists.
Build: 3314 jobs, 0 errors
A boolean is a bit. Eight bins = eight bits = one byte.
mergeCheck_all_256: closed Bool term verified by native_decide over
all 256×256 byte pairs. Zero assumptions, zero free variables, zero sorry.
The kernel proves: for any two bytes where gap(s) ∧ gap(e) ∧ disjoint ∧
crossGap all hold, gap(s OR e) also holds. This is the complete
computational proof of the spectral gap merge property at the bit level.
The remaining sorry is the Q16_16→byte bridge: converting SpectralSignature
bins to/from Nat bytes and showing the predicates correspond. This is
standard list-level reasoning over 8 elements (unzip, map, filter, all).
Build: 3314 jobs, 0 errors (Compiler surface)
Theorem restated with crossInputGap hypothesis (no active bin from s
adjacent to active bin from e). Without this, the theorem is false:
counterexample s=[1,0,1,0,...] e=[0,0,0,1,0,1,...] has merge with
adjacent active bins despite resonanceDegeneracy=0.
Added to Spectrum.lean:
- crossInputGap: cross-input adjacency check on adjacent bin pairs
Added to GraphRank.lean:
- boolGap8: boolean gap check on 8 explicit values
- Complete mathematical proof sketch in docstring (4 steps)
The sorry remains: the Q16_16↔Bool bridge for 8-element lists requires
list-level induction on activeBins/verifySpectralGap/resonanceDegeneracy/
crossInputGap. The boolean kernel (boolGap8) is defined and ready for
native_decide verification once the bridge is automated.
Build: 3314 jobs, 0 errors (Compiler surface)
Discovery: the theorem with only resonanceDegeneracy=0 is FALSE.
Counterexample: s=[1,0,1,0,...] e=[0,0,0,1,0,1,...] — no overlap,
both gap-valid, but merge has adjacent active bins at positions 2,3.
Missing hypothesis: cross-input gap (no active bin from s adjacent to
active bin from e). This holds in Sidon-basis context (powers-of-2
labels ensure min separation ≥ 2).
The sorry is now documented with:
- Exact counterexample
- Required cross-input gap hypothesis
- Proof path when cross-gap is available
- Boolean model (Fin 8 → Bool) verification strategy
Build: 3314 jobs, 0 errors (Compiler surface)
The sorry remains but now has a concrete proof strategy:
- Boolean abstraction: convert Q16_16 bins to Bool (zero vs non-zero)
- Prove gap-preservation on finite 2^8 boolean model (native_decide)
- Lift to Q16_16 via contrapositive: merge active → input active
Blocker: native_decide can't handle free List Bool variables;
needs Fin 8 → Bool representation or custom tactic for the lift.
See TODO(lean-port) marker in theorem docstring.
3,057 theorems/lemmas → ene.prover_state (2,966 after dedup)
3,047 verified proofs → ene.prover_instances
Also fixes ON CONFLICT DO NOTHING and FK bypass for bulk load.
These directories were tracked despite gitignore patterns. Removing them
frees ~120 GB (shared-data), ~1.5 GB (archive), and ~7 GB (lean_binned).
They are either offloaded to Garage S3/Google Drive or superseded
proof artifacts.
- distribute_extraction.py: add gremlin_escape() for special chars,
add --batch-size async mode with submitAsync()
- load_cornfield.py: pipe SQL via stdin to avoid shell metachar issues
- populate_ene_tables.py: same stdin pipe fix for neon SSH calls
When --rrc is given, the shim runs pist-classify-trace on the trace fixture
and rrc-watchdog for RRC alignment, then writes an additional
rrc_alignment receipt into ene.receipts alongside the build receipt.
Sets content_hash to NULL for build_log packages so the partial unique
index ene_pkg_hash_idx does not prevent multiple ingestions of the same
build output. Each build session now gets its own package row. Also makes
receipt/ingest_event inserts idempotent with ON CONFLICT DO NOTHING.
Add concept extraction/orchestration scripts under scripts/ and infra
metadata in infra.json. Generated extraction outputs live under extraction/
and are regenerated from scripts; add extraction/ to .gitignore.
Adds a Build-log automation section noting the post-commit hook runs lake_build_ingest.py Compiler in the background, inserting into ENE on neon-64gb. Includes log path and reinstall note.
Adds canonical database location notes to 4-Infrastructure/AGENTS.md:
- Postgres canonical instance is the arxiv-pg container on neon-64gb.
- Gremlin canonical instance is the Azure Cosmos DB endpoint.
- Explicitly warns against spinning up local Postgres on qfox for
production data.
Also adds `lake_build_ingest.py` to the stack-solidification anchors.
Adds 4-Infrastructure/shim/lake_build_ingest.py, a pure-I/O shim that:
- runs `lake build <target>` in the Semantics directory,
- parses job count, error count, warnings, and status,
- inserts a session, package, receipt, and ingest_event into the
ENE database on neon-64gb (arxiv-pg container).
The script contains no admissibility logic and no Float arithmetic.
Tested with `lake build Semantics.NKHodgeFAMM` — 8316 jobs, 0 errors,
session d1ea53db2185df87dd41497da12101f5.
Adds logViscosityRatio, log_viscosity_monotone, and ν_eff_monotone
to Semantics/NKHodgeFAMM.lean section 6b. The adaptive viscosity law
ν_eff = ν₀*(1+μ) is multiplicative in ν₀ and additive in scar density μ;
taking λ = log(ν_eff/ν₀) = log(1+μ) turns the multiplicative feedback into
an additive coordinate. This gives nlinarith a direct handle on viscosity
monotonicity and connects the module to Kritchevsky's "Everything Is
Logarithms" framing (SilverSight CITATION.cff).
Also marks a few pre-existing unused variables with underscores to silence
the linter.
Build: 8316 jobs, 0 errors (lake build Semantics.NKHodgeFAMM)
- Updates CHANGELOG.md with 2026-06-21 entry describing the two-regime
phase transition observed on neon-64gb: bosonic MC (p<=4) vs
distinguishable approximation (p>=5) in rrc_bosonic_tensor_network.py.
- Adds BMCTE, SBOE, LPMCE, effective support, and observable-estimation
vs exact-simulation terms to 6-Documentation/docs/GLOSSARY.md.
- Fixes Hilbert-dimension summary in rrc_bosonic_tensor_network.py to use
C(N+p-1, p) instead of C(N, p).
No core logic changed; documentation and summary-output correction only.
- Updated .mcp.json with WOLFRAM_APP_ID env var (fallback to hardcoded HYJE3R3R63)
- Toolchain manifest documents all tools used in hachimoji citation pipeline
Build: 3314 jobs, 0 errors (lake build)
Check file sizes before loading bytes into memory and stream large files
directly into the tarball to prevent OOM errors on Steam Deck. Skip downloading
files that already exist locally.
Build: 0 errors (py_compile)
Adds 4-Infrastructure/shim/mcp_drive_gccl_compress.py:
- downloads a Google Drive folder via @piotr-agier/google-drive-mcp
- GCCL-delta-compresses contents into .tar.zst + JSON manifest
- uploads archive + manifest back to Drive
- optionally trashes the original folder
- handles MCP listFolder pagination
Updates 4-Infrastructure/AGENTS.md with the new shim anchor.
No rclone or egress-heavy operations; all Drive I/O goes through MCP.
Finds related arxiv papers for cornfield concepts via keyword overlap.
Uses /shm/arxiv_texts.tsv (559 MB) for fast local matching.
pg_trgm GIN indexes on neon-64gb for Postgres queries.
Results: 240 candidate citations for 48 concepts.
Loaded into concept_citations table (relation_type='candidate').
240 candidate citations found for 48 cornfield concepts using
pg_trgm GIN indexes and /shm file-based matching against 700k papers.
DB state: 358 total concept_citations (96 grounds, 22 extends, 240 candidates)
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.