#pragma once
#include "util/params.h"
#include "tactic/tactic.h"
#include "tactic/dependent_expr_state_tactic.h"
#include "tactic/bv/bvarray2uf_simplifier.h"
#include "ast/simplifiers/dependent_expr_state.h"
class ast_manager;
class tactic;
inline tactic * mk_bvarray2uf_tactic(ast_manager & m, params_ref const & p = params_ref()) {
return alloc(dependent_expr_state_tactic, m, p,
[](auto& m, auto& p, auto& s) -> dependent_expr_simplifier* {
return alloc(bvarray2uf_simplifier, m, p, s);
});
}
Z3_ADD_TACTIC(bvarray2uf, "bvarray2uf", "Rewrite bit-vector arrays into bit-vector (uninterpreted) functions.", mk_bvarray2uf_tactic(m, p));
Z3_ADD_SIMPLIFIER(bvarray2uf, "bvarray2uf", "Rewrite bit-vector arrays into bit-vector (uninterpreted) functions.", alloc(bvarray2uf_simplifier, m, p, s));