3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-18 02:16:40 +00:00

add rewrite for hoisting multipliers over modular inverses

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2022-04-18 14:29:16 +02:00
parent c727e2d048
commit 98c7069f75
2 changed files with 26 additions and 1 deletions

View file

@ -104,7 +104,9 @@ class arith_rewriter : public poly_rewriter<arith_rewriter_core> {
bool divides(expr* d, expr* n, expr_ref& result);
expr_ref remove_divisor(expr* arg, expr* num, expr* den);
void flat_mul(expr* e, ptr_buffer<expr>& args);
void remove_divisor(expr* d, ptr_buffer<expr>& args);
void remove_divisor(expr* d, ptr_buffer<expr>& args);
bool mk_eq_mod(expr* arg1, expr* arg2, expr_ref& result);
public:
arith_rewriter(ast_manager & m, params_ref const & p = params_ref()):
poly_rewriter<arith_rewriter_core>(m, p) {