summaryrefslogtreecommitdiff
path: root/src/smt
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-03-12 10:38:36 -0600
committerajreynol <andrew.j.reynolds@gmail.com>2016-03-12 10:38:36 -0600
commitfd3844131f334e929bfb04eb2dcb6229cf1190cd (patch)
treee8a66486a618598d3a901f15f5169ed1b946d38a /src/smt
parentd0df704a60696d7f824eb01781b413d91a0e4202 (diff)
Add options related to interleaving quantifiers and theory combination, changes default behavior.
Diffstat (limited to 'src/smt')
-rw-r--r--src/smt/smt_engine.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp
index 93623408e..0a2f50a78 100644
--- a/src/smt/smt_engine.cpp
+++ b/src/smt/smt_engine.cpp
@@ -1683,16 +1683,25 @@ void SmtEngine::setDefaults() {
options::sortInference.set( false );
options::ufssFairnessMonotone.set( false );
}
+ if( d_logic.hasCardinalityConstraints() ){
+ //must have finite model finding on
+ options::finiteModelFind.set( true );
+ }
+
+ //if it contains a theory with non-termination, do not strictly enforce that quantifiers and theory combination must be interleaved
+ if( d_logic.isTheoryEnabled(THEORY_STRINGS) || (d_logic.isTheoryEnabled(THEORY_ARITH) && !d_logic.isLinear()) ){
+ if( !options::instWhenStrictInterleave.wasSetByUser() ){
+ options::instWhenStrictInterleave.set( false );
+ }
+ }
+
//local theory extensions
if( options::localTheoryExt() ){
if( !options::instMaxLevel.wasSetByUser() ){
options::instMaxLevel.set( 0 );
}
}
- if( d_logic.hasCardinalityConstraints() ){
- //must have finite model finding on
- options::finiteModelFind.set( true );
- }
+
if(options::fmfBoundIntLazy.wasSetByUser() && options::fmfBoundIntLazy()) {
options::fmfBoundInt.set( true );
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback