3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-18 10:30:44 +00:00

add lemma.is_empty()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2025-06-25 06:20:02 -07:00 committed by Lev Nachmanson
parent 5bda42e104
commit 4e33b44d27
2 changed files with 8 additions and 4 deletions

View file

@ -1067,10 +1067,12 @@ lemma_builder::~lemma_builder() {
TRACE(nla_solver, tout << name << " " << (++i) << "\n" << *this; );
}
lemma& lemma_builder::current() const {
lemma& lemma_builder::current() {
return c.m_lemmas.back();
}
const lemma& lemma_builder::current() const {
return c.m_lemmas.back();
}
lemma_builder& lemma_builder::operator&=(lp::explanation const& e) {
expl().add_expl(e);
return *this;

View file

@ -60,6 +60,7 @@ namespace nla {
lp::explanation& expl() { return m_expl; }
const lp::explanation& expl() const { return m_expl; }
bool is_conflict() const { return m_ineqs.empty() && !m_expl.empty(); }
bool is_empty() const { return m_ineqs.empty() && m_expl.empty(); }
};
class core;
@ -72,12 +73,13 @@ namespace nla {
class lemma_builder {
char const* name;
core& c;
lemma& current() const;
// the non-const version is private
lemma& current();
const lemma& current() const;
public:
lemma_builder(core& c, char const* name);
~lemma_builder();
lemma& operator()() { return current(); }
std::ostream& display(std::ostream& out) const;
lemma_builder& operator&=(lp::explanation const& e);
lemma_builder& operator&=(const monic& m);