diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2017-10-27 13:58:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-27 13:58:12 -0500 |
commit | 0891ff3d00975ee9697855dcb2b6cbb232ec5523 (patch) | |
tree | 450d84b5cd932274d687e8ab4a2eff1a4777c45f /src/theory/quantifiers/ceg_instantiator.h | |
parent | 079ed9540d498bcbb58f2f0fbe87bdae28101d1e (diff) |
Cbqi multiple instantiation (#1289)
* Multi-instantiation heuristic for cbqi bv.
* New clang format.
* Minor
* Minor.
* Minor
Diffstat (limited to 'src/theory/quantifiers/ceg_instantiator.h')
-rw-r--r-- | src/theory/quantifiers/ceg_instantiator.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/theory/quantifiers/ceg_instantiator.h b/src/theory/quantifiers/ceg_instantiator.h index 8d7a9b5c3..0808b5ed0 100644 --- a/src/theory/quantifiers/ceg_instantiator.h +++ b/src/theory/quantifiers/ceg_instantiator.h @@ -119,6 +119,8 @@ public: d_theta.pop_back(); } } + // is this solved form empty? + bool empty() { return d_vars.empty(); } public: // theta values (for LIA, see Section 4 of Reynolds/King/Kuncak FMSD 2017) std::vector< Node > d_theta; @@ -227,7 +229,25 @@ public: public: void pushStackVariable( Node v ); void popStackVariable(); - bool doAddInstantiationInc( Node pv, Node n, TermProperties& pv_prop, SolvedForm& sf, unsigned effort ); + /** do add instantiation increment + * + * Adds the substitution { pv_prop.getModifiedTerm(pv) -> n } to the current + * instantiation, specified by sf. + * + * This function returns true if a call to + * QuantifiersEngine::addInstantiation(...) + * was successfully made in a recursive call. + * + * The solved form sf is reverted to its original state if + * this function returns false, or + * revertOnSuccess is true and this function returns true. + */ + bool doAddInstantiationInc(Node pv, + Node n, + TermProperties& pv_prop, + SolvedForm& sf, + unsigned effort, + bool revertOnSuccess = false); Node getModelValue( Node n ); public: unsigned getNumCEAtoms() { return d_ce_atoms.size(); } |