mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
34 lines
723 B
C++
34 lines
723 B
C++
/*++
|
|
Copyright (c) 2021 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Polysat variable elimination
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
|
Jakob Rath 2021-04-06
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "math/polysat/types.h"
|
|
#include "math/polysat/constraint.h"
|
|
|
|
namespace polysat {
|
|
|
|
class conflict;
|
|
|
|
class free_variable_elimination {
|
|
solver& s;
|
|
void find_lemma(pvar v, conflict& core);
|
|
void find_lemma(pvar v, signed_constraint c, conflict& core);
|
|
pdd eval(pdd const& p, conflict& core, assignment_t& out_assignment);
|
|
bool inv(pdd const& p, pdd& out_p_inv);
|
|
public:
|
|
free_variable_elimination(solver& s): s(s) {}
|
|
void find_lemma(conflict& core);
|
|
};
|
|
|
|
}
|