Bruce Mitchener
e2122c0d3d
Fix whitespace issues in *.pyg.
2019-08-15 10:19:33 -07:00
Arie Gurfinkel
375c0ff9a9
Implement get_proof() in bmc and spacer engines
2019-08-12 10:29:01 -07:00
Nikolaj Bjorner
fc41a61b6e
expose strategic solver factory prototype at level of solver module
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-08-09 15:52:12 -07:00
Arie Gurfinkel
92db639caf
Use refutation to compute ground sat answer
2019-07-25 15:22:37 -04:00
Nikolaj Bjorner
8e2ad4e461
#2379 and #2380
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-07-04 07:08:47 +07:00
Nikolaj Bjorner
e0a44894cf
purge smt.timeout, use timeout instead to control solver timing #2354
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-21 16:56:24 +02:00
Nikolaj Bjorner
11a8ced769
fix #2353
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-21 10:47:56 +02:00
Nikolaj Bjorner
89e8a1392c
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-21 10:40:35 +02:00
Nuno Lopes
1827f98851
more fixes for mutexes in shell
2019-06-19 16:42:00 +01:00
Nikolaj Bjorner
e0d8cefde4
remove cooperate
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-12 20:15:46 -07:00
Nikolaj Bjorner
7bfb730fee
fix traffic jam
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-10 17:45:55 -07:00
Nikolaj Bjorner
01f6489892
fix #2310
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-31 16:22:49 -07:00
Nikolaj Bjorner
8893913c98
remove internal referenes to set_activity
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-30 16:06:05 -07:00
Nikolaj Bjorner
92613f26b3
remove additional push/pop on fixedpoint
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-27 13:56:16 -07:00
Nikolaj Bjorner
5c67c9d907
print certificate for #2202 , enable CTL-C for API fix #2203
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-24 17:09:02 -07:00
Nikolaj Bjorner
f00697cf95
fix #2155
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 22:33:28 -08:00
Nikolaj Bjorner
26921d1c9c
fix #2155
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 22:32:50 -08:00
Nikolaj Bjorner
7aa8b4ac2a
restrict idiv-bound checks to bounded terms
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 19:11:22 -08:00
Nuno Lopes
2f33bafd5a
stopwatches: fix a few places that would call start/stop multiple times
2019-02-21 14:59:31 +00:00
Nikolaj Bjorner
89bf2d4368
add API for setting variable activity
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-15 12:05:24 -08:00
Nikolaj Bjorner
a76107e50d
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-01 18:44:52 -08:00
Nikolaj Bjorner
8d20310758
adding trail/levels
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-29 14:45:51 -08:00
Nikolaj Bjorner
498864c582
adding dump facility for cancelation #2095 , easing dimacs in/out
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-24 12:21:23 -08:00
Bruce Mitchener
44bc00f13d
Fix typos.
2018-12-23 21:58:57 -05:00
Bruce Mitchener
5fa861fa95
Simplify some boolean returns.
2018-12-04 22:41:31 +07:00
Nikolaj Bjorner
f2de15a665
Merge pull request #1982 from waywardmonkeys/avoid-const-params-in-decls
...
Avoid const params in decls.
2018-11-28 09:08:03 -08:00
Bruce Mitchener
2016f48dc9
Avoid const params in decls.
...
Const-qualification of parameters only has an effect in function
definitions.
2018-11-28 19:07:33 +07:00
Bruce Mitchener
b83d6d77c9
Use nullptr rather than 0/NULL.
2018-11-28 14:57:01 +07:00
Bruce Mitchener
e570940662
Prefer using empty rather than size comparisons.
2018-11-27 21:42:04 +07:00
Nikolaj Bjorner
72400f1869
fix #1927
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-12 03:43:04 -08:00
Nikolaj Bjorner
cc4b26f738
Merge pull request #1930 from agurfinkel/deep_space
...
print certificate
2018-11-11 09:31:38 -08:00
Bruce Mitchener
1082fad27a
Fix typos.
2018-11-11 22:21:43 +07:00
Arie Gurfinkel
d4e476d764
Work around unexpected behaviour in generalizer
2018-11-11 09:06:36 -05:00
Arie Gurfinkel
6cc6ffcde2
Fix display_certificate in spacer
...
This is expected to work now
(query q1 :print-certificate true)
2018-11-11 09:06:22 -05:00
Arie Gurfinkel
58d93d8907
Fix add external lemmas to solver even if use_bg_invs=false
...
spacer.use_bg_invs controls how user-supplied invariants are used.
However, the user expects them to be used independent of the option.
2018-11-11 08:41:22 -05:00
Nikolaj Bjorner
d7ecaa2ebb
add stub for certificate #1926
2018-11-10 09:56:44 -08:00
Florian Pigorsch
326bf401b9
Fix some spelling errors (mostly in comments).
2018-10-20 17:07:41 +02:00
Bruce Mitchener
dda62ae78c
Use bool literals instead of 0/1.
2018-10-17 22:42:57 +07:00
Michał Janiszewski
cfd0486582
Catch exceptions by const-reference
...
Exceptions caught by value incur needless cost in C++, most of them can
be caught by const-reference, especially as nearly none are actually
used. This could allow compiler generate a slightly more efficient code.
2018-10-16 19:16:07 +02:00
Nikolaj Bjorner
6704a4be02
Revert "Made Z3 compile for C++17 with MSVC"
2018-10-15 12:52:19 -07:00
Matthew Parkinson
01005a46f6
Made it more legal C++17
2018-10-15 17:25:34 +01:00
Bruce Mitchener
58682c20be
dl_util: Use an unsigned to match other values.
2018-10-13 07:58:27 +07:00
Nikolaj Bjorner
c4829dfa22
fix #1577 again
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-06 09:01:01 -07:00
Bruce Mitchener
373b691709
Use 'override' where possible.
2018-10-02 10:26:38 +07:00
Bruce Mitchener
cdfc19a885
Use nullptr.
2018-10-02 09:11:19 +07:00
Arie Gurfinkel
f67346d16e
Fix is_infty_level to treat 2^16-1 as infinity
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
5d2f682f7a
Enable proof mode in add_cover
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
7bff74dec0
Minor pass on synchronize transform
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
24044429a7
Rename cache to m_cache
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
0516e6f21f
Integrating synchronize pass
2018-09-04 21:49:59 -04:00
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