diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2016-09-09 14:14:09 -0500 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2016-09-09 14:14:09 -0500 |
commit | a97944b850f201fd692aa870e830b8fa0369c541 (patch) | |
tree | 7f4ff2086c236b2041ea3546cd82f1af0ba997bc /src/theory/quantifiers_engine.cpp | |
parent | a3a436b7b52eee9b6b5c93d58fb84e707b5e832b (diff) |
Support for separation logic + EPR. Refactor preprocessing of sep.nil, only allow sep disequal card constants when type is monotonic. Update logics on sep regressions.
Diffstat (limited to 'src/theory/quantifiers_engine.cpp')
-rw-r--r-- | src/theory/quantifiers_engine.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp index 316357ef2..7c1fd82d3 100644 --- a/src/theory/quantifiers_engine.cpp +++ b/src/theory/quantifiers_engine.cpp @@ -19,6 +19,7 @@ #include "smt/smt_statistics_registry.h" #include "theory/arrays/theory_arrays.h" #include "theory/datatypes/theory_datatypes.h" +#include "theory/sep/theory_sep.h" #include "theory/quantifiers/alpha_equivalence.h" #include "theory/quantifiers/ambqi_builder.h" #include "theory/quantifiers/bounded_integers.h" @@ -113,11 +114,8 @@ QuantifiersEngine::QuantifiersEngine(context::Context* c, context::UserContext* } if( options::quantEpr() ){ - if( !options::incrementalSolving() ){ - d_qepr = new QuantEPR; - }else{ - d_qepr = NULL; - } + Assert( !options::incrementalSolving() ); + d_qepr = new QuantEPR; }else{ d_qepr = NULL; } @@ -367,6 +365,9 @@ void QuantifiersEngine::ppNotifyAssertions( std::vector< Node >& assertions ) { } } if( d_qepr!=NULL ){ + //must handle sources of other new constants e.g. separation logic + //FIXME: cleanup + ((sep::TheorySep*)getTheoryEngine()->theoryOf( THEORY_SEP ))->initializeBounds(); d_qepr->finishInit(); } } |