Bruce Mitchener
fe1e301735
Remove Z3_bool, Z3_TRUE, Z3_FALSE from the API.
...
These have just been aliases for the standard type `bool` and
values `true` and `false` for a long time now.
2022-08-01 14:25:00 +03:00
Bruce Mitchener
fc40e3c510
Remove usages of Z3_bool, just use bool.
2022-07-30 05:49:05 +02:00
Bruce Mitchener
75339c6db7
Fix doxygen warnings in C API docs. ( #6202 )
2022-07-29 11:49:24 +02:00
Nikolaj Bjorner
ee80414e55
sketch initial for mpz/mpq numeral creation
2022-07-27 10:46:03 +02:00
Bruce Mitchener
70895b2375
Improve intra-doc linking. ( #6191 )
2022-07-25 23:14:10 +02:00
Nikolaj Bjorner
aefd336c18
set OCaml default behaivor to enable concurrent dec ref #6160
...
Add Z3_enable_concurrent_dec_ref to the API.
It is enables behavior of dec_ref functions that are exposed over the API to work with concurrent GC. The API calls to dec_ref are queued and processed in the main thread where context operations take place (in a way that is assumed thread safe as context operations are only allowed to be serialized on one thread at a time).
2022-07-16 16:49:39 -07:00
Nikolaj Bjorner
815518dc02
add facility for incremental parsing #6123
...
Adding new API object to maintain state between calls to parser.
The state is incremental: all declarations of sorts and functions are valid in the next parse. The parser produces an ast-vector of assertions that are parsed in the current calls.
The following is a unit test:
```
from z3 import *
pc = ParserContext()
A = DeclareSort('A')
pc.add_sort(A)
print(pc.from_string("(declare-const x A) (declare-const y A) (assert (= x y))"))
print(pc.from_string("(declare-const z A) (assert (= x z))"))
print(parse_smt2_string("(declare-const x Int) (declare-const y Int) (assert (= x y))"))
s = Solver()
s.from_string("(declare-sort A)")
s.from_string("(declare-const x A)")
s.from_string("(declare-const y A)")
s.from_string("(assert (= x y))")
print(s.assertions())
s.from_string("(declare-const z A)")
print(s.assertions())
s.from_string("(assert (= x z))")
print(s.assertions())
```
It produces results of the form
```
[x == y]
[x == z]
[x == y]
[x == y]
[x == y]
[x == y, x == z]
```
Thus, the set of assertions returned by a parse call is just the set of assertions added.
The solver maintains state between parser calls so that declarations made in a previous call are still available when declaring the constant 'z'.
The same holds for the parser_context_from_string function: function and sort declarations either added externally or declared using SMTLIB2 command line format as strings are valid for later calls.
2022-07-01 20:27:18 -07:00
Nikolaj Bjorner
3c94083a23
fix doc errors
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 15:29:44 -07:00
Clemens Eisenhofer
2fa60aa43c
Added function to select the next variable to split on (User-Propagator) ( #6096 )
...
* Added function to select the next variable to split on
* Fixed typo
* Small fixes
* uint -> int
2022-06-19 10:49:25 -07:00
Nikolaj Bjorner
15c47808d6
#6059
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-30 11:03:50 -07:00
Nikolaj Bjorner
7da9f12521
expose description of global parameters #6048
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-27 08:50:40 -04:00
Nikolaj Bjorner
8218f25222
add decide callback
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 15:30:03 -07:00
Nikolaj Bjorner
14214c5a07
exposing user propagators over .Net
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 11:08:40 -07:00
Sacha Ayoun
ffbabf251d
enhance ocaml seq api ( #6010 )
...
Signed-off-by: Sacha Ayoun <sachaayoun@gmail.com>
2022-05-04 12:03:22 -07:00
Nikolaj Bjorner
81d97a81af
enable nested ADT and sequences
...
add API to define forward reference to recursively defined datatype.
The forward reference should be used only when passed to constructor declarations that are used in a datatype definition (Z3_mk_datatypes). The call to Z3_mk_datatypes ensures that the forward reference can be resolved with respect to constructors.
2022-04-27 09:58:38 +01:00
Clemens Eisenhofer
81189d6fdd
Added bit2bool to the API ( #5992 )
...
* Fixed registering expressions in push/pop
* Reused existing function
* Reverted reusing can_propagate
* Added decide-callback to user-propagator
* Refactoring
* Fixed index
* Added bit2bool to the API
Fixed bug in user-propagator's decide callback
* Fixed typo
2022-04-22 09:54:21 +01:00
Nikolaj Bjorner
f4c500c519
fix build
...
reference types are not part of C
2022-04-16 15:16:53 +02:00
Clemens Eisenhofer
e11496bc65
Added decide-callback to user-propagator ( #5978 )
...
* Fixed registering expressions in push/pop
* Reused existing function
* Reverted reusing can_propagate
* Added decide-callback to user-propagator
* Refactoring
* Fixed index
2022-04-15 20:07:17 +02:00
Nikolaj Bjorner
c9fa00aec1
expose recursive functions with own op-code over API
2022-04-13 11:24:24 +02:00
Clemens Eisenhofer
b0d8b27f37
Fixed registering expressions in push/pop ( #5964 )
...
* Fixed registering expressions in push/pop
* Reused existing function
2022-04-11 16:50:13 +02:00
Nikolaj Bjorner
e1929ca9b9
add regex power to API and for Java per request
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-03-15 19:18:33 -07:00
Nikolaj Bjorner
7091b1c856
add additional regex operators to API
2022-02-20 10:29:18 +02:00
Nikolaj Bjorner
2e00f2f32d
Propagator ( #5845 )
...
* user propagator without ids
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* user propagator without ids
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix signature
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* references #5818
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix c++ build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* switch to vs 2022
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* switch 2022
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Update propagator example (I) (#5835 )
* fix #5829
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* switch to vs 2022
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Adapted the example to the changes in the propagator
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* context goes out of scope in stack allocation, so can't used scoped context when passing objects around
* parameter check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add rewriter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Fixed bug in user-propagator "created" (#5843 )
Co-authored-by: Clemens Eisenhofer <56730610+CEisenhofer@users.noreply.github.com>
2022-02-17 09:21:41 +02:00
Nikolaj Bjorner
1c10ce4070
#5815 - surface multi-arity arrays over python API
2022-02-06 08:40:56 +02:00
Nikolaj Bjorner
e9dad84b85
update documentation comments
2022-02-06 03:35:32 +02:00
Nikolaj Bjorner
dfe2b27f9a
#5773
2022-01-12 13:28:15 -08:00
Nikolaj Bjorner
2bcc814031
add macro to track closures declared in z3_api
...
This is to ease integration with external API wrappers that rely on accessing
information about type names that are used.
#5762
2022-01-12 02:47:39 -08:00
Nikolaj Bjorner
21feefeac5
Add character access functions #5764
2022-01-10 12:33:58 -08:00
Nikolaj Bjorner
199daead50
remove Z3_bool_opt #5757
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-07 11:52:10 -08:00
Nikolaj Bjorner
7a6070506d
#5727
...
Expose diff function,
expose allchar in Java API
expose op codes for replace/re/all
2021-12-20 10:17:06 -08:00
Nikolaj Bjorner
f0740bdf60
move user propagte declare to context level
...
declaration of user propagate functions are declared at context level instead of at solver scope.
2021-12-18 10:56:42 -08:00
Nikolaj Bjorner
8ca023d541
expose propagate created
2021-12-17 16:12:47 -08:00
Nikolaj Bjorner
1e95fb44d1
add ability to register expressions during callback
2021-12-07 09:47:05 -08:00
Nikolaj Bjorner
0d055b83eb
update input for doxygen #5400
2021-12-05 09:04:18 -08:00
Nikolaj Bjorner
c6a5aa0cc4
try th_lemma, update documentation of api functions for creating strings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-01 09:21:02 -08:00
Nikolaj Bjorner
518ef9f916
fix #5674
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-18 21:14:50 -08:00
Alexander Traud
f5f35f87d0
fix grouping for latest doxygen ( #5626 )
...
Since doxygen 1.8.16, opening and closing a group must not be done as
C comment but as doxygen command. In other words, not one but two
asterisk characters are required so that doxygen finds a group.
2021-10-27 23:46:31 +02:00
Nikolaj Bjorner
075769c4c0
try get_string contents again
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-25 16:03:40 +02:00
Nikolaj Bjorner
45681b4c6e
update API type annotation to make it OCaml friendly
2021-10-25 13:43:15 +02:00
Nikolaj Bjorner
3a3cef8fce
#5615 - update documentation and use non-encoded versions for ASCII characters in get_lstring
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-23 18:21:51 +02:00
Nikolaj Bjorner
7f41d6140f
use some suggestions from #5615
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-22 12:39:55 -04:00
Nikolaj Bjorner
05e7ed9637
add API to access unescaped strings, update documentation of Z3_get_lstring, #5615
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-21 11:30:03 -04:00
CEisenhofer
c58b2f4a9c
Added character functions to API ( #5549 )
...
* Added character functions to API
* Changed names of c++ functions
2021-09-15 13:34:58 +01:00
Nikolaj Bjorner
170ef1dcca
add character sort to Python API and allchar function to API for ease. #5500
2021-08-23 20:02:50 -07:00
CEisenhofer
0fa4b63d26
Added sbv2s ( #5413 )
...
* Added sbv2s
* Fixed indention
Co-authored-by: Clemens Eisenhofer <Clemens.Eisenhofer@tuwien.ac.at>
2021-07-16 17:58:28 +02:00
Nikolaj Bjorner
7ae78da850
adding access to characters over API
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-13 15:56:08 +02:00
Nikolaj Bjorner
7255a2afd1
fix #5379
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-05 18:43:11 +02:00
Nikolaj Bjorner
16448104eb
add new model event handler for incremental optimization
2021-02-05 17:11:04 -08:00
Nikolaj Bjorner
2ead209d40
indentation and updated links to default landing pages
2021-01-11 13:21:52 -08:00
Nikolaj Bjorner
bcbda45298
updates to doc
2021-01-11 13:03:55 -08:00