Nikolaj Bjorner
939bf1c725
wip - alpha support for polymorphism
...
An initial update to support polymorphism from SMTLIB3 and the API (so far C, Python).
The WIP SMTLIB3 format is assumed to be supporting the following declaration
```
(declare-type-var A)
```
Whenever A is used in a type signature of a function/constant or bound quantified variable, it is taken to mean that all instantiations of A are included in the signature and assertions.
For example, if the function f is declared with signature A -> A, then there is a version of f for all instances of A.
The semantics of polymorphism appears to follow previous proposals: the instances are effectively different functions.
This may clash with some other notions, such as the type signature forall 'a . 'a -> 'a would be inhabited by a unique function (the identity), while this is not enforced in this version (and hopefully never because it is more busy work).
The C API has the function 'Z3_mk_type_variable' to create a type variable and applying functions modulo polymorphic type signatures is possible.
The kind Z3_TYPE_VAR is added to sort discriminators.
This version is considered as early alpha. It passes a first rudimentary unit test involving quantified axioms, declare-fun, define-fun, and define-fun-rec.
2023-07-12 18:09:02 -07:00
Nikolaj Bjorner
ce501e0b6e
#6646
...
- always enable special-relations theory to deal with default setting and push
- fix bugs related to equality and transitivity.
2023-03-25 17:37:59 -07:00
Nikolaj Bjorner
c0f1f33898
dampen second setup of theory_bv
2022-12-30 18:47:32 -08:00
Nikolaj Bjorner
847aec1d30
update dependencies
2022-11-30 22:48:10 -08:00
Nikolaj Bjorner
529f116be0
disable new code until pre-condition gets fixed
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-30 22:29:59 -08:00
Nikolaj Bjorner
8ca023d541
expose propagate created
2021-12-17 16:12:47 -08:00
Nikolaj Bjorner
805bb58289
fix #5404
2021-07-12 12:35:24 +02:00
Nikolaj Bjorner
4a6083836a
call it data instead of c_ptr for approaching C++11 std::vector convention.
2021-04-13 18:17:35 -07:00
Murphy Berzish
da68c3213c
Unicode for Z3str3 ( #4981 )
...
* z3str3: remove hard-coded char set
* z3str3: remove hard-coded char set
* z3str3: use char abstraction
* z3str3: scope management for unicode chars
* add QF_CHAR for z3str3
* z3str3: remove hard-coded char set
* z3str3: use char abstraction
* z3str3: scope management for unicode chars
* add QF_CHAR for z3str3
* z3str3: add 'char' string solver case
* z3str3: fix mk_char using the wrong ast manager
* z3str3: fix refcounted character vectors
2021-01-29 06:14:38 -08:00
Nikolaj Bjorner
cfcd7f18a9
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-28 17:09:12 -08:00
Nikolaj Bjorner
f48fb8d3e8
it just works
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-28 11:12:05 -08:00
Nikolaj Bjorner
909257f856
remove family id externals
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-27 06:48:24 -08:00
Nikolaj Bjorner
8d8fe872ad
remove plugin status to theory_seq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-27 06:22:25 -08:00
Nikolaj Bjorner
d0f1d8f59e
move to unicode as stand-alone theory
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-27 05:46:45 -08:00
Nikolaj Bjorner
ecba26beae
missing
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-26 17:07:46 -08:00
Nikolaj Bjorner
f33d6f89b9
fix #4973
2021-01-25 12:20:27 -08:00
Nikolaj Bjorner
07680408a6
add flag to control whether ite-lifting under quantifiers is conservative or full for #4746 , use smt.q.lift_ite=2 to obtain legacy behavior
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-27 16:27:24 -07:00
Nikolaj Bjorner
796e2fd9eb
arrays ( #4684 )
...
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fill
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update drat and fix euf bugs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* const qualifiers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg ba
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-13 19:29:59 -07:00
Nikolaj Bjorner
d02b0cde7a
running updates to bv_solver ( #4674 )
...
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dbg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* drat and fresh
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move ackerman functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* towards debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove csp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-07 20:35:32 -07:00
Nikolaj Bjorner
a6a041ec5d
setting defaults in AUFLIRA and AUFLIA to conservative ite-lifting. Fixing conservative setting to be after constructor in asserted_formulas. fixes #4586
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-23 13:43:54 -07:00
Lev Nachmanson
67eaff4490
testing cheap equalities
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson
6c115bf896
cheap eqs
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson
94263167ec
cheap eqs
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson
4f0bd93124
debug cheap_eqs
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Murphy Berzish
6f0a367357
add SMTLIB2.6 names for QF_SLIA and string-int conversion operators ( #4341 )
2020-05-16 14:31:47 -07:00
Nikolaj Bjorner
becf423c77
remove level of indirection for context and ast_manager in smt_theory ( #4253 )
...
* remove level of indirection for context and ast_manager in smt_theory
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add request by #4252
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move to def
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* int
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-08 16:46:03 -07:00
Nikolaj Bjorner
6088da5159
fix #4176
2020-05-01 16:34:33 -07:00
Nikolaj Bjorner
893265ce94
fix #4166
2020-04-30 14:49:48 -07:00
Nikolaj Bjorner
029edcfabd
fix #4114
2020-04-26 16:17:42 -07:00
Nikolaj Bjorner
95a78b2450
updates to seq and bug fixes ( #4056 )
...
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4037
* nicer output for skolem functions
* more overhaul of seq, some bug fixes
* na
* added offset_eq file
* na
* fix #4044
* fix #4040
* fix #4045
* updated ignore
* new rewrites for indexof based on #4036
* add shortcuts
* updated ne solver for seq, fix #4025
* use pair vectors for equalities that are reduced by seq_rewriter
* use erase_and_swap
* remove unit-walk
* na
* add check for #3200
* nits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* name a type
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove fp check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove unsound axiom instantiation for non-contains
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix rewrites
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4053
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4052
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-22 13:18:55 -07:00
Nikolaj Bjorner
bed2097fc4
fix #3076 - need to apply relevancy propagation in mk_bits. Assume bv v is already relevant but did not have bits associated with it, the bits need to then be marked as relevant
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-10 10:36:00 -07:00
Nikolaj Bjorner
28c827fb69
fix #2919
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-02 14:49:35 -08:00
Nikolaj Bjorner
918846a97e
fix #2814
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-20 16:35:38 -08:00
Nikolaj Bjorner
37a4dd68d0
fix #2773 fix #2774
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-02 15:22:03 -08:00
Nikolaj Bjorner
2b2f016f96
python for accessing lambda, switch to theory branching for QF_LRA
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-08-14 15:44:34 -07:00
Nikolaj Bjorner
520ea65f32
move towards theory phase selection, implement getitem on lambda
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-08-14 15:44:33 -07:00
Nikolaj Bjorner
cbbb77bf2c
allow for string solver none and empty for #2268
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-07 02:32:39 +02:00
Nikolaj Bjorner
689818c8bb
allow empty string theory as a configuration option
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-06 17:59:02 +02:00
Nikolaj Bjorner
6cc82f0401
enable theory_lra on non-linear reals if configured to use
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-07 07:23:32 -07:00
Nikolaj Bjorner
4fb867a49c
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-01 11:57:07 -07:00
Nikolaj Bjorner
8d5507008e
adding cmd_context
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-28 07:04:21 -07:00
Nikolaj Bjorner
4ff940a29e
mbi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-25 18:14:41 -08:00
Bruce Mitchener
3149d7f7a4
Fix typos.
2018-11-30 22:19:30 +07:00
Nikolaj Bjorner
ccca063e54
Merge branch 'master' of https://github.com/Z3Prover/z3 into csp
2018-10-21 12:26:53 -07:00
Nikolaj Bjorner
6e41b853f7
remove case-pred and depth-limit classes
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-21 12:25:57 -07:00
Florian Pigorsch
326bf401b9
Fix some spelling errors (mostly in comments).
2018-10-20 17:07:41 +02:00
Nikolaj Bjorner
2d4a5e0a5e
n/a
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-18 18:07:04 -07:00
Nikolaj Bjorner
c7d0d4e191
add c-cube's recursive function theory
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-17 04:56:58 -07:00
Nikolaj Bjorner
540baa88f4
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-13 17:08:34 -07:00
Nikolaj Bjorner
1cb3f7c792
fixing #1520
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-28 18:03:13 -07:00