3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00
Commit graph

482 commits

Author SHA1 Message Date
Arie Gurfinkel f465a2225a fixing include paths 2017-07-31 17:14:43 -04:00
Arie Gurfinkel 97c5ab30d5 small improvements to bmc engine
courtesy of Marc Brockschmidt
2017-07-31 17:04:36 -04:00
Arie Gurfinkel 7168451201 eager quantifier instantiation for quantified array properties 2017-07-31 17:04:16 -04:00
Arie Gurfinkel 2c7a39d580 Optionally blast arrays
This changes the default behavior of always blasting arrays.
The old behavior can be restored using

   fixedpoint.xform.array_blast=true
2017-07-31 17:03:18 -04:00
Arie Gurfinkel f5fa6b0bcb optionally disable subsumption checker 2017-07-31 17:03:18 -04:00
Arie Gurfinkel 33c81524d2 optionally disable propagate variable equivalences in interp_tail_simplifier 2017-07-31 17:03:18 -04:00
Arie Gurfinkel c3d433ede0 implemented spacer-specic muz API 2017-07-31 17:03:18 -04:00
Arie Gurfinkel 1530a39a96 stubs for spacer-specific API 2017-07-31 17:03:18 -04:00
Arie Gurfinkel ffa4957362 do not use array_der when simplifying rules 2017-07-31 17:02:29 -04:00
Arie Gurfinkel a73023da97 preserve rule names when changing rules 2017-07-31 17:02:29 -04:00
Arie Gurfinkel 5b9bf74787 Spacer engine for HORN logic
The algorithms implemented in the engine are described in the following papers

Anvesh Komuravelli, Nikolaj Bjørner, Arie Gurfinkel, Kenneth L. McMillan:
Compositional Verification of Procedural Programs using Horn Clauses over Integers and Arrays. FMCAD 2015: 89-96

Nikolaj Bjørner, Arie Gurfinkel:
Property Directed Polyhedral Abstraction. VMCAI 2015: 263-281

Anvesh Komuravelli, Arie Gurfinkel, Sagar Chaki:
SMT-Based Model Checking for Recursive Programs. CAV 2014: 17-34
2017-07-31 17:02:29 -04:00
Arie Gurfinkel b269e6b35b comments on proof_utils 2017-07-31 17:01:47 -04:00
Nikolaj Bjorner b19f94ae5b make include paths uniformly use path relative to src. #534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -07:00
Nikolaj Bjorner 18e9e4f4ac fixes #1169
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-27 09:25:01 -07:00
Nikolaj Bjorner a0a8bc2a62 fixes to #1155 and partial introduction of SMTLIB 2.6 datatype format
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-24 09:12:43 -07:00
Nikolaj Bjorner 5714f830b0 fix check for finite sorts #1122
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-08 13:37:24 -07:00
Nikolaj Bjorner 253870c6d7 fix compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-04 13:08:23 -07:00
Nikolaj Bjorner 08524a2d90 cleanup for warning message
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-01 11:47:17 -07:00
Arie Gurfinkel c7fbab0c11 propagate rule names during xform 2017-06-23 09:38:04 -04:00
Arie Gurfinkel 0dead22dca fix missing initialization 2017-06-23 09:38:04 -04:00
Dan Liew 229fd3dc3e [CMake] Fix dependencies for generating install_tactic.cpp.
Previously CMake was not aware of which headers files the generation
of `install_tactic.cpp` depended on. Consequently this could result
in broken incremental builds if

* Existing headers that declared tactics/probes changed.
* New tactics/probes were added to new header files.

Now the `z3_add_component()` CMake function has been modifed to take an
optional `TACTIC_HEADERS` argument which allows the headers that declare
tactics/probes to be explicitly listed. The necessary component
declarations have been modified to declare their tactic/probe header
files.

With this information CMake will now regenerate `install_tactic.cpp`
correctly.

This required the `mk_install_tactic_cpp_internal()` function to be
changed to take a list of header files rather than a list of component
source directories. The two consumers (CMake and Python/Makefile build
systems) of this function have been modified to work with this change.

This partially fixes #1030.
2017-06-21 23:03:48 +01:00
Arie Gurfinkel af28057980 preserve dl rule names during xforms 2017-06-20 22:23:55 -04:00
Arie Gurfinkel 50f794c4f5 api for accessing dl_rule name 2017-06-20 22:23:55 -04:00
Arie Gurfinkel 7840f6cead typo in a comment 2017-06-20 22:23:55 -04:00
Dan Liew 4b517b96df [CMake] Move CMake files into their intended location so the
`contrib/cmake/bootstrap.py` script no longer needs to be executed.

The previous location of the CMake files was a compromise proposed
by @agurfinkel in #461. While this has served us well (allowing progress
to be made) over time limitations of this approach have appeared.

The main problem is that doing many git operations (e.g. pull, rebase)
means the CMake files don't get updated unless the user remembers to
run the script. This can lead to broken and confusing build system
behaviour.

This commit only does the file moving and necessary changes to
`.gitignore`. Other changes will be done in subsequent commits.
2017-06-12 11:59:00 +01:00
Christoph M. Wintersteiger 596652ed36 Merge branch 'master' of https://github.com/Z3Prover/z3 2017-05-31 18:35:52 +01:00
Christoph M. Wintersteiger a7d5bb7b36 Tabs 2017-05-31 12:18:00 +01:00
Nikolaj Bjorner 2cbeedec69 accept hereditarily finite sorts in datalog engine
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-05-22 19:32:43 -07:00
Nikolaj Bjorner aff02ca905 include 'stopwatch.h' to avoid ODR warnings, #994 2017-04-30 11:28:11 -07:00
Christoph M. Wintersteiger 27a1758857 Added rewriter.ignore_patterns_on_ground_qbody option to disable simplification of quantifiers that have their universals appear only in patterns, but otherwise have a ground body. 2017-04-07 21:19:20 +01:00
Nikolaj Bjorner d754aa2dc4 disable ackerman reduction when head contains a non-constant/non-variable. #947
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-03-17 10:12:32 -07:00
Nikolaj Bjorner c4c9de0838 fix memory leaks from cancellations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-01-15 20:09:27 -08:00
Nikolaj Bjorner 4bcf1bf2f6 fix debug build, unused variable warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-21 10:44:49 -08:00
Nikolaj Bjorner df492e200f merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-21 10:04:02 -08:00
Nikolaj Bjorner 8d18fd075e remove sources for unused variable warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-21 09:54:45 -08:00
Nikolaj Bjorner c1480b4389 handle model generation from issue #748. Deal with warnings from #836
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-12 00:40:52 +01:00
Nikolaj Bjorner 0765eea486 add suggestions from #835
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-11 05:45:40 +01:00
Nikolaj Bjorner 32c63ce4cd address other warnings per input from delcypher
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-10 17:23:59 +01:00
Nikolaj Bjorner 6594c3a046 add virtual destructor to intermediary class in case this helps for #835
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-10 13:58:39 +01:00
Nikolaj Bjorner dea3b8ddf7 address warnings from #836
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-10 13:14:36 +01:00
Nikolaj Bjorner 8e078cf9e2 address #835
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-10 07:52:00 +01:00
Nikolaj Bjorner fe10f2d244 address #835
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-10 07:51:16 +01:00
Nikolaj Bjorner 6a9b5ea3af fix unsoundness reported in issue #777, disable ematching on recursive function definition axioms exposed in #793
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-19 15:29:43 -08:00
Nikolaj Bjorner 2ff5af7d42 fix bug incorrect clearing of goals during node creation. Issue #777
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-19 10:06:16 -08:00
Nikolaj Bjorner ea601dd403 fix and coallesce clique functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-19 03:55:48 -08:00
Nikolaj Bjorner e9db934f1a improving perf of mutex finding, revert semantics of 0 timeout to no-timeout. Issue #791
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-17 04:26:17 +02:00
Nikolaj Bjorner e21bd8dacc fix lexicographic combinations for wmax: pb constrsaints were not interpreted in Boolean benchmarks. #782
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-15 15:07:05 +02:00
Nikolaj Bjorner fa1a0aa7ba remove buggy and unused equivalence relation plugin. Github issue #770
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-10-31 22:59:56 +01:00
Nikolaj Bjorner 7f29674842 add option to bypass compression of unbound tails, issue #738
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-09-16 14:56:10 -07:00
Nikolaj Bjorner 510231df42 fix to #717. The bottom-up COI filter can only use positive facts for filtering
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-08-23 12:26:38 -03:00
Nikolaj Bjorner 0a09d5ff52 check for non-nullness when handling optional info fields for marking. Fixes issue #719
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-08-23 11:33:40 -03:00
Nikolaj Bjorner cb2d8d2107 add detection of non-fixed variables to consequence finding
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-30 19:12:41 -07:00
Nikolaj Bjorner 67c6f9be91 have the classifier revert to full arithmetic on non-difference logic, reported on http://stackoverflow.com/questions/38594208/changing-order-of-z3-fixepoint-queries-changes-the-result/38596187#3
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-26 10:32:54 -07:00
Fabian Wolff 6eaab00e83 Fix spelling errors 2016-07-09 11:46:43 +02:00
Nikolaj Bjorner 5b497b6249 reduce set of mainly verbose warnings raised by -Wmaybe-uninitialized and unused variable warnings from release mode builds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-22 20:25:47 -07:00
Nikolaj Bjorner 9253ca9d86 make use of warning_msg safe for formatting. Thanks to Scott McPeak for reporting
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-14 08:10:10 -07:00
Nikolaj Bjorner b11f9050e3 fix bugs exposed from bad indentation warnings, #650
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-13 18:20:25 -07:00
Nikolaj Bjorner cb29c07f06 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-06-08 13:56:12 -07:00
Nikolaj Bjorner 5253f3a12b internalize unsupported operations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-08 13:56:01 -07:00
Nikolaj Bjorner e8d85f91d7 disable filtering on negated tails. Issue #634
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-04 20:08:13 -07:00
Nikolaj Bjorner 19db0c5f2c Merge branch 'master' of https://github.com/Z3Prover/z3 2016-06-03 10:13:27 -07:00
Nikolaj Bjorner 219b47822b avoid qsat when formulas are quantifier-free. Go directly to SMT
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-06-03 10:13:16 -07:00
Nikolaj Bjorner c3f498a640 strengthen support for int.to.str and length reasoning. Issue #589
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-28 12:26:47 -07:00
Nikolaj Bjorner 8c99d3c431 tidy unbound compressor code, add invariant checks
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-28 11:05:26 -07:00
Nikolaj Bjorner 236f1c2a3e bypass stale rules as part of unbounded compression. Issue #624
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-27 10:31:28 -07:00
Nikolaj Bjorner 18a9b89e30 bypass stale rules as part of unbounded compression. Issue #624
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-27 09:38:23 -07:00
Nikolaj Bjorner 50d334e4e9 fix non-determinism bug in simple joins. Keys were normalized based on pointer equality not object identifier equality. Also some ptr hashtables were used with pointer hashes, and then traversed. reported in issue #619
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-27 07:51:02 -07:00
Nikolaj Bjorner 84ff6fd62a fix non-determinism bug in simple joins. Keys were normalized based on pointer equality not object identifier equality. Also some ptr hashtables were used with pointer hashes, and then traversed
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-27 07:49:38 -07:00
Christoph M. Wintersteiger c4610e0423 renamed variable to avoid clashes 2016-05-24 14:37:43 +01:00
Nikolaj Bjorner 3a6e6df4f5 fix unused-but-set-variable warnings reported in #579
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-18 11:02:10 -07:00
Nikolaj Bjorner 96e157e201 fix warnings for unused variables
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-17 13:54:22 -07:00
Nikolaj Bjorner e5ca676251 initialize manager to avoid unrelated error message, issue #604
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-15 12:59:42 -07:00
Nikolaj Bjorner 7fb30c38ae disallow illegal use per #604
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-15 12:49:07 -07:00
Nikolaj Bjorner d383fd851a move vector<std::string to std::vector<std::string
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-04-16 09:34:27 -07:00
Nikolaj Bjorner 20bbdfe31a moving remaining qsat functionality over
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-19 15:35:26 -07:00
Nikolaj Bjorner f175f864ec merge useful utilities from qsat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-19 12:01:44 -07:00
Nuno Lopes 0b1b5a4328 fix VS x64 warning 2016-03-10 09:03:24 +00:00
Nuno Lopes 8b53628d67 remove a few unused decls 2016-03-09 17:01:06 +00:00
Nikolaj Bjorner 8c4d791f01 use std::vector per Nuno's analysis to fix #420
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-07 08:08:17 -08:00
Nikolaj Bjorner 6cf76f2113 remove references to _DEBUG use Z3DEBUG instead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 20:23:20 -08:00
Nikolaj Bjorner 8c538fd3f0 setting partial equivalence priority lower so that it doesn't intefere with inlining (partial fix to the fact that inlining will remove such implicit relations). Using short-circuit negation in qe to avoid redundant double negations in intermediary results
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-21 10:31:13 -08:00
Nikolaj Bjorner 94be6fc776 remove passing suffixes into pdr_sym_mux, trying to isolate cause of issue #420
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 19:25:52 +00:00
Christoph M. Wintersteiger c01f0323c3 Merge branch 'lackr' of https://github.com/MikolasJanota/z3 into MikolasJanota-lackr 2016-02-10 14:26:04 +00:00
Nikolaj Bjorner cacfa0cb98 fix build, likely addressing issue #420
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 22:58:08 +00:00
Nikolaj Bjorner 5ce85aba40 removing const qualifiers, perhaps this helps for #420 and adding assert to enable Clang analysis earlier for issue #440
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 22:23:37 +00:00
Christoph M. Wintersteiger 808eb664cb Merge branch 'master' of https://github.com/Z3Prover/z3 into lackr 2016-02-04 18:27:19 +00:00
Christoph M. Wintersteiger 4e37821dde "canceled" -> Z3_CANCELED_MSG
Relates to #431
2016-02-04 13:52:43 +00:00
Christoph M. Wintersteiger 35c21779e3 Merge branch 'master' of https://github.com/Z3Prover/z3 into lackr 2016-02-02 11:29:35 +00:00
Nikolaj Bjorner 2115111dac update display method for datalog to use predicates, throttle use of extensionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-28 20:23:06 -08:00
Mikolas Janota 094d357b07 Merge remote-tracking branch 'upstream/master' into lackr 2016-01-13 12:10:36 +00:00
Nikolaj Bjorner 01c3e02e99 fix query for non-relational engines
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-12 07:57:10 -08:00
Mikolas Janota 613edfc107 Merge remote-tracking branch 'upstream/master' into lackr 2016-01-12 13:19:29 +00:00
Mikolas Janota b26e4b1516 Merge remote-tracking branch 'upstream/master' into lackr 2016-01-11 18:27:47 +00:00
Nikolaj Bjorner 131f9e2247 change queries to take function names instead of arbitrary predicates. This allows to bypass issues with having arbitrary query expressions compiled in arbitrary ways to auxiliary predicates where names of bound variables are reshuffled. See also Stackoverflow http://stackoverflow.com/questions/34693719/bug-in-z3-datalog
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-10 20:43:41 -08:00
Nikolaj Bjorner 082dcda7f7 Fix Issue #405: Horn normal form ignores implication
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-10 19:16:59 -08:00
Nikolaj Bjorner fc4260e018 enable Horner evaluation also for mixed-integer constraints now that ast-manger inserts coercions on the fly. Avoids loop for issue #399, but with this alone results in unknown status
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-09 10:01:44 -08:00
Mikolas Janota 743a59254e Merge remote-tracking branch 'upstream/master' into lackr 2016-01-07 16:39:43 +00:00
Nikolaj Bjorner 3f040dbd23 remove std::cout usage
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-04 22:26:54 -08:00
Nikolaj Bjorner 0c03a87c82 merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-03 14:08:29 -08:00
Nikolaj Bjorner 876fd1f7ba seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-01 09:00:21 -08:00