summaryrefslogtreecommitdiff
path: root/src/parser/smt2/smt2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/smt2/smt2.cpp')
-rw-r--r--src/parser/smt2/smt2.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp
index bc9f2a06f..0fc3678c7 100644
--- a/src/parser/smt2/smt2.cpp
+++ b/src/parser/smt2/smt2.cpp
@@ -1081,13 +1081,17 @@ const void Smt2::getSygusPrimedVars( std::vector<Expr>& vars, bool isPrimed ) {
}
const void Smt2::addSygusFunSymbol( Type t, Expr synth_fun ){
- //FIXME #1205 : we should not create a proxy, instead quantify on synth_fun and set Type t as an attribute
+ // When constructing the synthesis conjecture, we quantify on the
+ // (higher-order) bound variable synth_fun.
+ d_sygusFunSymbols.push_back(synth_fun);
+
+ // Variable "sfproxy" carries the type, which may be a SyGuS datatype
+ // that corresponds to syntactic restrictions.
Expr sym = mkBoundVar("sfproxy", t);
- d_sygusFunSymbols.push_back(sym);
-
std::vector< Expr > attr_value;
- attr_value.push_back( synth_fun );
- Command* cattr = new SetUserAttributeCommand("sygus-synth-fun", sym, attr_value);
+ attr_value.push_back(sym);
+ Command* cattr =
+ new SetUserAttributeCommand("sygus-synth-grammar", synth_fun, attr_value);
cattr->setMuted(true);
preemptCommand(cattr);
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback