mirror of
https://github.com/Z3Prover/z3
synced 2025-08-23 11:37:54 +00:00
32 lines
595 B
C++
32 lines
595 B
C++
/*++
|
|
Copyright (c) 2021 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Polysat variable elimination
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
|
Jakob Rath 2021-04-6
|
|
|
|
--*/
|
|
#pragma once
|
|
#include "math/polysat/conflict.h"
|
|
|
|
namespace polysat {
|
|
|
|
class solver;
|
|
|
|
class variable_elimination_engine {
|
|
public:
|
|
virtual ~variable_elimination_engine() {}
|
|
virtual bool perform(solver& s, pvar v, conflict& core) = 0;
|
|
};
|
|
|
|
class ve_reduction : public variable_elimination_engine {
|
|
public:
|
|
bool perform(solver& s, pvar v, conflict& core) override;
|
|
};
|
|
|
|
}
|