-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
After refactoring both `Enum` and `ADT` theories, they shared most of their implementation. This PR merges `Enum` theory into `ADT` ones. To prevent some regressions on the tests containing `enum` types, we performs casesplits on it, even if the flag `--enable-adts-cs` is not used. More precisely, the ADT casesplits works as follows: - if we're not generating a model, we look for a tightenable constructor, that is a constructor without payload. We take a tightenable constructor with the largest domain. - if there is no more such constructor and the flag `--enable-adts-cs` is turn on, we try to find a contradiction by propagating delayed destructors. - if we're generating a model, we look for a constructor in a domain without restriction on it. The function `Ty.cons_weight` ensures the termination of this algorithm.
- Loading branch information
Showing
16 changed files
with
160 additions
and
959 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.