mirror of
https://github.com/Z3Prover/z3
synced 2026-03-18 19:14:29 +00:00
* Refactor: remove sign and dep from constraint * fix some bugs * improve log messages * Add missing premises to lemma * Rename getter in an attempt to fix linux build
28 lines
606 B
C++
28 lines
606 B
C++
/*++
|
|
Copyright (c) 2021 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Conflict explanation using forbidden intervals as described in
|
|
"Solving bitvectors with MCSAT: explanations from bits and pieces"
|
|
by S. Graham-Lengrand, D. Jovanovic, B. Dutertre.
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
|
Jakob Rath 2021-04-6
|
|
|
|
--*/
|
|
#pragma once
|
|
#include "math/polysat/constraint.h"
|
|
#include "math/polysat/solver.h"
|
|
|
|
namespace polysat {
|
|
|
|
class forbidden_intervals {
|
|
|
|
public:
|
|
static bool explain(solver& s, constraint_ref_vector const& conflict, pvar v, clause_ref& out_lemma);
|
|
|
|
};
|
|
}
|