Skip to content

lab(drmc): certificate keeps egglog's ProofStore + ProofId, not its rendering; L1 board records - #1742

Merged
AdaWorldAPI merged 3 commits into
mainfrom
lab/drmc-proofstore-certificate-20261023
Oct 23, 2026
Merged

AdaWorldAPI merged 3 commits into
mainfrom
lab/drmc-proofstore-certificate-20261023

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

This PR closes L1 (#1740) with the smallest change. It touches only the lab crate and the board. Nothing in it is production.

Code (crates/dr-math-binding-probe)

  • RecipeCertificate used to store the proof as egglog's pretty-printed string. It now stores relcomp::EggProof { store: egglog::proof::ProofStore, root: ProofId }, which is egglog's own proof arena.
  • EggProof exposes render() for display only, and node_count(), which counts distinct nodes reachable through the justifications. It is never reduced to a string or a hash.
  • RecipeCertificate no longer derives PartialEq or Eq, because ProofStore has no equality.
  • prove_equation and prove_reassociation now return EggProof.
  • The comments now say what they mean:
    • egglog checks every proof with its own crate-private check_proof, which is not an independent check.
    • _law gates the call, but the rewrites are fixed in HEADER.
  • The same egglog-check wording was clarified in egglog-r2il-probe/src/lib.rs, a comment-only change.
  • New test the_proof_object_grows_with_the_reassociation. A full left-deep to right-deep proof must have more nodes than the trivial equation, and its root must relate two different terms.
    • Disable check: with node_count changed to return 1, the test went red. After restoring the code it is green.

Measured (report_costs, --release; reported, not gated)

  • Certificate without the proof: 272 B, 9 steps.
  • Proof: 8 nodes. The 1 012 B rendering is display only.
  • The earlier 1 284 B figure counted the rendering as the proof. A correction has been appended to the L1 result entry.
  • The arena's heap size is not measured.

Board

Gates run

  • cargo fmt
  • cargo clippy --release --all-targets -- -D warnings
  • cargo test --release: all suites green, including the new test.

Not done


Generated by Claude Code

…d, not its rendering

RecipeCertificate held the proof as egglog's pretty-printed string.
It now holds EggProof { store: ProofStore, root: ProofId }, egglog's own
hash-consed proof arena, with render() for display only and node_count()
over the justification DAG. RecipeCertificate drops PartialEq/Eq
(ProofStore has no equality).

Comments: egglog's proof check is its own crate-private check_proof,
not an independent one; prove_equation's _law gates the call but the
rewrites are fixed in HEADER.

New test the_proof_object_grows_with_the_reassociation. report_costs
now prints the certificate without proof (272 B) and the proof as
8 nodes; the earlier 1 284 B counted the 1 012 B rendering.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…orrection

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 257d909a-4f6b-4c5c-8c0e-a8610fa0d38c
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…ents

recipe.rs and tests/contract_handoff.rs said no certified-compiler boundary
exists for DR64 laws. The single-operand admit_recipe path still has no
certifier, but relcomp::certify_reassociation (#1707) certifies one law:
associativity of Boolean-Distinct composition over a DR64 chain. #1738
corrected two other sites; these two remained. Comments only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 23, 2026 19:45
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T19:46:06.706536Z c0802ce Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AdaWorldAPI
AdaWorldAPI merged commit 801c8b1 into main Oct 23, 2026
14 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Oct 23, 2026
Line-number citations into moving files replaced by symbol / entry-heading
anchors; the stale-wording housekeeping row is marked DONE (#1742 + this PR).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
AdaWorldAPI pushed a commit that referenced this pull request Oct 23, 2026
Board conflicts resolved, keeping both sides:
- STATUS_BOARD: the D-DRMC section from #1742 and the D-ONNX section.
- PR_ARC_INVENTORY: #1742's entries for #1740 and #1741 replace this branch's
  catch-up versions; the #1726-#1739 catch-up stays.
- LATEST_STATE: this branch's "main after #1741" text, which now has per-PR
  records for #1726-#1739.
entries/README.md regenerated with entries_index.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VncKoyG6JkpsoqhqTGTv3f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants