From: Andrew Reynolds Date: Wed, 22 Jan 2020 21:27:46 +0000 (-0600) Subject: Fix single invocation partition for non-function non-atomic types (#3642) X-Git-Tag: cvc5-1.0.0~3724 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ac0bbd54de6e2b95514400c8f502aea95e5346c4;p=cvc5.git Fix single invocation partition for non-function non-atomic types (#3642) --- diff --git a/src/theory/quantifiers/single_inv_partition.cpp b/src/theory/quantifiers/single_inv_partition.cpp index c713ec1dd..6c7a06ebe 100644 --- a/src/theory/quantifiers/single_inv_partition.cpp +++ b/src/theory/quantifiers/single_inv_partition.cpp @@ -513,8 +513,8 @@ bool SingleInvocationPartition::isAntiSkolemizableType(Node f) { TypeNode tn = f.getType(); bool ret = false; - if (tn.getNumChildren() == d_arg_types.size() + 1 - || (d_arg_types.empty() && tn.getNumChildren() == 0)) + if (((tn.isFunction() && tn.getNumChildren() == d_arg_types.size() + 1) + || (d_arg_types.empty() && tn.getNumChildren() == 0))) { ret = true; std::vector children; diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 8212c21f1..5020fe6fd 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -1785,6 +1785,7 @@ set(regress_1_tests regress1/sygus/issue3507.smt2 regress1/sygus/issue3580.sy regress1/sygus/issue3634.smt2 + regress1/sygus/issue3635.smt2 regress1/sygus/large-const-simp.sy regress1/sygus/let-bug-simp.sy regress1/sygus/list-head-x.sy diff --git a/test/regress/regress1/sygus/issue3635.smt2 b/test/regress/regress1/sygus/issue3635.smt2 new file mode 100644 index 000000000..23f9d3ebd --- /dev/null +++ b/test/regress/regress1/sygus/issue3635.smt2 @@ -0,0 +1,7 @@ +; EXPECT: sat +; COMMAND-LINE: --sygus-inference +(set-logic ALL) +(declare-fun a () (Array Int Int)) +(declare-fun b () (Array Int Int)) +(assert (= a b)) +(check-sat)