Skip to content
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

Fix unsoundness of symmetry learning #555

Merged
merged 2 commits into from
Nov 8, 2023

Conversation

ThomasHaas
Copy link
Collaborator

@ThomasHaas ThomasHaas commented Nov 8, 2023

This PR fixes the unsoundness of symmetry learning.
The Refinement procedure performs two steps to generate refinement clauses from so-called base reasons (of a consistency violation). Those steps are (1) reducing the base reason to a core reason and (2) applying symmetry reasoning.
It used to do (1) followed by (2), which was unsound. Those steps do not commute and the order needs to be (2)->(1).

I also renamed SymmetryLearning to SymmetricLearning because the former sounds like we learn symmetries, which is not the case (we know the symmetries already, we just apply them!).

A consequence of this change is that the statistics of learned reasons now counts all symmetric ones. We used to only count the non-symmetric ones. If this is a problem somehow, I can try to exclude the symmetric ones again.

ThomasHaas and others added 2 commits November 8, 2023 10:13
Fixed soundness issue of SymmetricLearning by applying it to base reasons rather than core reasons.
@hernanponcedeleon hernanponcedeleon merged commit c93492b into development Nov 8, 2023
1 check passed
@hernanponcedeleon hernanponcedeleon deleted the fix_symmetrylearning branch November 8, 2023 12:42
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