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
Each of these provers previously had a tiny curated downloader list
(~10-15 files) and a mostly-empty external_corpora/ dir, yielding
100-250 records each.
Vendored upstreams:
- Why3: gitlab.inria.fr/why3/why3 (1 539 .mlw/.why files)
- PVS: SRI-CSL/PVS (214 .pvs files)
- F*: FStarLang/FStar sparse (448 .fst/.fsti files)
- Idris2: idris-lang/Idris2 sparse (1 596 .idr files)
Each extractor now walks its upstream clone (external_corpora/<p>_full/)
recursively in addition to the existing downloader cache. F* also
accepts .fsti (interface) files; Why3 accepts .why library files in
addition to .mlw.
Fixed two correctness bugs along the way:
- extract_fstar.jl + extract_why3.jl: eachmatch(Regex(pat, "s"), ...)
where pat is already a Regex — never worked on any file that
reached the body, crashing the moment a single match was attempted.
- extract_why3.jl func_pattern: chains of .*? can catastrophically
backtrack on large amalgamated files; wrapped eachmatch in
try/catch so a pathological file skips rather than aborts the run.
Rerun deltas:
Why3 199 → 35 692 (+35 493, 179×)
PVS 231 → 2 377 (+ 2 146, 10.3×)
F* 76 → 3 046 (+ 2 970, 40×)
Idris2 87 → 574 (+ 487, 6.6×)
PVS, F*, Idris2 are still well below the 100 K target — the
extractor gates are biased toward named lemmas with explicit specs
and drop library-heavy definitional content. Further uplift needs
per-language filter relaxation, tracked as follow-up.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments