Skip to content

Context provided to lazy reason calculation can be inconsistent #25

Closed
@ImkoMarijnissen

Description

@ImkoMarijnissen

When using a closure as a lazy reason, it takes as input the final PropagationContext at the time of the conflict.

However, this domain can be inconsistent (e.g. it can contain the empty domain x in [6, 5]). This goes against the assumption from certain propagators that domains which are assigned do not change (this was used in the linear not equal propagator to create lazy explanations) which resulted in incorrect explanations.

An example of an instance on which this occurs is with this model and this data file as it results in incorrect explanations leading to the semantic minimiser learning a clause which is always true.

Preferably, we would provide the final consistent state to the reason calculation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions