3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-30 15:43:45 +00:00
z3/src/tactic/portfolio/euf_completion_tactic.h
2025-06-06 20:45:54 +02:00

50 lines
1.2 KiB
C++

/*++
Copyright (c) 2022 Microsoft Corporation
Module Name:
euf_completion_tactic.h
Abstract:
Tactic for simplifying with equations.
Author:
Nikolaj Bjorner (nbjorner) 2022-10-30
Tactic Documentation:
## Tactic euf-completion
### Short Description
Uses the ground equalities as a rewrite system. The formulas are simplified
using the rewrite system.
### Long Description
The tactic uses congruence closure to represent and orient the rewrite system. Equalities from the formula
are inserted in the an E-graph (congruence closure structure) and then a representative that is most shallow
is extracted.
--*/
#pragma once
#include "util/params.h"
#include "tactic/dependent_expr_state_tactic.h"
#include "ast/simplifiers/euf_completion.h"
class ast_manager;
class tactic;
tactic * mk_euf_completion_tactic(ast_manager & m, params_ref const & p = params_ref());
dependent_expr_simplifier* mk_euf_completion_simplifier(ast_manager& m, dependent_expr_state& s, params_ref const& p = params_ref());
/*
ADD_TACTIC("euf-completion", "simplify using equalities.", "mk_euf_completion_tactic(m, p)")
ADD_SIMPLIFIER("euf-completion", "simplify modulo congruence closure.", "mk_euf_completion_simplifier(m, s, p)")
*/