potassco / potassco/constraint-handler
Brave/cautious reasoning in the propagator
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3
- Forks
- 0
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 20
Description
When computing the brave/cautious model for a progam that involves non-determinism over ch variables as well as traditional non-determinis, the computation of the union/intersection on one side shouldn't interfer with the computation on the other side.
For example:
{ p; q }.
r :- p.
r :- q.
variable_declare(dummy,a,fromFacts).
variable_domain(a,val(int,(1..2))).
variable_definedummy,b,val(int,3)).
should have the following cautious model { r, value(b,val(int,3)) }
Other example:
{ p; q }.
r :- p.
r :- q.
should have a cautious model even if there are no variable on the theory side.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the brave/cautious model propagator and reproduce the two examples from the issue. Trace how union and intersection are computed for nondeterministic choices and variable constraints; done when both examples produce the stated cautious models without interference between the two sides.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100