summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/sygus_sampler.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-03-13 11:52:13 -0500
committerGitHub <noreply@github.com>2020-03-13 09:52:13 -0700
commit3e96419d27621be3c0c0d4f3af4b14afb0ce24a8 (patch)
treee0367d2bdf1578c1f0e9d2551b13be0c76419597 /src/theory/quantifiers/sygus_sampler.cpp
parent3e7c4419ac051902b83343e25b123eee3b715059 (diff)
Fix case of non-constant value for sygus sampling (#4051)
Fixes #4050.
Diffstat (limited to 'src/theory/quantifiers/sygus_sampler.cpp')
-rw-r--r--src/theory/quantifiers/sygus_sampler.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/theory/quantifiers/sygus_sampler.cpp b/src/theory/quantifiers/sygus_sampler.cpp
index 10af0d703..d2c2a2380 100644
--- a/src/theory/quantifiers/sygus_sampler.cpp
+++ b/src/theory/quantifiers/sygus_sampler.cpp
@@ -713,8 +713,12 @@ Node SygusSampler::getSygusRandomValue(TypeNode tn,
Trace("sygus-sample-grammar") << "...returned " << ret << std::endl;
ret = Rewriter::rewrite(ret);
Trace("sygus-sample-grammar") << "...after rewrite " << ret << std::endl;
- Assert(ret.isConst());
- return ret;
+ // A rare case where we generate a non-constant value from constant
+ // leaves is (/ n 0).
+ if(ret.isConst())
+ {
+ return ret;
+ }
}
}
Trace("sygus-sample-grammar") << "...resort to random value" << std::endl;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback