summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/sygus/sygus_abduct.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-06-04 11:31:55 -0500
committerGitHub <noreply@github.com>2020-06-04 11:31:55 -0500
commit8c467723be3746ed711c609fa6dafb19a5a49e8b (patch)
treebd68e5503cef07eb76a3f4c2aee52abb044ceda3 /src/theory/quantifiers/sygus/sygus_abduct.cpp
parenta3670b55e0ef3d4c8e31800aa943688065ca029c (diff)
Fix abduction with datatypes (#4566)
Previously we were treating constructor/selector/tester symbols as arguments to the abduct-to-synthesize.
Diffstat (limited to 'src/theory/quantifiers/sygus/sygus_abduct.cpp')
-rw-r--r--src/theory/quantifiers/sygus/sygus_abduct.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/theory/quantifiers/sygus/sygus_abduct.cpp b/src/theory/quantifiers/sygus/sygus_abduct.cpp
index a58c5d841..22b56eb6b 100644
--- a/src/theory/quantifiers/sygus/sygus_abduct.cpp
+++ b/src/theory/quantifiers/sygus/sygus_abduct.cpp
@@ -58,6 +58,12 @@ Node SygusAbduct::mkAbductionConjecture(const std::string& name,
for (const Node& s : symset)
{
TypeNode tn = s.getType();
+ if (tn.isConstructor() || tn.isSelector() || tn.isTester())
+ {
+ // datatype symbols should be considered interpreted symbols here, not
+ // (higher-order) variables.
+ continue;
+ }
// Notice that we allow for non-first class (e.g. function) variables here.
// This is applicable to the case where we are doing get-abduct in a logic
// with UF.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback