summaryrefslogtreecommitdiff
path: root/src/smt/set_defaults.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/smt/set_defaults.cpp')
-rw-r--r--src/smt/set_defaults.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/smt/set_defaults.cpp b/src/smt/set_defaults.cpp
index 67c5c5647..cd05b84c4 100644
--- a/src/smt/set_defaults.cpp
+++ b/src/smt/set_defaults.cpp
@@ -271,11 +271,15 @@ void setDefaults(LogicInfo& logic, bool isInternalSubsolver)
// Set default options associated with strings-exp. We also set these options
// if we are using eager string preprocessing, which may introduce quantified
// formulas at preprocess time.
+ //
+ // We don't want to set this option when we are in logics that contain ALL.
if (!logic.hasEverything() && logic.isTheoryEnabled(THEORY_STRINGS))
{
// If the user explicitly set a logic that includes strings, but is not
// the generic "ALL" logic, then enable stringsExp.
opts.strings.stringExp = true;
+ Trace("smt") << "Turning stringExp on since logic does not have everything "
+ "and string theory is enabled\n";
}
if (options::stringExp() || !options::stringLazyPreproc())
{
@@ -753,7 +757,7 @@ void setDefaults(LogicInfo& logic, bool isInternalSubsolver)
}
// If in arrays, set the UF handler to arrays
- if (logic.isTheoryEnabled(THEORY_ARRAYS) && !options::ufHo()
+ if (logic.isTheoryEnabled(THEORY_ARRAYS) && !logic.isHigherOrder()
&& !options::finiteModelFind()
&& (!logic.isQuantified()
|| (logic.isQuantified() && !logic.isTheoryEnabled(THEORY_UF))))
@@ -890,7 +894,7 @@ void setDefaults(LogicInfo& logic, bool isInternalSubsolver)
options::DecisionMode decMode =
// anything that uses sygus uses internal
usesSygus ? options::DecisionMode::INTERNAL :
- // ALL
+ // ALL or its supersets
logic.hasEverything()
? options::DecisionMode::JUSTIFICATION
: ( // QF_BV
@@ -922,7 +926,7 @@ void setDefaults(LogicInfo& logic, bool isInternalSubsolver)
: options::DecisionMode::INTERNAL);
bool stoponly =
- // ALL
+ // ALL or its supersets
logic.hasEverything() || logic.isTheoryEnabled(THEORY_STRINGS)
? false
: ( // QF_AUFLIA
@@ -986,8 +990,9 @@ void setDefaults(LogicInfo& logic, bool isInternalSubsolver)
opts.quantifiers.prenexQuant = options::PrenexQuantMode::NONE;
}
}
- if (options::ufHo())
+ if (logic.isHigherOrder())
{
+ opts.uf.ufHo = true;
// if higher-order, then current variants of model-based instantiation
// cannot be used
if (options::mbqiMode() != options::MbqiMode::NONE)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback