cnfLiteralVariables.clear();
cnfExpressionVariables.clear();
cnfClauses.clear();
- cnfAssumptions.clear();
}
void ezSAT::freeze(int)
void ezSAT::assume(int id)
{
- cnfAssumptions.insert(id);
if (id < 0)
{
int cnfVariableCount, cnfClausesCount;
std::vector<int> cnfLiteralVariables, cnfExpressionVariables;
std::vector<std::vector<int>> cnfClauses;
- std::set<int> cnfAssumptions;
void add_clause(const std::vector<int> &args);
void add_clause(const std::vector<int> &args, bool argsPolarity, int a = 0, int b = 0, int c = 0);
virtual void freeze(int id);
void assume(int id);
int bind(int id);
-
- const std::set<int> &assumed() const { return cnfAssumptions; }
int bound(int id) const;
int numCnfVariables() const { return cnfVariableCount; }
bool test(ezSAT &sat, int assumption = 0)
{
- for (auto id : sat.assumed())
- printf("%s\n", sat.to_string(id).c_str());
- if (assumption)
- printf("%s\n", sat.to_string(assumption).c_str());
-
std::vector<int> modelExpressions;
std::vector<bool> modelValues;