summaryrefslogtreecommitdiff
path: root/src/theory/sets/theory_sets.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-12-15 15:55:38 -0600
committerGitHub <noreply@github.com>2020-12-15 15:55:38 -0600
commit2fda6c574c75fcc85f0d828a0af9435154eb1a96 (patch)
tree876431b76af27744f7c21d45c332e97074561413 /src/theory/sets/theory_sets.h
parent8c4598683e4edd217ed524d47c68a053b6881f4c (diff)
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.
Diffstat (limited to 'src/theory/sets/theory_sets.h')
-rw-r--r--src/theory/sets/theory_sets.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/theory/sets/theory_sets.h b/src/theory/sets/theory_sets.h
index 3b95c7e00..a22e75d91 100644
--- a/src/theory/sets/theory_sets.h
+++ b/src/theory/sets/theory_sets.h
@@ -76,7 +76,13 @@ class TheorySets : public Theory
Node getModelValue(TNode) override;
std::string identify() const override { return "THEORY_SETS"; }
void preRegisterTerm(TNode node) override;
+ /** Expand partial operators (choose) from n. */
TrustNode expandDefinition(Node n) override;
+ /**
+ * If the sets-ext option is not set and we have an extended operator,
+ * we throw an exception. Additionally, we expand operators like choose
+ * and is_singleton.
+ */
TrustNode ppRewrite(TNode n) override;
PPAssertStatus ppAssert(TrustNode tin,
TrustSubstitutionMap& outSubstitutions) override;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback