3
0
Fork 0
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:
Jakob Rath 2022-08-22 14:55:02 +02:00
parent c1e2ea80f5
commit 28ddd4ad56
3 changed files with 107 additions and 4 deletions

View file

@ -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]; }