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.
This PR reworks Wmm preprocessing to work similar to how program preprocessing works.
It further adds the following passes
RemoveDeadRelations
which removes relations that do not contribute to axioms. This was already executed in the case of Refinement but now it runs also for the eager encoding although it shouldn't ever remove anything (though we could remove flagged axioms if we do not check for CAT properties which would create a lot of dead relations)MergeEquivalentRelations
which attempts to find relations with equivalent relations, replacing them by a single representative. AFAIK, currently it only removes a singlerf^-1
fromriscv-orig.cat
because it matches with anotherrf^-1
that was implicitly created by parsingfr
. EDIT: It also removes duplicates likeM*M
which are now created multiple times internally.