SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
SATSettings.h
Go to the documentation of this file.
1 /**
2  * Class to create a settings object for the SATModule.
3  * @file SATSettings.h
4  * @author Florian Corzilius
5  * @since 2014-10-02
6  * @version 2014-10-02
7  */
8 
9 #pragma once
10 
11 #include "mcsat/MCSATSettings.h"
12 
14 
15 namespace smtrat
16 {
18 
20 
22 
23  struct SATSettings1
24  {
25  static constexpr auto moduleName = "SATModule<SATSettings1>";
26  /**
27  *
28  */
29  static const bool allow_theory_propagation = true;
30  /**
31  *
32  */
33  static const bool try_full_lazy_call_first = false;
34  /**
35  *
36  */
37  static const bool use_restarts = true;
38  /**
39  *
40  */
41  static const bool stop_search_after_first_unknown = false;
42  /**
43  *
44  */
45  static const bool formula_guided_decision_heuristic = false;
46  /**
47  *
48  */
49  static const bool check_active_literal_occurrences = false;
50  /**
51  *
52  */
53  static const bool check_if_all_clauses_are_satisfied = false;
54  /**
55  *
56  */
57  static const bool initiate_activities = false;
58  /**
59  *
60  */
61  static const bool remove_satisfied = false; // This cannot be true as otherwise incremental sat solving won't work
62 #ifdef __VS
63  /**
64  *
65  */
66  static const double percentage_of_conflicts_to_add = 1.0;
67  /**
68  *
69  */
71  /**
72  *
73  */
75 #else
76  /**
77  *
78  */
79  static constexpr double percentage_of_conflicts_to_add = 1.0;
80  /**
81  *
82  */
84  /**
85  *
86  */
88  /**
89  *
90  */
91  static const bool mc_sat = false;
92 
93  static constexpr bool validate_clauses = false;
94 #endif
95 
96  static constexpr bool check_for_duplicate_clauses = false;
97 
98  static constexpr bool mcsat_resolve_clause_chains = false;
99 
100  static constexpr bool mcsat_learn_lazy_explanations = false;
101 
102  static constexpr unsigned int mcsat_num_insert_assignments = 1;
103 
105 
106  static constexpr bool mcsat_backjump_decide = true;
107 
109 
111  };
112 
114  {
115  static const bool remove_satisfied = false;
116  };
117 
119  {
120  static const bool stop_search_after_first_unknown = true;
121  };
122 
124  static const bool mc_sat = true;
125  // static const bool check_active_literal_occurrences = true;
126  // needed for variable scheduling to work:
127  // using VarScheduler = VarSchedulerMcsatTheoryFirst<TheoryVarSchedulerStatic<mcsat::VariableOrdering::FeatureBasedBrown>>;
128  // using VarScheduler = VarSchedulerMcsatBooleanFirst<mcsat::VariableOrdering::FeatureBased>;
129  // using VarScheduler = VarSchedulerMcsatUnivariateClausesOnly<TheoryVarSchedulerStatic<mcsat::VariableOrdering::FeatureBased>,false>;
130  // using VarScheduler = VarSchedulerMcsatTheoryFirst<VarSchedulerMinisat>;
131  // using VarScheduler = VarSchedulerMcsatUnivariateConstraintsOnly<1, mcsat::VariableOrdering::FeatureBased>;
132  // using VarScheduler = VarSchedulerMcsatActivityPreferTheory<mcsat::VariableOrdering::FeatureBased>;
133 
134  // uniform (resp Boolean and theory vars) decision heuristic
135  // Note: mcsat_backjump_decide needs to be activated, otherwise we run into termination problems!
136  static constexpr bool mcsat_backjump_decide = true;
138  // using VarScheduler = VarSchedulerFixedRandom;
139  };
140 
142  static constexpr auto moduleName = "SATModule<SATSettingsMCSATDefault>";
144 };
145 
147  static constexpr auto moduleName = "SATModule<MCSATOC>";
149 };
150 
152  static constexpr auto moduleName = "SATModule<MCSATFMICPVSOC>";
154 };
155 
157  static constexpr auto moduleName = "SATModule<SATSettingsMCSATFMICPOC>";
159 };
160 
162  static constexpr auto moduleName = "SATModule<MCSATOCNew>";
164 };
166  static constexpr auto moduleName = "SATModule<SATSettingsMCSATFMICPVSOCNew>";
168 };
170  static constexpr auto moduleName = "SATModule<SATSettingsMCSATFMICPVSOCNewOC>";
172 };
173 
175  static constexpr auto moduleName = "SATModule<MCSATFMICPVSOCLWH12>";
177 };
178 
180  static constexpr auto moduleName = "SATModule<MCSATNL>";
182 };
184  static constexpr auto moduleName = "SATModule<MCSATFMICPVSNL>";
186 };
187 
189  static constexpr auto muduleName = "SATModule<MCSATVSOCNew>";
191 };
192 
194  static constexpr auto muduleName = "SATModule<MCSATFMOCNew>";
196 };
197 
198 }
Minisat's activity-based variable scheduling.
Definition: VarScheduler.h:117
Scheduler for SMT, implementing theory guided heuristics.
Definition: VarScheduler.h:308
Class to create the formulas for axioms.
MCSAT_BOOLEAN_DOMAIN_PROPAGATION
Definition: SATSettings.h:21
@ SECOND_LEVEL_MINIMIZER
@ LITERALS_BLOCKS_DISTANCE
@ SECOND_LEVEL_MINIMIZER_PLUS_LBD
VARIABLE_ACTIVITY_STRATEGY
Definition: SATSettings.h:19
static constexpr unsigned int mcsat_num_insert_assignments
Definition: SATSettings.h:102
static constexpr bool validate_clauses
Definition: SATSettings.h:93
static constexpr bool check_for_duplicate_clauses
Definition: SATSettings.h:96
static constexpr VARIABLE_ACTIVITY_STRATEGY initial_variable_activities
Definition: SATSettings.h:87
static constexpr bool mcsat_backjump_decide
Definition: SATSettings.h:106
static const bool use_restarts
Definition: SATSettings.h:37
static const bool stop_search_after_first_unknown
Definition: SATSettings.h:41
static const bool initiate_activities
Definition: SATSettings.h:57
static const bool remove_satisfied
Definition: SATSettings.h:61
static const bool allow_theory_propagation
Definition: SATSettings.h:29
static constexpr bool mcsat_learn_lazy_explanations
Definition: SATSettings.h:100
static const bool check_if_all_clauses_are_satisfied
Definition: SATSettings.h:53
static constexpr bool mcsat_resolve_clause_chains
Definition: SATSettings.h:98
static constexpr CCES conflict_clause_evaluation_strategy
Definition: SATSettings.h:83
static constexpr auto moduleName
Definition: SATSettings.h:25
static constexpr double percentage_of_conflicts_to_add
Definition: SATSettings.h:79
static constexpr MCSAT_BOOLEAN_DOMAIN_PROPAGATION mcsat_boolean_domain_propagation
Definition: SATSettings.h:104
static const bool check_active_literal_occurrences
Definition: SATSettings.h:49
static const bool mc_sat
Definition: SATSettings.h:91
static const bool formula_guided_decision_heuristic
Definition: SATSettings.h:45
static const bool try_full_lazy_call_first
Definition: SATSettings.h:33
static const bool remove_satisfied
Definition: SATSettings.h:115
static constexpr auto moduleName
Definition: SATSettings.h:142
static constexpr auto moduleName
Definition: SATSettings.h:157
static constexpr auto moduleName
Definition: SATSettings.h:184
static constexpr auto moduleName
Definition: SATSettings.h:166
static constexpr auto moduleName
Definition: SATSettings.h:152
static constexpr auto muduleName
Definition: SATSettings.h:194
static constexpr auto moduleName
Definition: SATSettings.h:180
static constexpr auto moduleName
Definition: SATSettings.h:162
static constexpr auto moduleName
Definition: SATSettings.h:147
static constexpr auto muduleName
Definition: SATSettings.h:189
static const bool mc_sat
Definition: SATSettings.h:124
static constexpr bool mcsat_backjump_decide
Definition: SATSettings.h:136
static const bool stop_search_after_first_unknown
Definition: SATSettings.h:120