mirror of
https://github.com/Z3Prover/z3
synced 2025-09-29 12:49:02 +00:00
Add the ability to customize incremental pre-processing simplification for the SMTLIB2 front-end. The main new capability is to use pre-processing tactics in incremental mode that were previously not available. The main new capabilities are - solve-eqs - reduce-args - elim-unconstrained There are several more. Documentation and exposed simplifiers are populated incrementally. The current set of supported simplifiers can be inspected by using z3 with the --simplifiers flag or referring to https://microsoft.github.io/z3guide/docs/strategies/simplifiers Some pending features are: - add the ability to update parameters to simplifiers similar to how tactics can be controlled using parameters. - expose simplification solvers over the binary API.
28 lines
549 B
C++
28 lines
549 B
C++
/*++
|
|
Copyright (c) 2023 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
simplifier_solver.cpp
|
|
|
|
Abstract:
|
|
|
|
Implements a solver with simplifying pre-processing.
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2023-01-30
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "util/params.h"
|
|
|
|
class solver;
|
|
class solver_factory;
|
|
class dependent_expr_simplifier;
|
|
class dependent_expr_state;
|
|
typedef std::function<dependent_expr_simplifier*(ast_manager&, const params_ref&, dependent_expr_state& s)> simplifier_factory;
|
|
|
|
solver * mk_simplifier_solver(solver * s, simplifier_factory* fac);
|
|
|