feat: add NAESatisfiability → SetSplitting reduction (#841) [full pipeline v2]#985
Closed
feat: add NAESatisfiability → SetSplitting reduction (#841) [full pipeline v2]#985
Conversation
Typst: Construction (3 steps) + Correctness (⟹ + ⟸) + Extraction + Overhead + YES/NO examples Constructor: 32,513 checks, 0 failures (exhaustive n ≤ 5, 7 sections) Adversary: 46,774 checks, 0 failures (independent impl + hypothesis) Cross-comparison: 615 instances, all agree Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implemented via /verify-reduction -> /add-reduction pipeline. Includes: reduction rule, 7 tests, canonical example in example_db. Verification artifacts cleaned up (79K+ Python checks preceded this Rust impl). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #985 +/- ##
========================================
Coverage 98.03% 98.04%
========================================
Files 784 786 +2
Lines 82310 82461 +151
========================================
+ Hits 80695 80846 +151
Misses 1615 1615 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
zazabap
added a commit
that referenced
this pull request
Apr 1, 2026
Root cause: PRs #985 and #991 failed CI because: 1. Local clippy doesn't use -D warnings but CI does (caught needless_range_loop) 2. New reductions can create paths that dominate existing direct reductions (test_find_dominated_rules_returns_known_set has hardcoded known set) Added to Step 6: - Mandatory `cargo clippy -- -D warnings` (not just `cargo clippy`) - Mandatory `cargo test` (full suite, not filtered) - Explicit dominated-rules gate with fix instructions Added to Common Mistakes: - clippy without -D warnings - dominated rules test - skipping full cargo test Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolves clippy -D warnings failure on Rust 1.94 CI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements NAESatisfiability → SetSplitting using the updated
/verify-reduction→/add-reductionpipeline. Compare with PR #984 (old pipeline) to see the differences.What's new vs PR #984
Or→Orverified in Step 1rule_builders.rsexample_db.rsCommit structure
168f6be— verification artifacts (Typst proof + Python scripts from PR docs: verify reduction #841 — NAESatisfiability → SetSplitting #980)17e9bca— Rust implementation + example_db + tests + artifact cleanupThe second commit shows the clean pattern: -6942 lines (artifacts removed) + 324 lines (Rust added).
Pipeline flow demonstrated
Test plan
cargo test naesatisfiability_to_setsplitting— 7 tests passcargo clippy— cleanCloses #841
🤖 Generated with Claude Code