Work towards fixing the second issue on cvc5/cvc5-projects#487, which now gives the same error as #8347.
{
if (!ee->hasTerm(gt))
{
+ SkolemManager::SkolemFlags flags =
+ gt.getType().isBoolean() ? SkolemManager::SKOLEM_BOOL_TERM_VAR
+ : SkolemManager::SKOLEM_DEFAULT;
SkolemManager* sm = NodeManager::currentNM()->getSkolemManager();
- Node k = sm->mkPurifySkolem(gt, "gt");
+ Node k = sm->mkPurifySkolem(
+ gt, "gt", "introduced for ground subterms of triggers", flags);
Node eq = k.eqNode(gt);
Trace("trigger-gt-lemma")
<< "Trigger: ground term purify lemma: " << eq << std::endl;
// evaluation function, since we are not using the builtin support
// for evaluation functions. We use the DT_SYGUS_EVAL term so that the
// skolem construction here is deterministic and reproducible.
- Node k = sm->mkPurifySkolem(eval, "eval");
+ SkolemManager::SkolemFlags flags = eval.getType().isBoolean()
+ ? SkolemManager::SKOLEM_BOOL_TERM_VAR
+ : SkolemManager::SKOLEM_DEFAULT;
+ Node k = sm->mkPurifySkolem(
+ eval, "eval", "evaluation variable for sygus-inst", flags);
// Requires instantiation constant attribute as well. This ensures that
// other instantiation methods, e.g. E-matching do not consider this term
// for instantiation, as it is model-unsound to do so.
regress0/quantifiers/issue8001-mem-leak.smt2
regress0/quantifiers/issue8159-3-qext-nterm.smt2
regress0/quantifiers/issue8227-subs-shadow.smt2
+ regress0/quantifiers/issue8466-syqi-bool.smt2
regress0/quantifiers/lra-triv-gn.smt2
regress0/quantifiers/macro-back-subs-sat.smt2
regress0/quantifiers/macros-int-real.smt2
--- /dev/null
+; COMMAND-LINE: -q --sygus-inst
+; EXPECT: sat
+(set-logic ALL)
+(declare-fun a (Bool) Bool)
+(assert (forall ((b Bool)) (= (a b) (not b))))
+(check-sat)