diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-10-23 13:03:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-23 13:03:17 -0500 |
commit | f66e1fc33ee7549c90eabc808be5a6ef6196aaa0 (patch) | |
tree | c099d4ae91b82b182adbedfc2201a25188e9ddfc /src/theory/strings/term_registry.cpp | |
parent | a7aba0c8580d5153fee99b4d59345e33c39c893b (diff) |
Fix related to preregistering boolean term variables in strings (#5331)
We should only add trigger predicates for string predicates, and not arbitrary Boolean terms (which can now occur since we are handling parametric sequences).
This avoids a debug assertion failure reported on as a followup to #4370. In that benchmark BOOLEAN_TERM_VARIABLE was being added as a trigger predicate.
Diffstat (limited to 'src/theory/strings/term_registry.cpp')
-rw-r--r-- | src/theory/strings/term_registry.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/theory/strings/term_registry.cpp b/src/theory/strings/term_registry.cpp index b5b2a5a13..2b5daa476 100644 --- a/src/theory/strings/term_registry.cpp +++ b/src/theory/strings/term_registry.cpp @@ -203,8 +203,12 @@ void TermRegistry::preRegisterTerm(TNode n) } else if (tn.isBoolean()) { - // Get triggered for both equal and dis-equal - ee->addTriggerPredicate(n); + // All kinds that we do congruence over that may return a Boolean go here + if (k==STRING_STRCTN || k == STRING_LEQ || k == SEQ_NTH) + { + // Get triggered for both equal and dis-equal + ee->addTriggerPredicate(n); + } } else { |