feat: add IntegerExpressionMembership model (#552)#814
Conversation
Add the Integer Expression Membership problem: given a recursive integer expression tree over union and Minkowski sum operations on singleton positive integers, and a target K, decide whether K belongs to the set represented by the expression. Includes model, tests, CLI support, canonical example, and paper entry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #814 +/- ##
========================================
Coverage 97.88% 97.88%
========================================
Files 643 645 +2
Lines 70418 70692 +274
========================================
+ Hits 68926 69196 +270
- Misses 1492 1496 +4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Agentic Review ReportStructural CheckStructural Review: model IntegerExpressionMembershipStructural Completeness
Build Status
Semantic Review
Issue Compliance
Summary
Quality CheckQuality ReviewDesign Principles
HCI (if CLI/MCP changed)
Test Quality
IssuesCritical (Must Fix)
Important (Should Fix)
Minor (Nice to Have)
Summary
Agentic Feature TestsFeature Test Report: problem-reductionsDate: 2026-03-29 Summary
Per-Feature DetailsIntegerExpressionMembership CLI flow
Expected vs Actual Outcome
Issues Found
Suggestions
Generated by review-pipeline |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use checked_add for u64 addition to prevent overflow panic (evaluates to Or(false) on overflow instead of crashing) - Validate all Atom values > 0 and target > 0 in constructor - Add CLI-side validation with clean error messages - Add boundary tests: overflow safety, zero atom/target rejection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolve conflicts: keep both IntegerExpressionMembership (PR) and KthLargestMTuple, SchedulingToMinimizeWeightedCompletionTime, QuadraticDiophantineEquations, FeasibleBasisExtension (main) additions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
IntegerExpressionMembershipproblem model: given a recursive integer expression tree over union and Minkowski sum on singleton positive integers, decide if target K is in the represented setIntExprenum (Atom/Union/Sum) with Serialize/Deserialize supportValue = Or(satisfaction problem),dims() = vec![2; num_union_nodes]expression_size(),num_union_nodes(),num_atoms(),expression_depth()2^num_union_nodes(brute force)pred create IntegerExpressionMembership --expression <JSON> --target <K>(1 ∪ 4) + (3 ∪ 6) + (2 ∪ 5), K=12Closes #552
Test plan
make checkpasses (fmt + clippy + test)make papercompiles without errors🤖 Generated with Claude Code