summaryrefslogtreecommitdiff
path: root/test/unit/api/cpp/solver_black.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/api/cpp/solver_black.cpp')
-rw-r--r--test/unit/api/cpp/solver_black.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/unit/api/cpp/solver_black.cpp b/test/unit/api/cpp/solver_black.cpp
index b17054637..31034a15e 100644
--- a/test/unit/api/cpp/solver_black.cpp
+++ b/test/unit/api/cpp/solver_black.cpp
@@ -2777,6 +2777,40 @@ TEST_F(TestApiBlackSolver, proj_issue381)
ASSERT_NO_THROW(d_solver.simplify(t187));
}
+
+TEST_F(TestApiBlackSolver, proj_issue382)
+{
+ Sort s1 = d_solver.getBooleanSort();
+ Sort psort = d_solver.mkParamSort("_x1");
+ DatatypeConstructorDecl ctor = d_solver.mkDatatypeConstructorDecl("_x20");
+ ctor.addSelector("_x19", psort);
+ DatatypeDecl dtdecl = d_solver.mkDatatypeDecl("_x0", psort);
+ dtdecl.addConstructor(ctor);
+ Sort s2 = d_solver.mkDatatypeSort(dtdecl);
+ Sort s6 = s2.instantiate({s1});
+ Term t13 = d_solver.mkVar(s6, "_x58");
+ Term t18 = d_solver.mkConst(s6, "_x63");
+ Term t52 = d_solver.mkVar(s6, "_x70");
+ Term t53 = d_solver.mkTerm(
+ MATCH_BIND_CASE, d_solver.mkTerm(VARIABLE_LIST, t52), t52, t18);
+ Term t73 = d_solver.mkVar(s1, "_x78");
+ Term t81 =
+ d_solver.mkTerm(MATCH_BIND_CASE,
+ d_solver.mkTerm(VARIABLE_LIST, t73),
+ d_solver.mkTerm(APPLY_CONSTRUCTOR,
+ s6.getDatatype()
+ .getConstructor("_x20")
+ .getInstantiatedConstructorTerm(s6),
+ t73),
+ t18);
+ Term t82 = d_solver.mkTerm(MATCH, {t13, t53, t53, t53, t81});
+ Term t325 = d_solver.mkTerm(
+ APPLY_SELECTOR,
+ t82.getSort().getDatatype().getSelector("_x19").getSelectorTerm(),
+ t82);
+ ASSERT_NO_THROW(d_solver.simplify(t325));
+}
+
TEST_F(TestApiBlackSolver, proj_issue383)
{
d_solver.setOption("produce-models", "true");
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback