Repository navigation
#91 stage 4, H2: the runtime syntax validator is bootstrap source (BS-09) - #259
Conversation
…w, SPEC.md 31 row, scenario, and the failing named test
…re, as the Lean twin does; the twin's source as generated (verification running)
…1-stage4-heap-validate
…e: the encoders, a 646-crate corpus, the evaluator and rustc differentials, eight planted defects; the stack bound is taken after the outcomes are compared
|
Maintainer review of 5fd95d5 (read-only; Blocking
Round
Nits (same push)
One note for the base: after relocking, I will re-verify the round by reading the diff. Generated by Claude Code |
…check, bdd-bootstrap-runtime part, and BS-09 records
|
Maintainer: the round at eda82e1 is accepted (read-only re-verification; Lands after #254 and #255 with its own regeneration (export package, PD-08 row, bootstrap records, lock, BS-05's recount). Generated by Claude Code |
…/issue-91-stage4-heap-validate
…claude/issue-91-stage4-heap-validate
… the probe plants are
…t-head and type-scope rules of RB-19 (unverified)
…is 4,824,562 bytes with the five rules ported)
…sed, 40 rules), the figures, and the 6 MiB certificate limit
|
Maintainer review of Should fix
Nits: What checked out: register 449 at every site, Landing order unchanged: #255 (gate finishing), #294, then this PR. Generated by Claude Code |
… its verify time against child_timeout_ms, and the figures of the 252 s run
|
Maintainer: Generated by Claude Code |
…ax-fixes' into landing-259 # Conflicts: # CHANGELOG.md
…generate for the validate_runtime root; the corpus figures of BS-05 and BS-06 grow by its package The compiler-semantics ID does not move. The committed corpus the two cases hold to the oracle gains the validate_runtime package (256 manifests, 173 programs, 232 crates; 452 and 315 validator runs; 607 printer runs, 464 distinct, 57 refused, 542 under the evaluator), stated in the register, the scenarios, SPEC and VERIFICATION. validate_runtime has its stack bound in tests/stack-bounds.json (debug 4,259,840), measured by the BS-09 case. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…'s fmt gate requires Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…project, with validate_runtime among its roots Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…rce (build id, source maps, coverage) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
The line gained RP-18 (#302) while this branch gained BS-09, both from 448, so both sides read 449 and the merge did not conflict. model/ids.toml holds 450 rows; the README, the SPEC.md §31 total, the two counting gates and the CHANGELOG's one register sentence say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
Stacked on #255 (
claude/issue-91-stage4-heap-syntaxat 021879e, merged in); draft. Second of the heap half (H2 of H1–H5).What
RuntimeValidate(bootstrap/src/RuntimeValidate.lex.tex, 102definitionblocks, 13structureblocks, and 5inductiveblocks, canonical form) is the Lean twin ofcalculus::rust::rt_validate::validate, rule for rule (35 rules). Its production rootvalidateRuntimeis eligible forrust-std(effectsallocation,overflow,recursion). The module is generated by a script that reads the oracle's tables (types, calls, methods, type-argument methods, standard traits, integers) fromrt_validate.rs, so the two cannot drift; the script is not part of the repository (the module is the source).Declared Oracle Changes (
crates/lexlean/src/calculus/rust/rt_validate.rs)Two refusal message formats of the Rust oracle are aligned with the twin's byte formatting:
struct-fieldsjoins the given and declared field lists with", "in declaration order (after comparing the sorted multisets of field names, matching the twin'scountInmultiset comparison insameFields).method-arityjoins the allowed argument counts with"/"instead of Rust'sDebugslice formatting.RB-17andRB-19match only the rule prefix and pass unchanged.BS-09 (
build; the row is BS-09 because #253 holds BS-06..BS-08)supportCrateandprobeCrateand each in the other profile, the 42 crates that break one rule each (RB-17's text plants and nine AST plants, RB-19's sixteen probe plants, now shared functions), and 600 seeded mutants of the two committed modules, 493 of the 646 refused, by each of the 35 rules and no other.rust-stdpackage agrees with the oracle on exact outcome and message on all 646; the calculus evaluator agrees on all 646; eight planted defects in the source are each detected.bootstrap/lexlean.tomlgains the entrypoint,tests/production-export/bootstrap/roots.jsongainsvalidate_runtime(LexLeanBoot.RuntimeValidate.validateRuntime), and.github/bdd-parts.json/.github/vv-rows.jsongainbootstrap-runtime/bdd-bootstrap-runtime.Measured (4-core 15 GB container, debug binary, pinned Lean 4.32.1 / rustc 1.97.1)
lexlean verify src/RuntimeValidate.lex.tex: 2 min 35 s to 2 min 49 s a run; verified 3 modules; all 102 definitions observe no axiom (staged#print axiomsaudit).conformance_bs_09: corpus 51 s; evaluator on 646 at 139 s; 8 plants detected; rustc build of the package and 12 harness binaries 161 s, 646 runs agree: 6 min 2 s to the first leg that needs the regenerated export.What fails here and why (Landing Regeneration)
At the landing regeneration:
tests/production-export/bootstrap/packages/andtests/production-export/bootstrap/export.json(cargo test -p repo-conformance --test production_export -- check --writeto produce thevalidate_runtimepackage).tests/stack-bounds.toml(PD-08row forbootstrap/validate_runtimemeasured withLEXLEAN_MEASURE_STACK=1).bootstrap/expected/buildandbootstrap/expected/verifyrecords forRuntimeValidate(check-goldenandverify-examples).bootstrap/lexlean.lock(updatingproject_config_sha256solexlean fmt --checkpasses withoutLLC0102).BS-05's corpus counts (crates/conformance/src/cases/bootstrap/rust_validate.rs,model/ids.toml,SPEC.md§17.23 and §31,features/suites/bootstrap.feature, andVERIFICATION.md), which read every manifest undertests/production-export/and move the manifest count by 1 along with the dependent program, crate, run, and refusal counts.The stack bound is now taken after every outcome of the differential is compared, so a package without a recorded bound cannot hide a disagreement (this also applies to BS-05).
LEXLEAN_BDD_PART=verification cargo xtask bddon this head aborts with the stack overflow ofconformance_au_04on the runtime module's data, the one #248's harness-level fix addresses; I have not merged #248 here.Identity
No semantic ID moves beyond #255's.
bootstrap/lexlean.lockis not committed (relocked locally).