You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(provers): close out GNN-ranking surface — Tier-3/niche sweep (53)
This closes the GNN-routing arc started in S5 (commit c8a4f25) and
extended via #135 (Tier-1 5) + #136 (Tier-1 finisher 2 + Tier-2 33).
Every backend in `ProverKind` that has a `suggest_tactics` impl now
prepends GNN-ranked apply tactics ahead of its heuristic hints when
the Julia `/gnn/rank` service is reachable, and is a no-op otherwise.
Tier-3 / niche sweep (53 backends)
----------------------------------
abc, acl2s, alloy, arend, boogie, cadical, coq, cryptoverif,
cubical_agda, dedukti, elk, faial, framac, gnatprove, gpuverify,
hp_ecosystem, ileancop, isabelle_zf, kissat, konclude, lambda_prolog,
lean3, liquid_haskell, matita, mercury, mettel2, minisat, mizar_ar,
mleancop, nanocop, naproche, nitpick, nunchaku, nusmv, opensmt,
prism, prob, prover9, proverif, qepcad, redlog, seahorn, smtrat,
spin_checker, stainless, storm, tamarin, tlc, typed_wasm, uppaal,
uppaal_stratego, viper, zipperposition
Notable:
- `coq.rs` (CoqBackend) is separate from `rocq.rs` (RocqBackend) —
same logical prover, different files. Wired both.
- `typed_wasm.rs` is the Sigma router for the 39 TypeChecker
disciplines; wired at the router level so all 39 dispatches benefit.
- `hp_ecosystem.rs` is the unified backend for ~40 HP type-checker
disciplines; wired once at the router level. ProverKind dispatch
uses TypeLL/KatagoriaVerifier — tested with TypeLL.
- `liquid_haskell.rs` uses `"liquid-haskell"` (hyphen) and
`spin_checker.rs` uses `"spin"` for `Tactic::Custom { prover: ... }`;
tests assert those literal strings.
Tests
-----
`tests/gnn_augment_integration.rs` extended from 11 (pre-#136) to 64
(this branch). Each test asserts the GNN helper's `Tactic::Custom`
prepend appears at index 0 of `suggest_tactics`. All 64 pass in 0.37s
against the in-process mock. After rebasing onto post-#136 main the
count will become 99 (#136 adds 35).
Doc close-out
-------------
- `docs/PROVER_COUNT.md`: TL;DR table now reflects full GNN coverage;
version-drift log adds v2.3 entry; "Last revised" → 2026-05-30.
- `docs/ROADMAP.md` §4 stage 4c: marks GNN-ranking surface COMPLETE;
§S5: status flipped from "mostly done" to "done 2026-05-30 ✓";
"What is not blocking" line updated to reflect the routing
end-state. Remaining S2 dependency is real trained weights at
`models/neural/` — the wiring is in place to consume them.
- `docs/handover/S5-VERIFICATION-RUNBOOK.md`: replaces the hardcoded
"11 passed" with a formula tied to the test-file content, so future
additions don't require a runbook edit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|`TypeChecker` disciplines routed via TypedWasm Sigma | 39 |
17
17
| Exposed by default REST API (`Tier 1` / core) |**12**|
18
-
| With real `suggest_tactics` (not stub) | 91 of 91 (5 of 91 still use heuristic only; GNN-ranked is target end-state) |
18
+
| With real `suggest_tactics` (not stub) |**91 of 91**|
19
+
| Routing tactic suggestions through `gnn_augment_tactics`|**all backends with `suggest_tactics`** (S5 pilot 5 + Tier-1 extension 5 + Tier-1 finisher 2 + Tier-2 sweep 33 + Tier-3/niche sweep 53 — full coverage as of 2026-05-30; gracefully no-ops when `gnn_api_url` is None or `neural_enabled` is false) |
19
20
| With native search command | 16 of 91 (72 return `Ok(vec![])` — cross-prover search via `VeriSimAdvisor` covers them) |
@@ -139,7 +145,7 @@ and start the self‑learning loop closure.
139
145
| S2 | 2a / 2c | Run training on the fixed corpus; record new MRR; commit `metrics_baseline.jsonl`|**Hardware / you**| gated by S1 (S1 ✓; S2 hardware step still to run) |
| S4 | 3a / 3b | Wire Verisim cross‑prover read paths (`goal_hash` queries + `mv_prover_success_by_class` + hypatia loop) |**Opus‑design + Sonnet‑impl**|**wired 2026‑04‑27 ✓** — read paths (`query_prover_success_by_class` via `VeriSimAdvisor`, `cross_prover_search_names` via `vcl_ut`) + write path (`spawn_record_attempt`) + end-to-end test (`tests/s4_loop_closure.rs`, `just test-s4-loop`); CI workflow filing gated on `ghcr-publish.yml` in `verisimdb` upstream (runbook holds the YAML) |
142
-
| S5 | 4c / 4d (pilot) | Tactic synthesis template for 5 high‑value provers (coq, lean, agda, isabelle, z3) using the GNN |**Opus‑design + Sonnet‑impl**|**mostly done** — `suggest_tactics` is 91/91 real; `gnn_augment_tactics` wired into the 5 pilot backends (rocq/lean/agda/isabelle/z3) per c4bc272; remaining 5 heuristic-only backends are the GNN-ranked end-state target|
148
+
| S5 | 4c / 4d (pilot) | Tactic synthesis template for 5 high‑value provers (coq, lean, agda, isabelle, z3) using the GNN |**Opus‑design + Sonnet‑impl**|**done 2026‑05‑30 ✓** — `suggest_tactics` is 91/91 real; `gnn_augment_tactics` wired into ALL backends with `suggest_tactics` (S5 pilot 5 in c8a4f25, Tier-1 extension 5 in #135, Tier-1 finisher 2 + Tier-2 sweep 33 in #136, Tier-3/niche sweep 53 in this PR). Wiring is a no-op when Julia /gnn/rank is unreachable; once S2 trained weights land at `models/neural/`, every backend automatically returns model-derived premise-apply tactics|
143
149
144
150
After S1–S5 land, the roadmap's next sprint takes up Stage 5 (IPC +
145
151
Chapel + Tier‑4 CI) and Stage 8 begins in parallel.
@@ -162,7 +168,9 @@ What is **not** blocking and can move now:
0 commit comments