diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-05-07 14:09:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-07 19:09:58 +0000 |
commit | 89641ef6aae22610cf544f1e7545178ee6418597 (patch) | |
tree | 672e7991bbc1b7d2e1e5abf0a9b4a38c08b5baa2 /src/theory/quantifiers | |
parent | 50ff9213e6e6d36cea5a745e5c85ecbf1ca1ab62 (diff) |
Simplifications to expand definitions (#6487)
This removes the expandOnly flag from expandDefinitions.
The use of expandOnly = true is equivalent to applying top-level substitutions only, which should be done explicitly via Env::getTopLevelSubstitutions. It updates the trust substitutions utility to distinguish apply vs applyTrusted for convenience for this purpose.
This also breaks several dependencies in e.g. expand definitions module.
Diffstat (limited to 'src/theory/quantifiers')
-rw-r--r-- | src/theory/quantifiers/ematching/candidate_generator.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/theory/quantifiers/ematching/candidate_generator.cpp b/src/theory/quantifiers/ematching/candidate_generator.cpp index 93ef072fa..5295302c4 100644 --- a/src/theory/quantifiers/ematching/candidate_generator.cpp +++ b/src/theory/quantifiers/ematching/candidate_generator.cpp @@ -289,7 +289,10 @@ CandidateGeneratorSelector::CandidateGeneratorSelector(QuantifiersState& qs, { Trace("sel-trigger") << "Selector trigger: " << mpat << std::endl; Assert(mpat.getKind() == APPLY_SELECTOR); - Node mpatExp = smt::currentSmtEngine()->expandDefinitions(mpat, false); + // NOTE: could use qs.getValuation().getPreprocessedTerm(mpat); when + // expand definitions is eliminated, however, this also requires avoiding + // term formula removal. + Node mpatExp = smt::currentSmtEngine()->expandDefinitions(mpat); Trace("sel-trigger") << "Expands to: " << mpatExp << std::endl; if (mpatExp.getKind() == ITE) { |