3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00
Commit graph

19998 commits

Author SHA1 Message Date
Nikolaj Bjorner
0478ab1498 update nightly script
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 17:16:32 -07:00
Nikolaj Bjorner
8d48ff44c4 update nightly script
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 17:10:23 -07:00
Nikolaj Bjorner
5b287bff09 nits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 16:59:59 -07:00
NikolajBjorner
260cb337de try to instrument nightly with aarch compiler for arm64
Signed-off-by: NikolajBjorner <nbjorner@microsoft.com>
2023-08-02 11:25:16 -07:00
NikolajBjorner
ea95f8086f try to instrument nightly with aarch compiler for arm64
Signed-off-by: NikolajBjorner <nbjorner@microsoft.com>
2023-08-02 11:24:32 -07:00
Nikolaj Bjorner
09dd7688ce fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 11:19:41 -07:00
Nikolaj Bjorner
d33d8ac07a revert setting arm on linux
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 10:55:03 -07:00
Nikolaj Bjorner
9b5727adde enable arm for non-osx
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 10:51:52 -07:00
Nikolaj Bjorner
606940e60c nits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-02 10:29:48 -07:00
Arie Gurfinkel
51d3c279d0
QEL: Fast Approximated Quantifier Elimination (#6820)
* qe_lite: cleanup and comment

no change to code

* mbp_arrays: refactor out partial equality (peq)

Partial array equality, PEQ, is used as an intermediate
expression during MBP for arrays. We need to factor it out
so that it can be shared between MBP-QEL and existing MBP.

Partial array equality (peq) is used in MBP for arrays.
Factoring this out to be used by multiple MBP implementations.

* rewriter: new rewrite rules

These rules are specializes for terms that are created in QEL.
QEL commit is comming later

* datatype_rw: new rewrite rule for ADTs

The rule handles this special case:

    (cons (head x) (tail x)) --> x

* array_rewriter rules for rewriting PEQs

Special rules to simplify PEQs

* th_rewriter: wire PEQ simplifications

* spacer_iuc: avoid terms with default in IUC

Spacer prfers to not have a term representing default value of an array.
This guides IUC from picking such terms in interpolation

* mbp_term_graph: replace root with repr

* mbp_term_graph: formatting

* mbp_term_graph: class_props, getters, setters

Class properties allow to keep information for an equivalence class.

Getters and setters for terms allow accessing information

* mbp_term_graph: auxiliary methods for qel

QEL commit is comming later in the history

* mbp_term_graph: bug fix

* mbp_term_graph: pick, refine repr, compute cgrnd

* mbp_term_graph: internalize deq

* mbp_term_graph: constructor

* mbp_term_graph: optionally internalize equalities

Reperesent equalities explicitly by nodes in the term_graph

* qel

* formatting

* comments on term_lt

* get terms and other api for mbp_qel

* plugins for mbp_qel

* mbp_qel_util: utilities for mbp_qel

* qe_mbp: QEL-based mbp

* qel: expose QEL API

* spacer: replace qe_lite in qe_project_spacer by qel

This changes the default projection engine that spacer uses.

* cmd_context: debug commands for qel and mbp_qel

New commands are

  mbp-qel -- MBP with term graphs
  qel     -- QEL with term graphs
  qe-lite -- older qelite

* qe_mbp: model-based rewriters for arrays

* qe_mbp: QEL-based projection functions

* qsat: wire in QEL-based mbp

* qsat: debug code

* qsat: maybe a bug fix

Changed the code to follow the paper by adding all predicates above a given
level, not just predicates of immediately preceding level.

* chore: use new api to create solver in qsat

* mbp_term_graph use all_of idiom

* feat: solver for integer multiplication

* array_peq: formatting, no change to code

* mbp_qel_util: block comment + format

* mbt_term_graph: clang-format

* bug fix. Move dt rewrite to qe_mbp

* array_peq: add header

* run clang format on mbp plugins

* clang format on mul solver

* format do-while

* format

* format do-while

* update release notes

---------

Co-authored-by: hgvk94 <hgvk94@gmail.com>
Co-authored-by: Isabel Garcia <igarciac@uwaterloo.ca>
2023-08-02 09:34:06 -07:00
Nikolaj Bjorner
5b2519d7a3 #6523
attach original variable to pb expression.
2023-08-01 08:41:26 -07:00
Jakob Rath
6bbd68cdf1 fix for gcc 2023-08-01 16:14:46 +02:00
Jakob Rath
f6fb9bf316 minor refactor 2023-08-01 16:08:42 +02:00
Jakob Rath
417dbf3354 fix 2023-08-01 16:03:17 +02:00
Jakob Rath
f2d1ed7b07 add parameter to control congruence terms in slicing 2023-08-01 14:13:59 +02:00
Jakob Rath
8b90a45233 remove unused variables 2023-08-01 13:48:13 +02:00
Jakob Rath
d943eb4787 fix polysat params 2023-08-01 13:40:31 +02:00
Nikolaj Bjorner
adad468cd7 allow copy within a user scope #6827
this will allow copying the solver state within a scope.
The new solver state has its state at level 0. It is not possible to pop scopes from the new solver (you can still pop scopes from the original solver). The reason for this semantics is the relative difficulty of implementing (getting it right) of a state copy that preserves scopes.
2023-07-31 19:46:08 -07:00
Nikolaj Bjorner
403340498c format 2023-07-31 19:41:11 -07:00
Nikolaj Bjorner
afe1218bc6 update release.yml with linux-arm64
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-31 10:46:16 -07:00
Nikolaj Bjorner
0606ca15d9 track lia conflicts as cuts
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-28 17:40:56 -07:00
Nikolaj Bjorner
de1cf30ea8 strengthen Tseitin checker to take true/false constants into account
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-28 16:54:33 -07:00
Nikolaj Bjorner
6c5434f988 rename artifacts apart
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-28 11:40:37 -07:00
Nikolaj Bjorner
1b2b8809c0 try to add Ubuntu ARM64 to nightly #6835
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-28 11:10:14 -07:00
Nikolaj Bjorner
7135283135 update format and checker for implied-eq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-27 13:23:17 -07:00
Nikolaj Bjorner
f0184c3fde update format and checker for implied-eq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-27 13:21:45 -07:00
Jakob Rath
cd373527ff static_assert 2023-07-27 16:54:59 +02:00
Jakob Rath
8b9d9db77e compile 2023-07-27 15:49:50 +02:00
Jakob Rath
c09859fe63 store viable intervals in separate layers by bit-width 2023-07-27 15:41:50 +02:00
Jakob Rath
7a96853721 fix 2023-07-27 15:35:59 +02:00
Jakob Rath
9335b6eed6 refactor slicing dep 2023-07-27 15:35:59 +02:00
Jakob Rath
eb20b8971b slicing notes 2023-07-27 15:33:36 +02:00
Jakob Rath
fe03918f6d Add macro version of pointer tagging 2023-07-27 15:32:02 +02:00
Jakob Rath
305943a091 Add dll_elements 2023-07-27 15:31:06 +02:00
Nikolaj Bjorner
249f0de80b fix order for inequalities in arithmetic justifications such that implied bound literal is last. The self-checker uses this property to identify the implied bound
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-26 10:06:41 -07:00
Jakob Rath
edbe1087e3 one check in get_name is enough 2023-07-26 15:08:21 +02:00
Jakob Rath
1e528e264f collect_fixed 2023-07-26 15:07:53 +02:00
Jakob Rath
6cb84dc4cd collect_simple_overlaps 2023-07-26 14:39:46 +02:00
Jakob Rath
681293c23f use slicing conflict clause 2023-07-26 09:48:08 +02:00
Jakob Rath
19c1ba5158 update tests 2023-07-26 09:47:34 +02:00
Jakob Rath
8f314d4a7f reuse more slices for extractions 2023-07-26 09:44:17 +02:00
Jakob Rath
16188945ab better slicing conflict clauses 2023-07-26 09:41:52 +02:00
Jakob Rath
12e9356f0f pvar deps also need to track the slice they're coming from 2023-07-26 09:38:29 +02:00
Jakob Rath
2f0d74fca8 fix 2023-07-26 09:34:45 +02:00
Jakob Rath
e6e655f0eb clause_pp 2023-07-26 09:15:32 +02:00
Jakob Rath
1e5255508c fixes 2023-07-26 09:09:23 +02:00
Nikolaj Bjorner
c6aab89662 add rewrite for partially interpreted arithmetic functions 2023-07-25 14:57:27 -07:00
Nikolaj Bjorner
0f2fe6031a patching up trim
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-25 11:32:20 -07:00
Nikolaj Bjorner
6da4f6815e Merge branch 'master' of https://github.com/z3prover/z3 2023-07-25 09:47:09 -07:00
Nikolaj Bjorner
423a7b6888 also add separate cut rule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-07-25 09:46:59 -07:00