summaryrefslogtreecommitdiff
path: root/src/theory/strings/term_registry.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-10-23 13:03:17 -0500
committerGitHub <noreply@github.com>2020-10-23 13:03:17 -0500
commitf66e1fc33ee7549c90eabc808be5a6ef6196aaa0 (patch)
treec099d4ae91b82b182adbedfc2201a25188e9ddfc /src/theory/strings/term_registry.cpp
parenta7aba0c8580d5153fee99b4d59345e33c39c893b (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.cpp8
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
{
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback