Arie Gurfinkel
ece2e53c98
Ported model_search and model_node from pdr into spacer
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
478d7c790e
mbc: moved code under get_subst()
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
e860e4d045
Bug fix for quantified pob generation
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
2a243d38d1
Model based Cartesian decomposition
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
fee7828b51
fix solve bug
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
3178f7f86d
Add random order of children in spacer
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
5756871738
Always attempt to eliminate all existential variables
...
Sometimes variables that cannot be eliminated in one context, can be
eliminated in the other. Pass all available variables to MBP to be
eliminated if possible
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
7396ad72ab
Give up when a lemma is re-discovered too many times
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
6fb6279f07
Cleanup array_eq_generalizer
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
da66ad6f80
Cleanup derivation::create_next_child
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
c5ff5ac2a1
Clen up spacer::pred_transformer::get_origin_summary
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
d7dc10212e
Clean up spacer::context::create_children
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
b61da6fcc0
Debug print in org-mode format
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
6b82068d8d
Bug fix in spacer::derivation::exist_skolemize
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
4ca734528e
Formatting
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
dd064bd8f9
Bug fix to spacer::sym_mux
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
38c2b56f0e
Rewrite spacer::sym_mux
...
Simpler implementation that only provides functionality actually used
by spacer
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
268274911a
Fix to cube-and-clause interface in prop_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
e0e435582a
Minor code cleanup
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
6464468cd8
Remove dead code
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
aa77a918cd
Optimizing qe_lite
2018-06-14 16:08:50 -07:00
Nikolaj Bjorner
bfeb15b876
move to list of clauses
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
502e323678
Fixes to pred_tranformer::updt_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
862eef5ec0
Eliminate all existential variables from reach facts
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
70f4674b3a
Code to update solver with all constraints of a pred_transformer
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
cfcc084688
reach_fact --> rf
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
7a8563a34c
spacer: cleaner management of rf tags
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
ada548b5ae
Removed unused options
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
0b387cd7eb
Moved pool_solvers from spacer::manager into spacer::context
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
451d42319b
Rename m_reach_ctx into m_reach_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
1e54237880
mbp_array: Fix set_model_completion bug
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
cdba0721e7
Extra stats in iuc_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
16fefe850a
Factored mbp into pred_transformer and added stats
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
fde58664f6
Moved mk_reach_fact to pred_transformer
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
2a2b21326b
Stats on num_proxies in iuc_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
e2e1411707
Option to dump SMT queries as benchmarks during Spacer run
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
bebfac047e
Dump benchmarks in pool_solver
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
b50da20531
array_mbp: turn on model completion
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
0452bc3d43
qe_lite: simplify definitions before deciding on elimination order
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
b120923dd5
qe_lite: bug fix in der::der_sort_vars()
...
The case of
VAR 1 = (+ (:var 2) 10)
VAR 2 = (+ 0 foo)
was not properly handled whenever VAR2 has only one reference.
In that case, VAR2 is not marked as done when VAR1 is processed,
causing VAR2 to be duplicated in elimination order
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
fb52c36210
spacer: switch to new IUC as default
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
3a97451f8c
spacer: normalize the cube before creating a lemma
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
fce68536d3
spacer: print all lemmas in json
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
bfa472faec
New style of json dump based on lemmas at pob
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
5072a2a869
spacer: pobs keep track of their lemmas
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
61cd74818f
Pin lemmas so that they don't disappear
2018-06-14 16:08:50 -07:00
Nikolaj Bjorner
ebfb2a4a1e
Fix mbp to respect reduce_all_selects option
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:50 -07:00
Nikolaj Bjorner
0c2e3c0894
fixes to clause proof tracking
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
f7d015de8d
Switch spacer_prop_solver to check_sat_cc
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
1343b272e7
Implement iuc_solver::check_sat_cc
2018-06-14 16:08:50 -07:00