mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 11:25:51 +00:00
cave in to supporting proofs (partially) in simplifiers, updated doc
This commit is contained in:
parent
aaabbfb594
commit
80033e8744
36 changed files with 157 additions and 108 deletions
|
@ -5,19 +5,11 @@ Module Name:
|
|||
|
||||
injectivity_tactic.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
Injectivity tactics
|
||||
- Discover axioms of the form `forall x. (= (g (f x)) x`
|
||||
Mark `f` as injective
|
||||
- Rewrite (sub)terms of the form `(= (f x) (f y))` to `(= x y)` whenever `f` is injective.
|
||||
|
||||
Author:
|
||||
|
||||
Nicolas Braud-Santoni (t-nibrau) 2017-08-10
|
||||
|
||||
Notes:
|
||||
|
||||
--*/
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
@ -164,8 +156,6 @@ class injectivity_tactic : public tactic {
|
|||
struct rewriter_eq_cfg : public default_rewriter_cfg {
|
||||
ast_manager & m_manager;
|
||||
InjHelper & inj_map;
|
||||
// expr_ref_vector m_out;
|
||||
// sort_ref_vector m_bindings;
|
||||
|
||||
ast_manager & m() const { return m_manager; }
|
||||
|
||||
|
@ -176,14 +166,13 @@ class injectivity_tactic : public tactic {
|
|||
}
|
||||
|
||||
void cleanup_buffers() {
|
||||
// m_out.finalize();
|
||||
}
|
||||
|
||||
void reset() {
|
||||
}
|
||||
|
||||
br_status reduce_app(func_decl * f, unsigned num, expr * const * args, expr_ref & result, proof_ref & result_pr) {
|
||||
if(num != 2)
|
||||
if (num != 2)
|
||||
return BR_FAILED;
|
||||
|
||||
if (!m().is_eq(f))
|
||||
|
@ -230,8 +219,6 @@ class injectivity_tactic : public tactic {
|
|||
finder * m_finder;
|
||||
rewriter_eq * m_eq;
|
||||
InjHelper * m_map;
|
||||
// rewriter_inverse * m_inverse;
|
||||
|
||||
params_ref m_params;
|
||||
ast_manager & m_manager;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue