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

44 commits

Author SHA1 Message Date
Hari Govind V K dbfa3dd7f1
[spacer] implement spacer::is_clause() (#4170)
Spacer has a different defintion of is_clause() than ast_util.
It is currently only used in assertions.

Main difference:
  x=y
where x and y are Bool atoms is considered to be an atom, so that
(or (= x y) (not (= z y)))
is a literal

Co-authored-by: Arie Gurfinkel <arie.gurfinkel@uwaterloo.ca>
2020-04-30 14:03:48 -07:00
Arie Gurfinkel ae5a713e81 fix #3906 by fixing a regression from today 2020-04-11 00:18:25 -04:00
Arie Gurfinkel b1b77e57e1 (partial) fix #3788
Fixes a bug in computation of implicants inside spacer.
The instance now returns `unknown`. The root cause is the difference in what
proofs are in spacer and SMT. Spacer returns a proof of query, but horn_tactic
expects a proof of FALSE.
2020-04-10 12:26:31 -04:00
Nikolaj Bjorner dff5071598 compile
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-05 17:03:26 -07:00
Nikolaj Bjorner 550852bc62 fix #3765
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-05 13:49:26 -07:00
Nikolaj Bjorner e246f6649e tidy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-05 13:31:48 -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
Arie Gurfinkel a63e4b48ca Fix order of arguments when normalizing a conjunction 2018-06-28 15:38:51 -04:00
Arie Gurfinkel 4339722e98 Fix segfaults in qgen 2018-06-27 22:49:35 -04: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 520ce9a5ee integrate lambda expressions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-26 07:23:04 -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 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 b6c43f6143 move files for build script
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-15 15:13:55 -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 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
Arie Gurfinkel 4ca734528e Formatting 2018-06-14 16:08:50 -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 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 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
Nikolaj Bjorner 7931bd1dfc updates to mbqi
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
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
Yakir Vizel 23a8e59493 Initial commit of QGen
Controlled by fixedpoint.spacer.use_quanti_generalizer

measure cumulative time, number of invocations, and number of failed
SMT calls

Relaxing equality in a pattern: if a variable equals a numeral, relax with GE

pob::get_skolems() returns all skolems that might appear in the pob.
New skolems must be added above the largest index in that map,
even if they are not used in the pob itself.

pattern generalization should be done before the pattern is skolemized and
added into the new cube.
2018-06-14 16:08:47 -07:00
Arie Gurfinkel 09d54c10a6 Wire term graph into spacer normalizer 2018-06-14 16:08:47 -07:00
Arie Gurfinkel 880fc77655 Further rewrite equalities 2018-06-14 16:08:47 -07:00
Arie Gurfinkel 9f0eb367b1 ground lemmas during propagation when qlemmas are disabled
When asserting quantified lemmas are disabled, ground a lemma
explicitly during propagate to make sure that it is ground using our
local set of skolem constants.
2018-06-14 16:08:47 -07:00
Nikolaj Bjorner c513f3ca09 merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-25 14:57:01 -07:00
Nikolaj Bjorner 8e09a78c26 fix #1510 by reintroducing automatic declaration of recognizers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-02 23:02:20 +09:00
Bruce Mitchener 76eb7b9ede Use nullptr. 2018-02-12 14:05:55 +07:00
Nikolaj Bjorner 2f218b0bdc remove also cores as arguments to tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-19 12:18:50 -08:00
Nikolaj Bjorner 4bbece6616 re-organize proof and model converters to be associated with goals instead of external
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-18 16:33:54 -08:00
Nikolaj Bjorner df6b1a707e remove proof_converter from tactic application, removing nlsat_tactic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-17 23:32:29 -08:00
Nikolaj Bjorner 637a0fa139 unused warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-24 08:49:25 -07:00
Nikolaj Bjorner f63439603d streamlining proof generation (initial step of removing ast-manager dependency). Detect error in model creation when declaring constant with non-zero arity. See #1223
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-23 21:16:46 -07:00
Arie Gurfinkel 88a35119b9 moved obj_equiv_class to ast 2017-08-01 19:24:50 -04:00
Arie Gurfinkel 25c6480e6e updated include directives 2017-07-31 23:16:42 -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