3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-01 07:40:41 +00:00
z3/src/qe/lite/qel.h
Nikolaj Bjorner 606940e60c nits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 10:29:48 -07:00

46 lines
976 B
C++

/*++
Module Name:
qel.h
Abstract:
Light weight quantifier elimination (QEL) based on term graph.
The implementation is based on the following paper:
Isabel Garcia-Contreras, Hari Govind V. K., Sharon Shoham, Arie Gurfinkel:
Fast Approximations of Quantifier Elimination. Computer-Aided Verification
(CAV). 2023. URL: https://arxiv.org/abs/2306.10009
Author:
Hari Govind V K (hgvk94)
Isabel Garcia (igcontreras)
--*/
#pragma once
#include "ast/ast.h"
#include "ast/ast_util.h"
#include "util/params.h"
#include "util/uint_set.h"
class qel {
class impl;
impl *m_impl;
public:
qel(ast_manager &m, params_ref const &p);
~qel();
/**
\brief Applies light-weight elimination of `vars` provided as vector
of expressions to the cube `fml`. Returns the updated formula and updated
set of variables that were not eliminated.
*/
void operator()(app_ref_vector &vars, expr_ref &fml);
};