mirror of
https://github.com/Z3Prover/z3
synced 2025-08-24 03:57:51 +00:00
Implement unilinear subsumption as clause simplification
This commit is contained in:
parent
c1e2ea80f5
commit
28ddd4ad56
3 changed files with 107 additions and 4 deletions
|
@ -8,7 +8,7 @@ Module Name:
|
|||
Author:
|
||||
|
||||
Nikolaj Bjorner (nbjorner) 2021-03-19
|
||||
Jakob Rath 2021-04-6
|
||||
Jakob Rath 2021-04-06
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
|
@ -18,6 +18,7 @@ Author:
|
|||
namespace polysat {
|
||||
|
||||
class signed_constraint;
|
||||
class simplify_clause;
|
||||
|
||||
class clause;
|
||||
using clause_ref = ref<clause>;
|
||||
|
@ -31,6 +32,7 @@ namespace polysat {
|
|||
//
|
||||
class clause {
|
||||
friend class constraint_manager;
|
||||
friend class simplify_clause;
|
||||
|
||||
unsigned m_ref_count = 0; // TODO: remove refcount once we confirm it's not needed anymore
|
||||
bool m_redundant = true;
|
||||
|
@ -58,7 +60,6 @@ namespace polysat {
|
|||
static clause_ref from_unit(signed_constraint c);
|
||||
static clause_ref from_literals(sat::literal_vector literals);
|
||||
|
||||
|
||||
bool empty() const { return m_literals.empty(); }
|
||||
unsigned size() const { return m_literals.size(); }
|
||||
sat::literal operator[](unsigned idx) const { return m_literals[idx]; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue