mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 11:25:51 +00:00
* Pop assign_eh * Fix scoped_ptr_vector constructors, add detach() * Need to copy the returned lemma * Add test * Basic inequality tests * Return disjunctive lemma to caller
29 lines
638 B
C++
29 lines
638 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/interval.h"
|
|
#include "math/polysat/solver.h"
|
|
|
|
namespace polysat {
|
|
|
|
class forbidden_intervals {
|
|
|
|
public:
|
|
static bool explain(solver& s, ptr_vector<constraint> const& conflict, pvar v, clause& out_lemma);
|
|
|
|
};
|
|
}
|