Skip to content

[codex] Add eggcc proof baseline helpers#56

Closed
saulshanabrook wants to merge 4 commits into
mainfrom
codex/eggcc-proof-baseline-pr927
Closed

[codex] Add eggcc proof baseline helpers#56
saulshanabrook wants to merge 4 commits into
mainfrom
codex/eggcc-proof-baseline-pr927

Conversation

@saulshanabrook

@saulshanabrook saulshanabrook commented Jun 29, 2026

Copy link
Copy Markdown
Member

Summary

Refreshes the eggcc proof baseline onto a new egglog core branch made from current egglog main merged with egglog PR #927:

  • egraphs-good/egglog, branch codex/pr927-main-exp56-refresh
  • locked at d69df09a74800b68a727b2c39b1e5cca31042b3e
  • merge inputs: main 7e926c6e2842db66c3f40e5cb6139a6406a9d05a + PR #927 9a37d278337f0b557a3d27fd4b7a729a8a1bf2d2

Changes in this PR:

  • Point egglog, egglog-ast, and egglog-reports at the refreshed core branch.
  • Port keep-best, print-table-stats, and dynamic set-cost extraction from the removed FunctionRow / function_for_each / lookup_function / with_full_state APIs to the current function_entries, constructor_enodes, read, and update APIs.
  • Preserve support for constructor/relation tables in keep-best and print-table-stats by falling back from function-entry scans/writes to constructor enode scans/adds.
  • Keep the checked-in eggcc 2mm pass-1 export at tests/fixtures/eggcc-2mm-pass1-merge-old.egg with former :no-merge functions represented as :merge old.

Validation

Core, in /Users/saul/p/wt/egg-smol/pr927-main-exp56-refresh:

cargo check -p egglog --release

Experimental, in /Users/saul/p/wt/egglog-experimental/eggcc-proof-baseline-pr927-refresh-worker:

cargo check --release --lib
cargo build --release --bin egglog-experimental
cargo test --release --test integration_test
cargo test --release --test eggcc_2mm_proof
git diff --check

Results: all commands passed. integration_test passed 39/39. eggcc_2mm_proof passed the checked-in fixture/static test; the full proof canary remains ignored in the test harness.

Release Timings

Timed in /Users/saul/p/wt/egglog-experimental/eggcc-proof-baseline-pr927-refresh-worker with the release binary and the checked-in fixture.

Mode Command Exit Wall time Max RSS Notes
no proofs /usr/bin/time -l target/release/egglog-experimental tests/fixtures/eggcc-2mm-pass1-merge-old.egg 0 1.44s 117,932,032 bytes Emits only the expected global-name warning.
proofs /usr/bin/time -l target/release/egglog-experimental --proofs tests/fixtures/eggcc-2mm-pass1-merge-old.egg 0 17.76s 3,543,302,144 bytes Runs proof mode successfully. The fixture has no explicit (check ...) or (prove ...) forms, so this exercises proof-mode instrumentation/generation but does not print a proof-testing result. It emits proof-normal-form warnings for non-top-level function calls in query facts.

Downstream users can depend on the refreshed core branch with:

egglog = { git = "https://github.com/egraphs-good/egglog.git", branch = "codex/pr927-main-exp56-refresh", default-features = false }
egglog-ast = { git = "https://github.com/egraphs-good/egglog.git", branch = "codex/pr927-main-exp56-refresh", default-features = false }
egglog-reports = { git = "https://github.com/egraphs-good/egglog.git", branch = "codex/pr927-main-exp56-refresh", default-features = false }

@saulshanabrook

Copy link
Copy Markdown
Member Author

Closing in favor of saulshanabrook/egglog-encoding#8 for now

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.

1 participant