3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-17 14:25:35 +00:00
z3/src/ast/rewriter
Lev Nachmanson 6202b2f2e4 add cancellations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

syntax errors

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

use std::vector instead of vector in cut_solver temporarily

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix in is_upper_bound, is_lower_bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add bound() for polynomial, needs more testing

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on resolve

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

implement resolve()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

implement improves()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

replace low_bound by lower_bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

better printing in cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add value vector to cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on bound propagaion for cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagation for integer inequalites

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagation for integer inequalites

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagattions on integers

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

adding m_explanation field to cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify bound propagation in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

calculate conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

change m_explanation type to a set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

making cut_solver a member of int_solver, missing push/pop support

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

return explanations from cut_solver and hook up push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

hook up push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

using resize of std::vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

it is a big squashed commit

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

rename hpp to cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes in push/pop of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

return simple inequalities a part of a conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on propagation and the main loop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add file

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

init m_v[j], the var values only when j is fixed

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

handle decide in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

start on resolve_conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

start on resolve_conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove cut_solver_def.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

in the middle

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

change signature of resolve

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix the domain of the decided var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening of ineqs

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tight ineqs

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

resolve conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix in usage of resolve()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on conflict resolution

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cut_solver is not a template

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

represent var_info as a class, not a struct

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

make literal a class

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

better resolve_conflict scheme, and switch to *constraints in literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug conflict resolution in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

switch to vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove nondetermenistic behavior from cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug resolve conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

dumb explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

get rid of a parameter

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add lemmas origins

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use lemma_origins to provide correct explanations

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use lemma_origins to provide correct explanations

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

store lemmas in a separate vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use std::unordered_set for m_dependent_constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use std::unordered_set for m_dependent_constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix bugs with lemmas

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

finding conflicting cores

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

switch from changed variables to active_set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

less active constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

propagate simple constraing immediately

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

propagate simple constraints immediately

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixing bugs with active set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove const_cast

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

towards unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

toward unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

toward unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

make lemmas_origins a set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use correct hash and equal in m_lemma_origins

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug unlimited vars

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

take in Nikolaj's comments and improvements

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

address the comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

handle unlimited vars in check_inconsistent

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

detect trivial polynomials in resolve

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's changes

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify handling of m_global_bound_var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

decide on m_global_bound_var if it is not fixed

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify m_global_bound_var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove m_global_bound_var, simplify the indexing of var_infos of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

do not run cut_solver with vars without any bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

small changes

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add cancellation in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

do not pop lemmas during a cut_solver run

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

treating cut_solver as an heurisitic

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

prepare for cut_solver returning undef

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify work with active_set in cut_solver, add stats

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify var_info literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in fill_conflict_explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in the conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add timeout to validate_* in theory_lra.cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify cut_solver, no special treatment for simple constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cleanup the cancel story

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cleanup cancelling

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in push/pop of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

extract a method in int_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

some progress with the new scheme

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes in test and in literal creation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in bound propagation in cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

provide valid conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use a lazy push in stacked_map

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use a lazy push in stacked_map

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

optimize stack operations on var_info's domains

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use the standard tactics from qflia_tactic

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

spread the var domain stack over literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

spread the var domain stack over literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

avoid cycling in cut_solver.h and fixes in push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes after rebase

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2018-06-27 11:35:11 -07:00
..
bit_blaster integrate lambda expressions 2018-06-26 07:23:04 -07:00
arith_rewriter.cpp add cancellations 2018-06-27 11:35:11 -07:00
arith_rewriter.h add cancellations 2018-06-27 11:35:11 -07:00
arith_rewriter_params.pyg re-introduce eq2ineq name for rewriting parameter 2017-09-04 11:03:57 -07:00
array_rewriter.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
array_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
array_rewriter_params.pyg Tabs, formatting. 2017-09-17 17:50:05 +01:00
ast_counter.cpp make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
ast_counter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
bit2int.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
bit2int.h Use nullptr. 2018-02-12 14:05:55 +07:00
bool_rewriter.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
bool_rewriter.h remove iff 2018-06-14 16:08:48 -07:00
bool_rewriter_params.pyg Add blast_distinct_threshold option to rewriter. Enable blast_distinct in the QF_LIA default strategy 2012-12-17 10:32:00 -08:00
bv_bounds.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
bv_bounds.h Use nullptr. 2018-02-12 14:05:55 +07:00
bv_elim.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
bv_elim.h removing dependencies on simplifier 2017-08-26 11:23:41 -07:00
bv_rewriter.cpp Remove int64, uint64 typedefs in favor of int64_t / uint64_t. 2018-03-31 14:45:04 +07:00
bv_rewriter.h port simplifications on bv2int 2017-08-28 02:55:50 -07:00
bv_rewriter_params.pyg Adding bv preprocessing techniques. 2016-09-16 19:44:37 +01:00
bv_trailing.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
bv_trailing.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
CMakeLists.txt move files for build script 2018-06-15 15:13:55 -07:00
datatype_rewriter.cpp fix #1547 by rewriting legacy recognizers to SMT-LIB2.6 style recognizers which are assumed by theory_datatype 2018-03-19 13:33:58 -07:00
datatype_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
der.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
der.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
distribute_forall.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
distribute_forall.h Use nullptr. 2018-02-12 14:05:55 +07:00
dl_rewriter.cpp Remove int64, uint64 typedefs in favor of int64_t / uint64_t. 2018-03-31 14:45:04 +07:00
dl_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
elim_bounds.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
elim_bounds.h Use override rather than virtual. 2018-02-09 21:19:27 +07:00
enum2bv_rewriter.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
enum2bv_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
expr_replacer.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
expr_replacer.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
expr_safe_replace.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
expr_safe_replace.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
factor_equivs.cpp move files for build script 2018-06-15 15:13:55 -07:00
factor_equivs.h move files for build script 2018-06-15 15:13:55 -07:00
factor_rewriter.cpp make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
factor_rewriter.h Use nullptr. 2018-02-12 14:05:55 +07:00
fpa_rewriter.cpp Bugfixes for fpa2bv_converter. Fixes #1564. 2018-04-08 21:51:27 +01:00
fpa_rewriter.h Refactored treatment of unspecified FPA functions. 2017-09-14 20:29:07 +01:00
fpa_rewriter_params.pyg Tabs, formatting. 2017-09-17 17:50:05 +01:00
inj_axiom.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
inj_axiom.h moved files 2017-08-25 17:44:57 -07:00
label_rewriter.cpp make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
label_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
maximize_ac_sharing.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
maximize_ac_sharing.h Use nullptr. 2018-02-12 14:05:55 +07:00
mk_extract_proc.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
mk_extract_proc.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
mk_simplified_app.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
mk_simplified_app.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
pb2bv_rewriter.cpp fix #1661 2018-05-30 03:18:22 -07:00
pb2bv_rewriter.h fix #1650 fix #1648 2018-05-25 08:56:13 -07:00
pb_rewriter.cpp fix pbge and reduce_tr 2018-03-13 09:07:58 -07:00
pb_rewriter.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
pb_rewriter_def.h fix pb rewriter 2018-03-12 11:22:05 -07:00
poly_rewriter.h Use nullptr. 2018-02-12 14:05:55 +07:00
poly_rewriter_def.h NULL-initialize pointers to help GCC static analyzer Fixes: variable may be used uninitialized 2018-05-19 03:45:05 +02:00
poly_rewriter_params.pyg exposed rewriter parameters 2012-12-02 22:03:30 -08:00
push_app_ite.cpp Use nullptr. 2018-02-12 14:05:55 +07:00
push_app_ite.h Use override rather than virtual. 2018-02-09 21:19:27 +07:00
quant_hoist.cpp add obj_ref::operator=(obj_ref &&) + a few explicit uses 2018-06-26 17:00:56 +01:00
quant_hoist.h Merge branch 'master' of https://github.com/Z3Prover/z3 2017-07-31 13:24:57 -07:00
rewriter.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
rewriter.h integrate lambda expressions 2018-06-26 07:23:04 -07:00
rewriter.txt cleanup 2017-05-03 17:45:56 -04:00
rewriter_def.h add obj_ref::operator=(obj_ref &&) + a few explicit uses 2018-06-26 17:00:56 +01:00
rewriter_params.pyg fixes based on regression tests 2017-08-27 09:31:16 -07:00
rewriter_types.h make include paths uniformly use path relative to src. #534 2017-07-31 13:24:11 -07:00
seq_rewriter.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
seq_rewriter.h tune for unit test, delay initialize re-solver 2018-05-13 11:49:33 -07:00
th_rewriter.cpp add obj_ref::operator=(obj_ref &&) + a few explicit uses 2018-06-26 17:00:56 +01:00
th_rewriter.h integrate lambda expressions 2018-06-26 07:23:04 -07:00
var_subst.cpp integrate lambda expressions 2018-06-26 07:23:04 -07:00
var_subst.h integrate lambda expressions 2018-06-26 07:23:04 -07:00