3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-01 17:03:18 +00:00
z3/src/qe/qe_tactic.h
Nikolaj Bjorner 4f7f4376b8 fix bug in new core not detecting conflict, fix #6525, add tactic doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-14 17:20:43 -05:00

52 lines
1.1 KiB
C++

/*++
Copyright (c) 2011 Microsoft Corporation
Module Name:
qe_tactic.h
Abstract:
Quantifier elimination front-end for tactic framework.
Author:
Leonardo de Moura (leonardo) 2011-12-28.
Tactic Documentation
## Tactic qe
### Short Description
Apply quantifier elimination on quantified sub-formulas.
### Long Description
The tactic applies quantifier elimination procedures on quantified sub-formulas.
It relies on theory plugins that can perform quanifier elimination for selected theories.
These plugins include Booleans, bit-vectors, arithmetic (linear), arrays, and data-types (term algebra).
It performs feasibility checks on cases to throttle the set of sub-formulas where quantifier elimination
is applied.
### Example
```z3
(declare-const x Int)
(declare-const y Int)
(assert (exists ((z Int)) (and (<= x (* 2 z)) (<= (* 3 z) y))))
(apply qe)
```
--*/
#pragma once
#include "util/params.h"
class ast_manager;
class tactic;
tactic * mk_qe_tactic(ast_manager & m, params_ref const & p = params_ref());
/*
ADD_TACTIC("qe", "apply quantifier elimination.", "mk_qe_tactic(m, p)")
*/