Proper expand definitions for sets (#5676)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 15 Dec 2020 21:55:38 +0000 (15:55 -0600)
committerGitHub <noreply@github.com>
Tue, 15 Dec 2020 21:55:38 +0000 (15:55 -0600)
commit2fda6c574c75fcc85f0d828a0af9435154eb1a96
tree876431b76af27744f7c21d45c332e97074561413
parent8c4598683e4edd217ed524d47c68a053b6881f4c
Proper expand definitions for sets (#5676)

In the new view, expandDefinitions is used for eliminating partial operators and is not called during solving, and ppRewrite is called during preprocessing.

For sets, choose is a partial operator that should be applied in expand definitions, and in ppRewrite. On the other hand, is_singleton should not be expanded in expandDefinitions since it is not a partial operator, so it should only be handled in ppRewrite.

It also removes some outdated documentation regarding expandDefinitions with universe set, which is now handled by preventing universe set from occurring in solved substitutions.

This is in preparation for refactoring check-model.
src/theory/sets/theory_sets.cpp
src/theory/sets/theory_sets.h
src/theory/sets/theory_sets_private.cpp
src/theory/sets/theory_sets_private.h