feat: Added rustsat and z3 constraint dominance programming solving capabilities#1619
Open
TronciuVlad wants to merge 9 commits intoconjure-cp:mainfrom
Open
feat: Added rustsat and z3 constraint dominance programming solving capabilities#1619TronciuVlad wants to merge 9 commits intoconjure-cp:mainfrom
TronciuVlad wants to merge 9 commits intoconjure-cp:mainfrom
Conversation
RustDoc CoverageReport: https://conjure-cp.github.io/conjure-oxide-reports/pr/1619/coverage-docs/index.html This PR: 43.33% documented, 3.43% with examples (35/442/1020) |
Code CoverageReport: https://conjure-cp.github.io/conjure-oxide-reports/pr/1619/coverage-code/index.html This PR: 75.34% lines (18510/24568) |
ozgurakgun
reviewed
Mar 18, 2026
Contributor
ozgurakgun
left a comment
There was a problem hiding this comment.
- disable tracing in the CDP rewrite call
- use the configured rewriter
- change syntax to "dominance relation"
- support kissat with simulated incremental
Book PreviewPreview: https://conjure-cp.github.io/conjure-oxide-reports/pr/1619/book/ |
…ed the naive rewriter from CDP
Contributor
Author
|
@ozgurakgun Undrafted the pr |
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.
Description
This PR adds dominance-relation support across the SAT and SMT adaptors, including incremental dominance constraint injection during solution enumeration and final CLI pruning of dominated solutions
It also updates the tree-sitter Essence syntax from
dominanceRelation ...todominance relation ..., and adjusts the integration test harness so dominance tests no longer generate or compare rule tracesRelated issues
N/A
Key changes
fromSolution(...)using the current/prior solutionrewrite_model_with_configured_rewriterhelper intoconjure-cp-coreand used it in the dominance rewrite paths, so these rewrites now follow the configured rewriter instead of hard-codingrewrite_naivedominance relationdirectlyHow to test/review
Review dominance constraint generation/injection in:
crates/conjure-cp-core/src/solver/adaptors/rustsat/adaptor.rscrates/conjure-cp-core/src/solver/adaptors/smt/adaptor.rsReview the shared configured-rewriter helper in:
crates/conjure-cp-core/src/rule_engine/mod.rsReview the tree-sitter syntax change in:
crates/tree-sitter-essence/grammar.jscrates/tree-sitter-essence/src/parser.cReview the dominance integration-test behavior change in:
tests-integration/tests/integration_tests.rsRun targeted tests:
cargo test -p conjure-cp-core smt::adaptor -- --nocapturecargo test -p tests-integration --test integration_tests dominance_ -- --nocaptureOptional spot checks:
cargo test -p tests-integration --test integration_tests tests_integration_dominance_sat_pareto_01 -- --nocapturecargo test -p tests-integration --test integration_tests tests_integration_basic_bool_01 -- --nocaptureExpected behavior: