Arie Gurfinkel
8400122596
mk_synchronize rule transformation
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
3a01fd791b
Replace rule API
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
0035d9b8cb
Background external invariants
...
Background external invariants are constraints that are assumed to be
true of the system. This commit introduces a mode in which
background invariants are used only duing inductive generalization
and lemma pushing, but not during predecessor computation.
It is believed that this will be more efficient used of background
external invariants since they will not be able to disturb how
predecessors are generalized and computed.
Based on a patch by Jorge Navas
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
533e9c5837
Expand equality literals when eq_prop is disabled
...
When equality propagation is disabled for arithmetic,
equality atoms are expanded into inequality for potentially
better generalization with interpolation
2018-09-04 21:49:59 -04:00
Nikolaj Bjorner
84c7df75d6
record statistics setting in config_params so that fp engine can access them, fix serialization bug when check-assumptions returns unsat
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-06 16:21:27 -07:00
Nikolaj Bjorner
d47e06732c
bmc improvements, move fd_solver to self-contained directory
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-05 10:02:15 -07:00
Nikolaj Bjorner
e041ebbe80
bmc improvements, move fd_solver to self-contained directory
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-05 10:00:49 -07:00
Arie Gurfinkel
5d1149adb2
Transformation to eliminate term-ite expressions from DL rules
2018-07-02 17:09:56 -04:00
Arie Gurfinkel
6d75c31468
First draft of elim_term_ite xform. Not working.
2018-07-02 17:09:56 -04:00
Arie Gurfinkel
7acea2791d
-tr:spacer.expand-add --> -tr:spacer_progress
2018-07-02 17:09:56 -04:00
Nuno Lopes
cef17c22a1
remove some allocs from exceptions
2018-07-02 17:08:02 +01:00
Nikolaj Bjorner
c4d893dfad
fix compiler warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-30 06:10:09 -07:00
Nikolaj Bjorner
3ad7d59f22
Merge branch 'master' of https://github.com/z3prover/z3
2018-06-29 21:25:21 -07:00
Nikolaj Bjorner
797e576195
unreferenced variable in release mode, spaces
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-29 21:25:08 -07:00
Arie Gurfinkel
9b578083f5
Avoid non-linear arithmetic in qgen
2018-06-28 16:50:43 -04:00
Arie Gurfinkel
5e87d7c4a3
Formatting: move q3 parameters closer together
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
bd63458778
Shuffle assumptions on every call
...
Order of assumptions appears to make a huge difference on what lemmas
are discovered. Shuffling the assumptions ensures that the solver
is never stuck with any bad order.
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
6422fa3739
Fix arithmetic equality solver in qgen
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
41a05e9d58
Add methods to print pob
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
a63e4b48ca
Fix order of arguments when normalizing a conjunction
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
a8c9e3a837
Bug fix in qgen
2018-06-28 15:38:50 -04:00
Arie Gurfinkel
e8e27f0daf
Don't simplify bounds when normalizing a lemma
2018-06-28 15:38:50 -04:00
Arie Gurfinkel
0e5434ce0c
Debug prints
2018-06-27 22:49:36 -04:00
Arie Gurfinkel
7c924c49f6
Do not evaluate quantified formulas in a model
2018-06-27 22:49:36 -04:00
Arie Gurfinkel
704c19920d
Only 10 levels of weakness
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
4339722e98
Fix segfaults in qgen
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
49e9480928
Fix lemma_as_cti option
...
Use negation of a lemma as a proof obligation. This speeds up discovering
bad lemmas that do not contain some reachable states.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
d7234dc039
Inactive debug code
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
2b4d92821a
Avoid crashing on cancel
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
f6dcc6fc72
API to find pob in pob_manager
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
5bc57238a6
Track whether pob is in pob_queue
...
pob_queue is a priority queue. Changing a pob while it is in the queue might change
the priority. This is a source of subtle bugs. The flag is ment to help defend
against this issues in the future.
As a side-effect, a pob that is already in the queue will be silently not added
to it, and a new version of a pob might be created if a version being looked
for is already in the queue.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
c00c6b4285
Pobs are always managed
...
Removed options to allow unmanaged pobs.
Other minor cleanups.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
1910b4c87c
Rename pobs into pob_manager
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
d9100437ce
Weakness of the lemma independent of the pob
...
Lemma inherits its weakness score from the pob. However,
pob's weakness might be reset or changed for some other reason.
To avoid affecting the lemma, the weakness is copied on
construction.
2018-06-27 22:49:35 -04:00
Nikolaj Bjorner
eabe91cdef
Merge branch 'master' of https://github.com/z3prover/z3
2018-06-27 17:05:52 -07:00
Nikolaj Bjorner
7844476a7d
fixes to term-graph, add proof-checker routines for PR_BIND, remove orphaned file
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-27 17:04:47 -07:00
Nikolaj Bjorner
06c9a9f3e1
merge
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-27 08:51:22 -07:00
Nikolaj Bjorner
5762be2a0f
fix 1703
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-27 08:49:52 -07:00
Nikolaj Bjorner
520ce9a5ee
integrate lambda expressions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-26 07:23:04 -07:00
Arie Gurfinkel
3af3c82f67
Normalize lit0 in theory clause
2018-06-25 09:21:30 -04:00
Arie Gurfinkel
f330b96a35
Gracefully failing in assign-bounds to farkas
2018-06-24 21:03:09 -04:00
Arie Gurfinkel
e906930922
Debug code
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
8e57ab5d97
Computing missing coeff for assign-bounds lemma
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
1764bb8785
Cleaning up unsat_core_learner
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
7b2ca769ef
Cleanup
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
58dc5451e1
iuc code cleanup
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
9c9d0d0840
convert assign-bounds axioms to farkas lemmas
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
ac23002dce
Fix bugs in iuc generation
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
4ed6783aff
Formatting only. No change to code
2018-06-24 20:43:04 -04:00
Arie Gurfinkel
fcfa6baeca
Refactor mk_th_lemma
2018-06-24 20:43:04 -04:00
Nikolaj Bjorner
915983821b
add rewrite to each branch of mbp
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-24 17:06:49 -07:00
Nikolaj Bjorner
c32bfb5ecd
fix crash during cancelation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-24 15:29:40 -07:00
Nikolaj Bjorner
335d672bf1
fix #1675 , regression in core processing in maxres
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-19 23:23:19 -07:00
Nikolaj Bjorner
c81f25a1c8
fix build issue
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-17 09:59:03 -07:00
Nikolaj Bjorner
035baf7cb9
align use of spaces before for/if/while
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-17 09:43:40 -07:00
Arie Gurfinkel
4204b6ede2
Switch rest of spacer to new model API and remove mev_util
2018-06-16 14:40:17 -07:00
Arie Gurfinkel
a222b6d41f
Switch reach_fact to new model API
2018-06-16 14:17:33 -07:00
Arie Gurfinkel
f226c6682b
Switched derivation to new model API
2018-06-16 14:09:24 -07:00
Arie Gurfinkel
5e65b37f25
Switch spacer::qe_project to new model API
2018-06-16 13:58:58 -07:00
Arie Gurfinkel
fffc8489bf
Switched compute_implicant_literals to use new model API
2018-06-16 13:43:30 -07:00
Nikolaj Bjorner
caca07c85f
fix path to moved header file
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-15 15:28:18 -07:00
Nikolaj Bjorner
b6c43f6143
move files for build script
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-15 15:13:55 -07:00
Nikolaj Bjorner
6fc08e9c9f
Merge branch 'master' of https://github.com/z3prover/z3
2018-06-15 14:58:10 -07:00
Nikolaj Bjorner
a51d6cbcbc
debug model evaluator
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-15 14:58:02 -07:00
Arie Gurfinkel
9109968e55
Cleanup fixedpoint options
...
Replace pdr options with spacer
Repace fixedpoint module with fp
2018-06-14 16:08:52 -07:00
Arie Gurfinkel
619f681d28
Fix bug in iuc_solver::get_unsat_core() that prevented clean cores
2018-06-14 16:08:52 -07:00
Arie Gurfinkel
d38879e478
Renamed spacer options
2018-06-14 16:08:52 -07:00
Nikolaj Bjorner
74621e0b7d
first eufi example running
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:52 -07:00
Nikolaj Bjorner
9a0406d181
replace app by expr
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:52 -07:00
Nikolaj Bjorner
2e44850df9
move term graph closer to qe
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
4a2eb909bf
Re-fixing a bug in compute_implicant_literals()
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
8445e2a7a2
Fix bug in weak abs
...
Must ensure that weak model makes all summaries true. Otherwise,
it is possible to get stuck discovering the same lemma forever.
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
df7ab0e496
pred_transformer: factor rule bookkeeping to a separate class
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
4099f31f4f
Fix refutation generation
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
18e3c7b13d
Fix bug introduced by formatting
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
f3466bb3e4
tidy
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
1920450f98
throttle ite-blasting
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
1f0fd38c99
ground sat refutation from spacer (wip)
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
0534b72c4d
sort hypotheses
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
c5fb1c1223
Use vector instead of a hashtable to represent a set
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
e84ca25f05
Check whether one proof node is an ancestor of another on-demand
...
Instead of pre-computing sets
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
a40e0dce0c
proof_utils: use expr_mark instead of hashtable
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
2a6b694373
Imrove hypothesis_reducer
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
4b2196f114
nits
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
6adaed718f
remove pdr
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
cefdb8c01d
Use reachable cache
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
9fef466c63
Respect children order in spacer/pdr
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
f74ca2f0c0
Fix caching bug in mbc
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
54add824e9
Debug print
2018-06-14 16:08:51 -07:00
Nikolaj Bjorner
c3fb863ad1
formatting/reviewing
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
d2ae3b4025
Create children for pdr in spacer
...
This is first working version of gpdr strategy. Passes one test.
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
e1a45671b3
Cleanup spacer options
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
1994f1d7e4
Cleanup of spacer options
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
cb683389f6
spacer::context: Factor params into udpt_params
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
521392a8f1
First partially working pdr strategy in spacer
2018-06-14 16:08:51 -07:00
Arie Gurfinkel
ab5f579d0b
Comments in pdr_context.cpp
2018-06-14 16:08:51 -07:00
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
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
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
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
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
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
Arie Gurfinkel
723e96175b
spacer: prepare to use incremental clause smt_solver interface
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
56a29093d0
Cleanup transition creation in pred_transformer
2018-06-14 16:08:50 -07:00
Arie Gurfinkel
af57db0413
Anti-unification of two ground expressions
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
a8438e081e
Wired qe::mbp into spacer
...
use option fixedpoint.spacer.native_mbp=true to use it
2018-06-14 16:08:49 -07:00
Nikolaj Bjorner
20300bbf94
updates to mbqi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
14b9dd2cd7
spacer: let pool_solver own the solver
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
15d0fd4b42
spacer: removed virtual_solver
...
This commit removes virtual_solver and smt_context_manager that have
been migrated into solver_pool
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
098e70a9e2
spacer: switched to using solver_pool
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
c2304e2636
spacer: Cleanup of smt parameter configuration
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
cfeee55d4f
spacer: set qi.quick_checker to MC_UNSAT if quantifiers are expected
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
c8187886cf
spacer: use same params for all solver pools
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
c2b8f25cf9
Switch to using solver instead of smt::kernel all around
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
4b09cefb97
Replace smt::kernel with smt_solver
...
Replace all ad-hoc uses of smt::kernel with ad-hoc uses of smt_solver
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
9c37bef553
Fix bug in ctp
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
40781c0b0c
Comment on params used in spacer_context
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
55126692c9
spacer: counterexample to pushing (ctp)
...
Enable using fixedpoint.spacer.ctp=true
For each lemma L currently at level k, keep a model M that justifies
why L cannot be pushed to (k+1). L is not pushed while the model M
remains valid.
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
95d820196b
Cleanup
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
68b7966254
Use C++11
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
4e9023b8fe
Remove dead code
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
00f870b7ff
to_mbp_benchmark(): prints an mbp problem in benchmark format
...
currently unused. See comment in spacer_util.c:qe_project for example
usage
2018-06-14 16:08:49 -07:00
Nikolaj Bjorner
402234757e
updates to mbqi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
e8cabdc620
Uninitialized variable
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
054c6196a0
Move spacer qe into spacer_qe namespace
...
Attempt to solve compilation issues with GCC and current replication
of qe namespace inside and outside spacer
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
56bce005a0
virtual_solver: debug print
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
891dcd99c2
Use fact-generating version of mk_unit_resolution()
...
fact-using version of mk_unit_resolution() requires the fact to be a
literal. Not sure why this restriction is placed there.
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
8be03f7c1f
spacer_context: skolemize quant vars before renaming
...
Skolemization has to be done before renaming, otherwise,
can't guarantee that variable names do not clash
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
4de58a42fe
Update initialization order
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
aeb2f3c4bb
factor out inherit_properties
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
2f369d8d41
Simplify code using C++11 conventions
2018-06-14 16:08:49 -07:00
Arie Gurfinkel
5a6bd5e782
hypothesis_reducer: worked around propositional literals
...
propositional formulas (disjunctions) can appear as literals. This
makes it tricky to recognize whether a formula is a unit clause when
re-building unit resolution.
Added work-around that identifies whether a formula is a literal based
on its appearance in previous unit resolution step.
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
b39c532f19
Order of methods in spacer_context.cpp
2018-06-14 16:08:48 -07:00
Nikolaj Bjorner
7931bd1dfc
updates to mbqi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
0fe5e6c2a6
Fix handling of complex literals in hypothesis_reducer
...
In Z3, an arbitrary, even propositional, formula can be a literal.
This requires careful handling of restructuring of unit resolution.
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
d1a7c0ceb0
Remove a print
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
05c8067392
Changed pob queue management strategy in spacer_context
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
a696a40a3a
Refactoring
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
ec8f99fee7
Rename expand_node --> expand_pob
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
3f9b5bce99
Remove debug function
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
ac3bbed311
Remove dead code in spacer_manager
...
- removed bg_assertions. Incompatible with mbp in spacer
- removed unique number. Unused
- removed mk_and() and switched to ast_util:mk_and() instead
spacer_manager::mk_and() uses bool_rewriter to simplify the
conjunction
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
33466c75a6
mss loop in prop_solver
...
max sat assignment (mss) to replace core-based maxsmt()
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
d379b14942
Cleanup spacer_iuc_solver
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
fd13eb9e0e
Final cleanup of hypothesis_reducer
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
9d4784baf6
Fix dealloc order in hypotheses_reducer::reset()
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
689414d055
Fix debug printing in iuc_solver
2018-06-14 16:08:48 -07:00
Nikolaj Bjorner
ff0f257102
remove iff
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
8d312f9d1f
Cleanup of hypothesis_reducer
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
2db38fedd6
Cleanup of theory_axiom_reducer proof trasfomation
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
07ad67ebad
Move proof dot printing into iuc_proof
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
45500ff7d3
Cleanup iuc_proof
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
abe67705d3
Cleanup iuc_proof
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
c893740e13
Fix compilation
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
3bc3b00fdd
Post merge compile fixes
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
649bab2f58
Rename itp_solver into iuc_solver
...
IUC stands for Interpolanted UNSAT Core
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
5d3b515a50
Cleanup option names and default values
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
39bdecf9c2
Minor code cleanup
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
83adb6742e
Remove whitespace
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
7c727ee922
Fix compiler warnings
2018-06-14 16:08:48 -07:00
Bernhard Gleiss
4b6921dffb
removed unnecessary assignment
2018-06-14 16:08:48 -07:00
Bernhard Gleiss
295d16bfae
Rewrite hyp-reducer
...
This is a new version that conceptually addresses the bugs in
all previous version. However, it had a hard-to-debug memory
corruption. The bug appeared only in optimized compilation under
Linux with GCC.
This code is suspect and should be reviewed and further tested
2018-06-14 16:08:48 -07:00
Bernhard Gleiss
85c58e344c
Add option to use old_hyp_reducer
2018-06-14 16:08:48 -07:00
Arie Gurfinkel
f0f75d5254
Wire in arith-axiom-reducer
2018-06-14 16:08:48 -07:00
Bernhard Gleiss
0f25e9e831
Moved farkas stats printing to before and after the hyp-reduction
2018-06-14 16:08:48 -07:00