Fixes #4021.
We were previously constructing a malformed HO_APPLY as part of a subgoal for induction.
}
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
}
}
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 ) {
regress1/quantifiers/issue3724-quant.smt2
regress1/quantifiers/issue3765.smt2
regress1/quantifiers/issue3765-quant-dd.smt2
+ regress1/quantifiers/issue4021-ind-opts.smt2
regress1/quantifiers/issue993.smt2
regress1/quantifiers/javafe.ast.StmtVec.009.smt2
regress1/quantifiers/lra-vts-inf.smt2
--- /dev/null
+(set-logic ALL)
+(set-option :ag-miniscope-quant true)
+(set-option :conjecture-gen true)
+(set-option :int-wf-ind true)
+(set-option :quant-model-ee true)
+(set-option :sygus-inference true)
+(set-option :uf-ho true)
+(set-info :status unsat)
+(declare-fun a () Real)
+(declare-fun b () Real)
+(declare-fun c () Real)
+(declare-fun e () Real)
+(assert (forall ((d Real)) (and (or (< (/ (* (- a) d) 0) c) (> b 0.0)) (= (= d 0) (= e 0)))))
+(check-sat)