summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-03-11 12:18:59 -0500
committerGitHub <noreply@github.com>2020-03-11 12:18:59 -0500
commitac5ef49e14154daee4200783b57584febb726a4e (patch)
treeeaab7a14b8a734f0a017595ea7de56487875690b /src
parentc7f50a009cad7a0c1a2f1a5290e1d7bd03edf0e7 (diff)
Fix non-parametrized operators in subgoal generation (#4023)
Fixes #4021. We were previously constructing a malformed HO_APPLY as part of a subgoal for induction.
Diffstat (limited to 'src')
-rw-r--r--src/parser/smt2/smt2.cpp1
-rw-r--r--src/theory/quantifiers/conjecture_generator.cpp10
2 files changed, 6 insertions, 5 deletions
diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp
index c0484e52b..d1fbfe969 100644
--- a/src/parser/smt2/smt2.cpp
+++ b/src/parser/smt2/smt2.cpp
@@ -1841,7 +1841,6 @@ api::Term Smt2::applyParseOp(ParseOp& p, std::vector<api::Term>& args)
}
else if (isBuiltinOperator)
{
- Trace("ajr-temp") << "mkTerm builtin operator" << std::endl;
if (!opts.getUfHo() && (kind == api::EQUAL || kind == api::DISTINCT))
{
// need --uf-ho if these operators are applied over function args
diff --git a/src/theory/quantifiers/conjecture_generator.cpp b/src/theory/quantifiers/conjecture_generator.cpp
index b82b958af..bccb33f1d 100644
--- a/src/theory/quantifiers/conjecture_generator.cpp
+++ b/src/theory/quantifiers/conjecture_generator.cpp
@@ -66,12 +66,14 @@ Node OpArgIndex::getGroundTerm( ConjectureGenerator * s, std::vector< TNode >& a
}
}
return Node::null();
- }else{
- std::vector< TNode > args2;
+ }
+ std::vector<TNode> args2;
+ if (d_op_terms[0].getMetaKind() == kind::metakind::PARAMETERIZED)
+ {
args2.push_back( d_ops[0] );
- args2.insert( args2.end(), args.begin(), args.end() );
- return NodeManager::currentNM()->mkNode( d_op_terms[0].getKind(), args2 );
}
+ args2.insert(args2.end(), args.begin(), args.end());
+ return NodeManager::currentNM()->mkNode(d_op_terms[0].getKind(), args2);
}
void OpArgIndex::getGroundTerms( ConjectureGenerator * s, std::vector< TNode >& terms ) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback