diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-05-22 13:08:31 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-22 13:08:31 -0500 |
commit | cdf7aacd6b682645cf1a2bc609db005b2f4dafc7 (patch) | |
tree | cc7d7885d1fed270d6601703a9a03d2501534629 /src/smt/smt_engine.h | |
parent | d35a5a1d8072a662aa230319fbfc1611bb918ccf (diff) |
Make sygus infer find function definitions (#1951)
Diffstat (limited to 'src/smt/smt_engine.h')
-rw-r--r-- | src/smt/smt_engine.h | 16 |
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 |