#include "smt/smt_engine_scope.h"
#include "theory/datatypes/theory_datatypes_utils.h"
#include "theory/quantifiers/cegqi/ceg_instantiator.h"
+#include "theory/quantifiers/sygus/sygus_grammar_cons.h"
#include "theory/quantifiers/sygus/sygus_grammar_red.h"
#include "theory/quantifiers/sygus/term_database_sygus.h"
#include "theory/quantifiers/term_util.h"
// same level as constants.
to.d_sdt.addAnyConstantConstructor(dtn);
}
+ else
+ {
+ // add default constant constructors
+ std::vector<Node> ops;
+ CegGrammarConstructor::mkSygusConstantsForType(sygus_type, ops);
+ for (const Node& op : ops)
+ {
+ std::stringstream ss;
+ ss << op;
+ std::vector<TypeNode> ctypes;
+ to.d_sdt.addConstructor(op, ss.str(), ctypes);
+ }
+ }
}
/* Determine normalization transformation based on sygus type and given
regress1/sygus/issue3644.smt2
regress1/sygus/issue3648.smt2
regress1/sygus/issue3649.sy
+ regress1/sygus/issue3802-default-consts.sy
regress1/sygus/large-const-simp.sy
regress1/sygus/let-bug-simp.sy
regress1/sygus/list-head-x.sy
--- /dev/null
+; EXPECT: unsat
+; COMMAND-LINE: --sygus-out=status
+(set-logic ALL)
+(synth-fun f
+ () Bool
+ ((B Bool))
+ (
+ (B Bool ((Constant Bool)))
+ )
+)
+(synth-fun g
+ ((x0 Int) (r Int)) Bool
+ ((B Bool) (I Int))
+ (
+ (B Bool ((= I I)))
+ (I Int (x0 r))
+ )
+)
+(constraint (=> f (g 2 2)))
+(constraint (not (=> f (g 0 1))))
+(check-synth)