diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-03-11 12:18:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-11 12:18:59 -0500 |
commit | ac5ef49e14154daee4200783b57584febb726a4e (patch) | |
tree | eaab7a14b8a734f0a017595ea7de56487875690b /src | |
parent | c7f50a009cad7a0c1a2f1a5290e1d7bd03edf0e7 (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.cpp | 1 | ||||
-rw-r--r-- | src/theory/quantifiers/conjecture_generator.cpp | 10 |
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 ) { |