Skip to content

fix: give reason to root-level propagation in nogood propagator #124

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

maartenflippo
Copy link
Contributor

When preprocessing a nogood, if it becomes a unit nogood, the propagator would assign the negation of the predicate with an empty reason. However, from the perspective of the proof log, that is invalid as the input to the propagator was a non-unit nogood.

@maartenflippo maartenflippo changed the base branch from main to develop December 11, 2024 14:38
@ImkoMarijnissen ImkoMarijnissen merged commit d5df8f3 into develop Dec 17, 2024
@ImkoMarijnissen ImkoMarijnissen deleted the fix/preprocessing-into-unit-nogood-explanation branch December 17, 2024 12:33
maartenflippo added a commit that referenced this pull request Apr 11, 2025
When preprocessing a nogood, if it becomes a unit nogood, the propagator
would assign the negation of the predicate with an empty reason.
However, from the perspective of the proof log, that is invalid as the
input to the propagator was a non-unit nogood.
maartenflippo added a commit that referenced this pull request Apr 11, 2025
When preprocessing a nogood, if it becomes a unit nogood, the propagator
would assign the negation of the predicate with an empty reason.
However, from the perspective of the proof log, that is invalid as the
input to the propagator was a non-unit nogood.
ImkoMarijnissen added a commit that referenced this pull request Apr 11, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](pumpkin-solver-v0.1.4...pumpkin-solver-v0.2.0)
(2025-04-11)


### Features

* Add logging for branchers
([#135](#135))
([d8814f1](d8814f1))
* Add method for retrieving relevant brancher events
([#138](#138))
([8253580](8253580))
* Adding lower-bounding search to the solver
([#132](#132))
([57bde78](57bde78))
* Adding random variable selector + sparse_set fixes
([#139](#139))
([1c4b85f](1c4b85f))
* Debug clone does not synchronise at level 0 + random splitter edge
cases ([#146](#146))
([bba1abb](bba1abb))
* Enable proof logging in appropriate test cases
([#154](#154))
([914f1bc](914f1bc))
* Expose the optimisation API in the python wrapper
([#148](#148))
([ab9a463](ab9a463))
* Flatzinc parse boolean & negative int arrays as well
([#142](#142))
([68aef75](68aef75))
* Improve element propagator
([#140](#140))
([b9bcfd3](b9bcfd3))
* Lazy explanation context
([#123](#123))
([0781357](0781357))
* No additional variables during constraint construction
([#131](#131))
([19dd45b](19dd45b))
* Nemove explicit literals
([#115](#115))
([ab74e20](ab74e20))
* Stateful integer
([#125](#125))
([eb01ed3](eb01ed3))


### Bug Fixes

* Addressing clippy warnings
([#143](#143))
([20c76bb](20c76bb))
* Allow reification of lazy reasons
([#152](#152))
([c7418ec](c7418ec))
* Also log the inference that led to an empty domain
([#165](#165))
([7799119](7799119))
* Alternating brancher did not call the methods correctly
([#128](#128))
([6019d86](6019d86))
* Disjunctive scheduling example had incorrect negation constraint
([#114](#114))
([fd007a0](fd007a0))
* Don't debug propagate deleted nogoods
([#147](#147))
([e3a6527](e3a6527))
* Explain root-level assignments in the proof log during conflict
analysis ([#163](#163))
([c877b06](c877b06))
* Fixing erronous conflict check when using incrementality
([#137](#137))
([07c253f](07c253f))
* Give reason to root-level propagation in nogood propagator
([#124](#124))
([14868d5](14868d5))
* Identify more places where root-level facts need to be logged to the
proof ([#153](#153))
([3ac5019](3ac5019))
* Issue with integer multiplication + correct path in msc file
([#117](#117))
([ce25710](ce25710))
* Post process new domain
([#129](#129))
([26a3b46](26a3b46))
* Print statistics at the end of solving process + make pumpkin-solver
default bin ([#162](#162))
([7d30ac8](7d30ac8))
* Remove paste dependency
([#159](#159))
([ea53fed](ea53fed))
* Root level assignments are properly explained in the proof when
logging inferences
([#158](#158))
([857f84c](857f84c)),
closes [#118](#118)
[#119](#119)
[#156](#156)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: ImkoMarijnissen <[email protected]>
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.

2 participants