Repository navigation
feat(preservation): certificate B as kernel-term data (SP-16) - #163
159 commits merged into
Conversation
…tput
The base gained tests/tooling/{commands,core,traversal}, each publishing its
generated tree under its own expected/ directory, after this script was
written. Its scope list and generated-root discovery were constants that
predate them, so the captured patch could not reconstruct the result tree.
Derive the tooling roots the way the example roots are derived.
Rebased onto main and regenerated with the repository own writers rather than the branch original capture: locks for every example project and the compiler, the golden oracles, the calculus modules, the negative fixtures locks (the six protected admission fixtures skipped), the fixtures, and the normalized verification records. The tree is the writers output: check-golden reports every published artifact equal to its oracle, check-calculus reports the embedded modules a fixed point across the second compiler build, check-fixtures reports every fixture equal to its expected files, and the branch own capture harness reports a complete, reconstructible generated tree with no non-generated path changed. Every difference against main is a digest, a digest-bearing name, a position that moved because the rendering grew, or a byte-literal respelling; the only substantive movement is the externals swap the lowering implies (UInt8.instOfNat out, UInt8.ofNat in, one for one).
… checked (SM-33, stage 2 of #91, part 1) A version 2 core-module row whose name the pinned Lean reserves (matcher equations and splitters, definition equations and unfolding theorems, sparse else_eq) is no longer submitted as data: the decoder runs Lean's own reserved-name action and refuses the module unless the constant it makes has the row's kind, levels, type and value. The state those actions read (recursive tag, transparency, matcher and equational-lemma records, realization context) is installed as each row is added; the sparse casesOn cache drops the decoder's own constants and holds each remade one under both keys. All 7,071 derived rows of the preservation library are remade exactly. No file under language/ or schemas/ changes, so no compiler-semantics ID moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ster row, SPEC §31 row, scenario, and the failing named test Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…ental lemma application Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…iteral, width predicate, relation, denote, root) accepted by the kernel Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…tants, runtime pins
… type's recursor
…ype packs the group
…d.fix with the source's decrease evidence Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…ir and each Boolean Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…nd the statement oracle Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…ecoder's name prefix (RT-04) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed-rows # Conflicts: # CHANGELOG.md
The library's template lemmas are applied at the runtime's functions with every clause hypothesis discharged by a proof term: computed clauses by reflexivity, comparison clauses by transporting F(compare k o) = F(compare k o) along the hypothesis, F being the runtime function's body with the scrutinee abstracted. The denotation of the collection primitives and the collections runtime's axiom table are added. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…te-a Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…nel terms (scratch key shims)
…xhaustive-match style
…rates to pins no axiom Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
…ame their axiom-bearing callees so Lean's cyclic axiom cache is order-independent
…both renderings Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014jPy3EVAUhMVS5f13tr9Ka
… before the kernel Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WG9wejRSGKo2jLG8BLxPs5
feat(core): derived rows are made by Lean's reserved-name actions and checked (SM-33, stage 2 of #91, part 1)
…rain # Conflicts: # CHANGELOG.md
…-train # Conflicts: # CHANGELOG.md # README.md # SPEC.md # crates/conformance/src/cases/semantic_ir.rs # crates/conformance/tests/conformance.rs # features/suites/semantic-ir.feature # model/ids.toml
…ions' into claude/v0.4-train
…ering (1.1: 10, 1.2: 20), register repaired after the merges
…nguage module (#91 slice 1, #105 3b) The Cargo manifest's edition, publication, rustc and Clippy lint gates, and the ten allowed lints (now each with its Clippy group) are the declarations of one semantic module, language/package-1.2/RustPackage.lex.tex. It sits under language/, so the language-1.2 compiler-semantics ID hashes it; the renderer decodes its semantic data (it is neither evaluated nor spliced) in the new rust/scaffold.rs, and package.rs keeps only a printer for Cargo.toml. package::ALLOWED_LINTS and the manifest template are gone. The crate attributes are derived: #![no_std] from allocation = false on the target row of production-1.2.toml, #![forbid(lint)] from each gate at forbid. No allowed lint is in Clippy's correctness group: the reader refuses it and the module states it as a theorem over the same list; the SPEC 17.16 table equals the module's rows. A scaffold audit refuses any renderer source that holds a string of the module. #105 3b: the package manifest and lexlean/rust-provenance/1 gain effects, the realization's effects on its profile (production takes them from the root's eligibility; the renderer refuses a list that omits an overflowing export, a function that reaches itself, or states allocation on rust-core). The recursion effect of production-1.2.toml now says the process aborts. Registers RB-10..RB-13 (407 IDs). Rendered Cargo.toml and src/lib.rs are byte-identical to before; the language-1.2 ID, package.json, provenance.json and the locks move and are left to the train's regeneration. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAYFKxaENMG171kXrLUTCe
…ude/v0.4-train # Conflicts: # CHANGELOG.md # README.md # SPEC.md # crates/conformance/src/cases/repository.rs # xtask/src/spec_links.rs
…nto claude/v0.4-train # Conflicts: # README.md # SPEC.md # crates/conformance/src/cases/repository.rs # crates/lexlean/src/production/certificate.rs # xtask/src/spec_links.rs
…: certificates read elaborated declarations)
…nto claude/v0.4-train # Conflicts: # CHANGELOG.md # README.md # SPEC.md # crates/conformance/src/cases/repository.rs # crates/lexlean/src/production/certificate.rs # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R0.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R0.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R0/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R0/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R1.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R1.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R1/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R1/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R2.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R2.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R2/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R2/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R3.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R3.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R3/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R3/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R4.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R4.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R4/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R4/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R5.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R5.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R5/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R5/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R6.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R6.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R6/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R6/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R7.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R7.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R7/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R7/RustStd.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R8.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R8.lex.tex # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R8/RustStd.lean # examples/models/expected/verify/preserve/LexLeanPreserve/Cec19ab7a4631e2ee111ccf401e405627/R8/RustStd.lex.tex # examples/models/expected/verify/preserve/audit.txt # examples/models/expected/verify/preserve/preservation.json # examples/models/expected/verify/process/preserve/LexLeanPreserve.Audit.json # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R0.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R0.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R0/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R0/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R1.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R1.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R1/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R1/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R10/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R11/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R12/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R13.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R13.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R13/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R13/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R14/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R15/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R16/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R17/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R18/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R19.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R19.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R19/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R19/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R2.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R2.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R2/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R2/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R20/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R21/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R22/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R23/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R24/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R25/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R26.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R26.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R26/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R26/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R27.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R27.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R27/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R27/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R28.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R28.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R28/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R28/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R29.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R29.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R29/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R29/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R3.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R3.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R3/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R3/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R30.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R30.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R30/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R30/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R31.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R31.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R31/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R31/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32/RustCore.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32/RustCore.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R32/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R33.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R33.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R33/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R33/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R4.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R4.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R4/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R4/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R5.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R5.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R5/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R5/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R6.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R6.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R6/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R6/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R7.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R7.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R7/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R7/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R8.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R8.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R8/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R8/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R9.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R9.lex.tex # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R9/RustStd.lean # examples/production-coverage/expected/verify/preserve/LexLeanPreserve/C298b3fea936e968ceea09dab041d82b8/R9/RustStd.lex.tex # examples/production-coverage/expected/verify/preserve/audit.txt # examples/production-coverage/expected/verify/preserve/preservation.json # examples/production-coverage/expected/verify/process/preserve/LexLeanPreserve.Audit.json # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0/RustCore.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0/RustCore.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R0/RustStd.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1/RustCore.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1/RustCore.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R1/RustStd.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2/RustCore.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2/RustCore.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R2/RustStd.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3/RustCore.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3/RustCore.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R3/RustStd.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R4.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R4.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R4/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R4/RustStd.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R5.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R5.lex.tex # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R5/RustStd.lean # examples/production/expected/verify/preserve/LexLeanPreserve/C5852b566bbbedd4b35223eb047c51a1f/R5/RustStd.lex.tex # examples/production/expected/verify/preserve/audit.txt # examples/production/expected/verify/preserve/preservation.json # examples/production/expected/verify/process/preserve/LexLeanPreserve.Audit.json # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R0.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R0.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R0/RustCore.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R0/RustCore.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R1.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R1.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R1/RustCore.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R1/RustCore.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R2.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R2.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R2/RustStd.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R2/RustStd.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R3.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R3.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R3/RustStd.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R3/RustStd.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R4.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R4.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R4/RustStd.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R4/RustStd.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R5.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R5.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R5/RustCore.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R5/RustCore.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R6.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R6.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R6/RustStd.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R6/RustStd.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R7.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R7.lex.tex # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R7/RustStd.lean # examples/reasoning/expected/verify/preserve/LexLeanPreserve/Ccc1ed5652a1fed8b4f95bc50f3682af7/R7/RustStd.lex.tex # examples/reasoning/expected/verify/preserve/audit.txt # examples/reasoning/expected/verify/preserve/preservation.json # examples/reasoning/expected/verify/process/preserve/LexLeanPreserve.Audit.json # tests/negative/certificate-b-rejected/expected/command.json # tests/negative/certificate-b-rejected/expected/diagnostics.json # tests/negative/certificate-heartbeat-rejected/expected/command.json # tests/negative/certificate-heartbeat-rejected/expected/diagnostics.json # tests/negative/certificate-rejected/expected/command.json # tests/negative/certificate-rejected/expected/diagnostics.json # tests/negative/certificate-resource-exhausted/expected/command.json # tests/negative/certificate-resource-exhausted/expected/diagnostics.json # tests/negative/certificate-resource-exhausted/project/lexlean.lock # tests/negative/certificates-total-limit/expected/command.json # tests/negative/certificates-total-limit/expected/diagnostics.json # xtask/src/spec_links.rs
…D-07), register 412, CONFORMANCE.md regenerated Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
|
Stage 4 of #89 (the maintainer's task on top of What it contains (local branch
Ran, and passing: Not run: every case that needs a current lock (SP-01, SP-06 and the rest) fails here with The maintainer will need the commit pushed to this branch; I will do it as soon as the permission is allowed. Generated by Claude Code |
…ction compiler (SP-17, stage 4 of #89) The staged audit module is an AuxiliaryModule of typed commands (PrintMarker, PrintName, CheckName beside PrintAxioms) rendered without the module header, because Lean refuses a module that imports a non-module file. The calculus-to- Lean-text builders of certificate B's old path (render_ty, render_value, render_program, lean_type_text, budget_options) are deleted, the runtime type of a document is the structure RuntimeType, and the harness's value printer and list literals move to the conformance crate. A lexer-level scan of production/ and the auxiliary part of backend/lean.rs reports a planted template, with an 11-entry allow-list. Register 413. Refs #89 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gi7a9Ymkbr6MDgy6oPaeck
|
Update to my previous comment: the permission block was transient. Stage 4 is committed and pushed, once, to this branch as Generated by Claude Code |
One regeneration for #68, #150, #151, #157, #163, #91 slice 1 and stage 4 of #89 on main: the language-1.2 and 1.1 compiler-semantics IDs (lean_backend 10 and 20 by hand; the preservation library statement is the second hand edit), every lexlean.lock, the golden oracles, the calculus fixtures, the production export, the conformance fixtures, and the normalized verification records of every example that moves (all of them verified end to end with the pinned Lean, certificates A, B and E as data), then `validate-model --write`. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
humuhumu33
left a comment
There was a problem hiding this comment.
Content review of #163 (certificate B as data, SP-16; stage 4, SP-17) at b01a9e0. CI on this head is red only from stale locks, since it predates the train's regeneration; I read SP-16/SP-17 results from #167, where both pass.
The B change is sound where it matters. The kernel checks every certificate. The 49 rules and the audit-production closure are unchanged (same RULES, same 13 Term constructs in fn b; correspondence.rs changed only its path). B-STATEMENTS.md compares against the old generator's committed output with Kernel.isDefEq. B's checkpoint records equal #167's regenerated ones, modulo the semantic id, for 71 of 76; the other 5 moved with #151's new source. Every diagnostic and lens the B commits added is gone at the head. What needs fixing is the written contract and three changes that widen what passes.
- SP-17 does not write down what it cannot see, unlike RT-04 in #156, and it misses real templates. is_lean_syntax (lean_literals.rs:291) accepts "private theorem {n} : {t}\n by decide", "inductive {t} where\n | a", "end {ns}", "#reduce {}", "by simp [{}]" and "\u{2200} x, P x". It reads one literal at a time, so concat!("theorem ", "t : True ", ":", "= trivial") passes. It reads only .rs files (:407), so include_str! is unseen, and only backend/lean.rs from line 2398, where the DoD names the whole file. Please write the limits in VERIFICATION.md and §17.17; cover modifiers,
by,end,variable,#reduce, escapes and joined literals; confirm the backend/lean.rs narrowing on #89; consider an output-side check (every staged .lean is a backend rendering of data). - The SP-17 allow-list matches by prefix (lean_literals.rs:369), so ("backend/lean.rs", " := ") admits any literal starting with " := ". Its "used" check is a substring test: the data.rs entry is inside #[cfg(test)] and dead. It also sanctions LEXLEAN_SHOW / LEXLEAN_SHOW_FILE in non-test code (data_a.rs:383-389), which writes to an environment-chosen path, beside LEXLEAN_AXDBG (:366). §23.1 says four operational variables exist and change no output. Please remove those lenses or gate them under cfg(test), match allowed literals exactly, and require each entry to suppress a real finding.
- To #167's question: SPEC §17.17's B prose is wrong in more places than the cost table (pr/167 lines):
- 4934-4935: "16 bytes each (the least measured is 22)". The code says 8, about half of 22 in the notation (lower.rs:824-832).
- 4931: the 13 MB example is a Lean-text figure.
- 4950-4955: "Types are not shared … verifies 13 deep, refused at 14" contradicts 4869-4873.
- 4943: "stops as soon as a part is beyond the limit" no longer holds for B (point 5).
- 4983: 2.4 KB per function is a text-era figure.
- 4991-4999 and 5047-5048: B checking times were measured on text certificates.
- 5004: "noncomputable" should now read "not compiled".
- 5546 vs 5633: two different reasons for the missing module header.
- Weighing B and E by notation instead of Lean text (verify/mod.rs:964-1010, data_b.rs:654) changes what max_file_bytes accepts, and [limits] are semantic inputs (SPEC.md:817). The rendered Lean is about four times the notation. Please state the rule normatively in §17.17, with why it is sound (child_timeout_ms bounds Lean's work), and add a CHANGELOG line.
- B's early abort counts 12 bytes a node (align.rs:101, :2479), while a record read takes about 35. The generator can hold about three times the limit before stopping, and the test moved from size/2 to size/4 (cases/preservation.rs:496). The final refusal is still exact (data_b.rs:654), but the SP-02 row's "stops it at the limit" and rust_cert.rs:60's "about that size" overstate. Please state the factor or count real bytes.
- SP-02 dropped the edge check for a mixed shape that fits at 256 (cases/preservation.rs:426), but §17.17 says each shape is tested at the edge. Please raise the ceiling or name the exempt shapes.
- COSTS_B is the text costs divided by four (lower.rs:539-548), not the linear-programming fit §17.17 describes (4908-4913), and SP-02 has not run on a train head yet. Please record the measurement; SP-02 green on the final head is the gate.
- Plant (c), the "forged program literal", renames Item.natAdd in the crate (VERIFICATION.md:1502, cases/preservation.rs:4456). B's program row is untouched. Please call it a forged crate literal, as SP-14 does, and add a plant on B's program row, reusing SP-15's forge.
- Nit: B-STATEMENTS.md and the SP-16 row should say the oracle covers the corpora at b29f0b9. The fun statements match by name swap, so the 228 bodies are the substance, and #167 has 79 certificates B, 3 with no text predecessor.
- Nit: SP-13 is vacuous for data certificates (cases/preservation.rs:2223); please reword or retire it.
- Nit: the checkpoint, lens, "(to be removed)" and #157's "wip … (local, not pushed)" titles will land on main with the merge commit. Rewriting would break the train, so I accept them as they are.
- Nit: the PR body is stale: register 394, main not merged, plants unrecorded. The head now holds the train to 441d093 plus stage 4.
- Nit: the test-only helpers in data_b.rs:670-841 repeat the empty-Gen setup four times.
This is a comment review of the content. The formal approval goes on #167's final head, once points 1 to 8 are fixed there or argued.
Refs #89
Stage 2 of #89: certificate B, the per-function correspondence, as kernel-term data in a native core module (
lexlean/core-module/2), built by the production compiler and rendered by the one core backend, as certificates E (#146) and A (#157). This branch is created fromclaude/issue-89-certificate-aand carries #157's commits until #157 lands. It has not mergedmain; the maintainer will say when.What is in it
production/certificate/data_b.rs,data_b/align.rs(the aligner, which builds eachCorrderivation directly as a kernel term; the 49 rules and the audit-production closure check are unchanged),data_b/syntax.rs(the crate as aRustSyntaxkernel term).programreuses A's builder (only visibility widened indata_a/lean.rs).program,krate,flags,fun<n>(FunOKwritten out),crate_ok(aNat.casesOnchain, not a library theorem),root.rust_term.rs(the Rust-term text renderer) is deleted; the Rust machine harness evaluates crates by the same kernel terms.rust_cert.rsis now the interface only.SP-16(394), scenario,conformance_sp_16;tests/preservation-certificates/B-STATEMENTS.mdrecords theisDefEqoracle: 76 certificates B, 984 rows, every statement definitionally the text's, 228 of 228 definition bodies.Draft: the conformance cases other than SP-16 are still being run and adapted, and the plants' red output is not yet in VERIFICATION.md.
Generated by Claude Code