summaryrefslogtreecommitdiff
path: root/src/smt/smt_engine.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-05-22 13:08:31 -0500
committerGitHub <noreply@github.com>2018-05-22 13:08:31 -0500
commitcdf7aacd6b682645cf1a2bc609db005b2f4dafc7 (patch)
treecc7d7885d1fed270d6601703a9a03d2501534629 /src/smt/smt_engine.h
parentd35a5a1d8072a662aa230319fbfc1611bb918ccf (diff)
Make sygus infer find function definitions (#1951)
Diffstat (limited to 'src/smt/smt_engine.h')
-rw-r--r--src/smt/smt_engine.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/smt/smt_engine.h b/src/smt/smt_engine.h
index 83300afc9..dd1d1b88a 100644
--- a/src/smt/smt_engine.h
+++ b/src/smt/smt_engine.h
@@ -656,6 +656,22 @@ class CVC4_PUBLIC SmtEngine {
void printSynthSolution( std::ostream& out );
/**
+ * Get synth solution
+ *
+ * This function adds entries to sol_map that map functions-to-synthesize with
+ * their solutions, for all active conjectures. This should be called
+ * immediately after the solver answers unsat for sygus input.
+ *
+ * Specifically, given a sygus conjecture of the form
+ * exists x1...xn. forall y1...yn. P( x1...xn, y1...yn )
+ * where x1...xn are second order bound variables, we map each xi to
+ * lambda term in sol_map such that
+ * forall y1...yn. P( sol_map[x1]...sol_map[xn], y1...yn )
+ * is a valid formula.
+ */
+ void getSynthSolutions(std::map<Expr, Expr>& sol_map);
+
+ /**
* Do quantifier elimination.
*
* This function takes as input a quantified formula e
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback