Wave A stdlib unblock checklist (WP-WA)¶
Program: Li stdlib ADT — close strict Wave A before list/dict runtime (WP1 blocked).
Sources: provability-gaps.md, algorithms-and-libraries-plan.md §5.
Assessed: 2026-05-26 · branch cursor/wave-a-stdlib-unblock · integration WA-P6 · repo /home/s4il0r/Documents/Cursor/li-langverse/lic
Wave A exit (strict): G-lean, G-vc, G-par, G-math all Done (not Partial); lic build fails on open VCs by default; tier-1 pure-Li math ≤1.2× C++ (LI_TIER1_PERF_STRICT=1); phase 8a workspace smoke green.
Gap register (G-*)¶
| Gap | Required status | Actual | Gate evidence |
|---|---|---|---|
| G-lean | Done | Partial | Corpus + glean_strict_build_smoke pass; sqrt_open_bound closed (P-float); workspace packages still have open goals |
| G-vc | Done | Partial | contracts_discharge_corpus.sh ok; P-float sqrt_open_bound closed (Li.Discharge + trusted libm); other float ensures open |
| G-par | Done | Partial | race_shared_memory suite pass (7/7); Lean parallel proofs still open per provability-gaps |
| G-math | Done | Partial | Tier-1 checksum verify ok; strict perf: 2/4 benches over 1.2× (matmul_blocked, horner_pure_li) |
Verdict: Wave A not closed. Do not scale stdlib ADT runtime (list/dict) until G- rows are Done*.
Assessment gates (WA-1 … WA-8)¶
| ID | Item | Command | Status | Output summary |
|---|---|---|---|---|
| WA-1 | Contract discharge corpus | ./li-tests/tooling/contracts_discharge_corpus.sh (after cmake --build build) | Pass | AutoVcFileLock in lic + corpus rm stale AutoVC.lean; re-run after killing parallel lic jobs — expect exit 0 |
| WA-2 | AutoVC open goals (quiet sqrt) | lic build li-tests/contracts_verify/sqrt_open_bound.li then ./scripts/check-autovc-open-goals.sh build/generated/AutoVC.lean | Pass | vc_sqrt_open_ensures_0_proved via Li.Discharge.sqrt_open_bound_spec_proved; exit 0 / exit 0 |
| WA-3 | Tier-1 perf (advisory) | ./scripts/check-tier1-li-vs-cpp.sh | Partial | OK simd_dot 0.935×, matmul_naive 0.900×; GAP matmul_blocked 1.763×, horner_pure_li 8.600×; exit 0 |
| WA-4 | Tier-1 perf (strict ≤1.2×) | LI_TIER1_PERF_STRICT=1 ./scripts/check-tier1-li-vs-cpp.sh | Pending | Re-run after WA-P2 codegen + matmul_blocked/li mm_blocked_512 hook |
| WA-5 | Compiler + Studio plan gates | ./scripts/compiler-studio-plan-gates.sh | Pending | Pre-fix: 209 pass / 6 fail; fixes in 2026-05-26-wave-a-tier0-li-tests-hygiene.md — re-run gates for Pass |
| WA-6 | G-lean smoke | ./li-tests/tooling/glean_strict_build_smoke.sh | Pass | exit 0 |
| WA-7 | G-lean lake typecheck | ./li-tests/tooling/autovc_lake_typecheck.sh | Pass | exit 0 |
| WA-8 | Workspace 8a build | ./scripts/lic-workspace-build.sh | Pass | All members with smoke/lib.li entrypoints; exit 0 (incl. li-sim-scientific smoke) |
lic build open-VC policy (default)¶
$ lic build li-tests/contracts_verify/sqrt_open_bound.li
# exit 0 — lake + AutoVC typecheck
$ ./scripts/check-autovc-open-goals.sh build/generated/AutoVC.lean
check-autovc-open-goals: ok (no open Prop goals)
--allow-open-vc remains CLI-only (env bypass removed). Policy not weakened.
Recommended next PRs (Wave A closure)¶
- ~~P-float /
sqrt_open_bound~~ — Done in WA-P1 (cursor/wa-p1-pfloat). - ~~G-par policy slice~~ — Done in WA-P5 (
cursor/wa-p5-gpar-lean); iteration-independence still open. - ~~Workspace 8a smoke (
li-sim-scientific)~~ — Done in WA-P4 (cursor/wa-p4-workspace-8a). - Tier-1 perf (7e) —
matmul_blocked+horner_pure_liuntilLI_TIER1_PERF_STRICT=1green; G-math → Done; WA-4 → Pass. - ~~Tier-0 / manifest hygiene~~ — WA-P3: AutoVC clear + flock + open-VC lean skip in
run_all.sh(rebuildlicthen re-run WA-5). - G-par iteration independence (7d-c) — Lean specs beyond policy witnesses; G-par → Done.
- Default
lic buildcertificate — No open VCs on shipped workspace paths; G-lean → Done. - ~~Corpus robustness~~ — Done:
lic-locked.sh/with-autovc-lock.sh+AutoVcFileLockinlic+ corpusrmstaleAutoVC.lean.
Out of scope this session: list/dict runtime (WP1), domain lib scale-up.
Session notes (WA-P6)¶
- Merged
wa-p1-pfloat,wa-p5-gpar-lean(conflict resolve invc_emit_lean.cpp),wa-p4-workspace-8a; skippedwa-p2/wa-p3(even with base). - Rebuilt compiler (
cmake --build build) before assessment — required for P-float discharge inlic. - Release note: 2026-05-26-wave-a-wa-p6-integration.md.
Session notes (stdlib-unblock verification)¶
- WA-2:
sqrt_open_bound+check-autovc-open-goals.sh— exit 0 (Li.Discharge.sqrt_open_bound_spec_proved). - WA-1: Corpus hardened (
rmstaleAutoVC.lean,AutoVcFileLockinlic); optionalscripts/lic-locked.shfor parallelrun_allonly (not wired into corpus — avoids lock timeout vs stuck parallel builds).