mirror of
https://github.com/Z3Prover/z3
synced 2025-04-10 19:27:06 +00:00
50 lines
999 B
C++
50 lines
999 B
C++
/*++
|
|
Copyright (c) 2012 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
nlsat_clause.cpp
|
|
|
|
Abstract:
|
|
|
|
Clauses used in the Nonlinear arithmetic satisfiability procedure.
|
|
|
|
Author:
|
|
|
|
Leonardo de Moura (leonardo) 2012-01-02.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#include"nlsat_clause.h"
|
|
|
|
namespace nlsat {
|
|
|
|
clause::clause(unsigned id, unsigned sz, literal const * lits, bool learned, assumption_set as):
|
|
m_id(id),
|
|
m_size(sz),
|
|
m_capacity(sz),
|
|
m_learned(learned),
|
|
m_activity(0),
|
|
m_assumptions(as) {
|
|
for (unsigned i = 0; i < sz; i++) {
|
|
m_lits[i] = lits[i];
|
|
}
|
|
}
|
|
|
|
bool clause::contains(literal l) const {
|
|
for (unsigned i = 0; i < m_size; i++)
|
|
if (m_lits[i] == l)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
bool clause::contains(bool_var v) const {
|
|
for (unsigned i = 0; i < m_size; i++)
|
|
if (m_lits[i].var() == v)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
};
|