Skip to content

Commit f73ee00

Browse files
hyperpolymathclaude
andcommitted
docs(handover): declare prover/corpus saturation lane
Parallel work alongside wave3/161-162 (chapel bench/telemetry). Hard exclusion list pins what this lane will NOT touch; lane scope declares the new corpus adapters, synonyms, exchange bridges, arbiter trio, and E-R schema formalisation work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 88cd8dc commit f73ee00

1 file changed

Lines changed: 137 additions & 0 deletions

File tree

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
<!--
2+
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3+
SPDX-License-Identifier: MPL-2.0
4+
-->
5+
6+
# Saturation Lane — Prover/Corpus/Vocab/Synonyms/Arbitration
7+
8+
**Branch**: `prover-corpus-saturation` (worktree at `/tmp/echidna-saturation`)
9+
**Base**: `origin/main` @ `88cd8dc`
10+
**Started**: 2026-06-01
11+
**Driver**: secondary Claude instance, owner-directed "max out / until marginal benefit gone"
12+
**Sibling lane**: `wave3/161-162-bench-telemetry-corpus` (primary Claude — chapel bench + telemetry)
13+
14+
## Why this exists
15+
16+
The owner directive: push solvers / corpuses / vocab / synonyms / verisim E-R / learning / arbitration to their respective marginal-benefit limits, dispatching agents in parallel.
17+
This document declares the lane so the wave3 branch can avoid collisions.
18+
19+
## Lane scope — what this branch DOES touch
20+
21+
NEW FILES ONLY where possible. Where existing files must be edited, the file is listed below with the specific functions/symbols I am extending.
22+
23+
### Corpus adapters (new files)
24+
25+
- `src/rust/corpus/isabelle.rs` — Isabelle/HOL AFP `.thy`
26+
- `src/rust/corpus/metamath.rs` — set.mm
27+
- `src/rust/corpus/mizar.rs` — MML `.miz` / `.abs`
28+
- `src/rust/corpus/hol_light.rs` — Multivariate / Core
29+
- `src/rust/corpus/hol4.rs` — HOL4 Script files
30+
- `src/rust/corpus/dafny.rs``.dfy`
31+
- `src/rust/corpus/why3.rs` — TOCCATA gallery `.mlw`
32+
- `src/rust/corpus/fstar.rs` — F\* examples `.fst`
33+
- `src/rust/corpus/tptp.rs` — TPTP problem library
34+
- `src/rust/corpus/smtlib.rs` — SMT-LIB benchmarks
35+
- `src/rust/corpus/acl2_books.rs` — ACL2 community books
36+
- `src/rust/corpus/proofnet.rs` — ProofNet
37+
- `src/rust/corpus/minif2f.rs` — MiniF2F
38+
- `src/rust/corpus/naproche.rs` — Naproche libraries
39+
- `src/rust/corpus/mathcomp.rs` — Coq MathComp (separate from coq.rs heuristic)
40+
- `src/rust/corpus/iris.rs` — Coq Iris
41+
- `src/rust/corpus/cubical_agda.rs` — Cubical Agda stdlib
42+
43+
### Corpus mod registration (existing file, additive only)
44+
45+
- `src/rust/corpus/mod.rs` — append `pub mod isabelle;` etc. No reordering of existing `pub mod` lines. No edits to existing functions.
46+
47+
### Synonyms data (new files)
48+
49+
- `data/synonyms/hol_light.toml`
50+
- `data/synonyms/hol4.toml`
51+
- `data/synonyms/metamath.toml`
52+
- `data/synonyms/mizar.toml`
53+
- `data/synonyms/dafny.toml`
54+
- `data/synonyms/fstar.toml`
55+
- `data/synonyms/why3.toml`
56+
- `data/synonyms/acl2.toml`
57+
- `data/synonyms/pvs.toml`
58+
- `data/synonyms/tlaps.toml`
59+
- `data/synonyms/imandra.toml`
60+
- `data/synonyms/_msc2020.toml` — MSC2020 cross-prover dictionary
61+
- `data/synonyms/_wordnet_math.toml` — WordNet math entries
62+
- `data/synonyms/_conceptnet_seed.toml` — pre-fetched ConceptNet seeds (offline-resilient)
63+
64+
### Exchange bridges (new files)
65+
66+
- `src/rust/exchange/tptp.rs` — universal first-order ATP exchange
67+
- `src/rust/exchange/smtlib.rs` — SMT-LIB exchange / round-trip
68+
- `src/rust/exchange/smtcoq.rs` — SMT proofs into Coq
69+
- `src/rust/exchange/lambdapi.rs` — Dedukti's successor
70+
71+
### Portfolio expansion (existing file)
72+
73+
- `src/rust/verification/portfolio.rs` — extend `default()` to include DReal, OpenSmt, SmtRat, MathSat, SPASS, Princess, iProver, Twee, Princess in their respective tiers. Pure additive — no semantic changes to existing solver entries.
74+
75+
### New arbitration mechanisms (new files)
76+
77+
- `src/rust/verification/bayesian_arbiter.rs` — posterior over verdict given evidence stream
78+
- `src/rust/verification/dempster_shafer.rs` — belief mass combination
79+
- `src/rust/verification/pareto_arbiter.rs` — multi-objective Pareto frontier voting
80+
81+
### Vocab/Synonyms wiring (existing files, surgical edits)
82+
83+
- `src/rust/suggest/synonyms.rs` — add `SynonymTable::with_msc2020()` method; add `merge_external()` for cross-prover dictionaries. Existing `load()` / `alternatives()` UNCHANGED.
84+
- `src/rust/integrations/conceptnet.rs` — add `prefetch_to_cache()` method using `_conceptnet_seed.toml`. Existing `related_concepts()` UNCHANGED.
85+
86+
### E-R schema formalization (new files)
87+
88+
- `docs/architecture/VERISIM-ER-SCHEMA.md` — formal entity + relationship definitions
89+
- `crates/echidna-wire/schemas/verisim_er.capnp` — Cap'n Proto schema (if compatible)
90+
91+
### Documentation (new files)
92+
93+
- `docs/decisions/2026-06-01-saturation-campaign.md` — ADR
94+
- `docs/CORPUS-ADAPTERS.md` — index of all corpus adapters with their parsing strategy + canonical source URL
95+
- `docs/handover/PROVER-CORPUS-SATURATION-LANE.md` — this file
96+
97+
## Lane scope — what this branch DOES NOT touch
98+
99+
**Hard exclusion list** (collision avoidance with wave3):
100+
101+
- `src/chapel/**` — entirely wave3
102+
- `benches/**` — wave3 telemetry hooks
103+
- `src/rust/diagnostics/corpus_monitor.rs` — wave3 per-prover telemetry
104+
- `src/rust/diagnostics/gnn_training.rs` — wave3 training health hooks
105+
- `training_data/premises_*.jsonl` — wave3 benches against these
106+
- `training_data/floor_progress.{md,jsonl}` — wave3 progress file
107+
- `training_data/metrics_baseline.jsonl` — wave3 baseline reference
108+
- `src/rust/learning/{daemon,curriculum,mcts,self_play}.rs` — risk of telemetry collision
109+
- `models/**` — first GNN training run risks deleting `models/neural/`; defer
110+
- `src/julia/run_training.jl`, `train.jl`, `eval_held_out.jl` — deferred (would touch model artefacts)
111+
- `.github/workflows/*` — CI changes go through the wave3 lane
112+
- `Justfile``just train` / `just chapel-*` are wave3 territory
113+
- Any file the wave3 branch has shown as modified in its working tree (~300 files; the staged set will land via #161/#162 merges, do not pre-empt)
114+
115+
## Contact protocol
116+
117+
- Each commit will use prefix `feat(corpus):` / `feat(vocab):` / `feat(exchange):` / `feat(arbiter):` / `docs(er):` so wave3 can grep.
118+
- If a file outside this lane needs touching, I file an issue first and link it here.
119+
- Final merge order: this branch rebases onto `main` AFTER wave3 lands (or at minimum, after #161/#162 are merged). No competing merge race.
120+
121+
## Marginal-benefit termination criteria
122+
123+
I stop the saturation push when:
124+
125+
1. All 14+ corpus adapters land with at least a smoke-test fixture each, OR
126+
2. Each adapter blocks on an upstream binary/source absent from the environment, OR
127+
3. Synonyms TOML files exceed ~5,000 lines total (current 863) and ConceptNet/MSC2020/WordNet dictionaries land, OR
128+
4. Exchange bridges land for TPTP + SMT-LIB at minimum, OR
129+
5. New arbiter trio (Bayesian / Dempster-Shafer / Pareto) compiles with tests against the existing portfolio results, OR
130+
6. The compile-test loop slows below ~5 PRs/hour or fixture-fetch latency dominates,
131+
132+
whichever fires first.
133+
134+
## Progress log
135+
136+
- 2026-06-01 — branch created, handover doc landed, scoping agents reported.
137+
- (subsequent entries added as work lands)

0 commit comments

Comments
 (0)