Nikolaj Bjorner
cd7ef11593
add decide callbacks to propagator API
...
this is an intermediary state. The decide_eh is only partially implemented.
2022-07-27 04:28:41 +02:00
JohnLyu2
3e8daa5965
fix re.range symbolic argument bug in z3str3 ( #6189 )
2022-07-27 04:24:20 +02:00
Bruce Mitchener
70895b2375
Improve intra-doc linking. ( #6191 )
2022-07-25 23:14:10 +02:00
Nikolaj Bjorner
43f2b848d4
fix typo
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-25 03:44:12 +02:00
Nikolaj Bjorner
5c2c0ae900
force-push on new_eq, new_diseq in user propagator, other fixes to Python bindings for user propagator
...
This update allows the python bindings for user-propagator to handle functions that are declared to be registered with the user propagator plugin. It fixes a bug in UserPropagateBase.add to allow registering terms dynamically during search.
It also fixes a bug in theory_user_propagate as scopes were not fully pushed when the solver gets the callbacks for new equalities and new disequalities.
It also adds equality and disequality interfaces to the sat/smt solver version (which isn't being exercised in earnest yet)
2022-07-25 03:42:29 +02:00
Bruce Mitchener
3e38bbb009
Make sure all headers do #pragma once
. ( #6188 )
2022-07-23 10:41:14 -07:00
Nikolaj Bjorner
1155ea69a1
add await
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 12:42:19 -07:00
Nikolaj Bjorner
212a0657a2
try .ast
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 12:34:07 -07:00
Nikolaj Bjorner
7c0ec21af8
try to add basic expression simplification
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 12:21:25 -07:00
Nikolaj Bjorner
4368ec9953
startswith
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 11:53:07 -07:00
Nikolaj Bjorner
1e0f71c971
add way to access range bounds directly #6186
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 09:35:37 -07:00
Nikolaj Bjorner
87dd837b55
Merge branch 'master' of https://github.com/Z3Prover/z3
2022-07-21 23:22:37 -07:00
Nikolaj Bjorner
89af9df02d
add IEnumerable for distinct
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-21 23:22:24 -07:00
Nikolaj Bjorner
0f9684e1f8
make fresh_eh() work for Python bindings of user-propagator
2022-07-21 21:44:02 -07:00
Nikolaj Bjorner
907dc2c2d2
adding toString() to model object
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-21 20:45:45 -07:00
Nikolaj Bjorner
efa74fe6c6
fix #6180
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-21 12:20:36 -07:00
Nikolaj Bjorner
cf5a8fd248
fix validation code for pb
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-21 08:58:32 -07:00
Nikolaj Bjorner
a66095bb08
fix the path to ../build/z3-built
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 22:36:34 -07:00
Nikolaj Bjorner
dc9565990c
did I mess up wasm paths in jest - or not?
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 22:15:22 -07:00
Nikolaj Bjorner
37008226c3
did I mess up wasm paths in jest?
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 22:14:21 -07:00
Nikolaj Bjorner
32c0d1f636
fix #6168
2022-07-20 21:48:47 -07:00
Nikolaj Bjorner
7f983e7d9e
fix #6174
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 21:22:41 -07:00
Nikolaj Bjorner
32614722ef
fix #6176
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 21:19:20 -07:00
Nikolaj Bjorner
1b83a4556b
fix #6178
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 20:48:23 -07:00
Nikolaj Bjorner
5b219aab76
add mutual recursive datatypes to c++ API #6179
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 20:32:00 -07:00
Nikolaj Bjorner
2e13c0bf41
add API and example for one dimensional algebraic datatype #6179
2022-07-20 19:43:18 -07:00
Nikolaj Bjorner
81cb575c22
simplify
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-19 22:58:12 -07:00
Nikolaj Bjorner
2e52029114
add command-line overwrite capability to setup.py
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-19 22:53:25 -07:00
Nikolaj Bjorner
2c8df54b70
enable fresh for python wrapper for user-propagator
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-19 13:48:44 -07:00
Nikolaj Bjorner
111d27cbee
remove dependency on pragma
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-19 09:36:22 -07:00
Nikolaj Bjorner
dead0c9de2
reverting relative path
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-18 11:47:57 -07:00
Nikolaj Bjorner
afcfc80c42
the relative path seems out of sync with how it is set up in node.ts
2022-07-18 11:21:16 -07:00
Nikolaj Bjorner
7f1893d781
add missing MkSub to NativeContext
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-18 10:21:27 -07:00
Nikolaj Bjorner
393c63fe0c
fix #6114
2022-07-18 09:33:39 -07:00
Nikolaj Bjorner
527914db05
update documentation to use latest conventions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-17 11:49:28 -07:00
Nikolaj Bjorner
b5a89eb4ab
add missing generation of z3.z3 for pydoc and add some explanations to logging function declaration
2022-07-17 11:03:55 -07:00
Clemens Eisenhofer
95c3dd9224
Added missing decide-callback for tactics ( #6166 )
...
* Added function to select the next variable to split on
* Fixed typo
* Small fixes
* uint -> int
* Fixed missing assignment for binary clauses
* Added missing decide-callback for tactics
2022-07-17 10:07:52 -07:00
Nuno Lopes
6e5ced0080
optimizations to api ctx ref counting
2022-07-17 11:44:35 +01:00
Nikolaj Bjorner
eb2ee34dfe
fix typo
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-16 16:58:57 -07: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
6c5747a80e
guard against lemmas that are already true
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-15 10:03:31 -07:00
Nikolaj Bjorner
4ecb61aeaa
neatify
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-15 09:53:56 -07:00
Nikolaj Bjorner
2696775088
remove stale assertion
...
with support for substitutions we allow the simplifier to change the state of equations.
2022-07-15 04:03:25 -07:00
Nikolaj Bjorner
6688c1d62a
prepare for #6160
...
The idea is to set _concurrent_dec_ref from the API
(function not yet provided externally, but you can experiment with it by setting the default of m_concurrent_dec_ref to true).
It then provides concurrency support for dec_ref operations.
2022-07-15 03:53:15 -07:00
Nikolaj Bjorner
b29cdca936
integrate factorization to Grobner
2022-07-14 21:24:27 -07:00
Nikolaj Bjorner
7c177584f3
add propagators to grobner
2022-07-14 15:45:07 -07:00
Andrea Lattuada
af80bd18ce
Flush the trace stream before displaying sat results ( #6162 )
2022-07-14 13:43:57 -07:00
Stefan Muenzel
2f5fef92b7
Cache param descrs when modifying solver params ( #6156 )
2022-07-14 11:11:56 -07:00
Nikolaj Bjorner
4a192850f2
add var_factors
...
Add routine to partially factor polynomials. It factors out variables.
2022-07-14 11:06:53 -07:00
Nikolaj Bjorner
981c82c814
fix initialization order
2022-07-13 18:11:18 -07:00
Nikolaj Bjorner
894fb836e2
fix build break (debug assertion) and isolate gomory functionality
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-13 17:26:56 -07:00
Nikolaj Bjorner
b253db2c0a
redundant parenthesis
2022-07-13 16:20:03 -07:00
Nikolaj Bjorner
dec87fe4d9
fix issue with set-logic for eval_smtlib2_string
2022-07-13 16:19:12 -07:00
Nikolaj Bjorner
1378e713ba
fix #6157
2022-07-13 14:37:04 -07:00
Nikolaj Bjorner
a3eb9da191
fix #6158
2022-07-13 14:33:42 -07:00
Nikolaj Bjorner
8e23af33d7
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-13 14:20:21 -07:00
Nikolaj Bjorner
b81f70f6fc
split nla_grobner to separate file
2022-07-13 13:05:57 -07:00
Nikolaj Bjorner
7d0c789af0
propagate has-length over map/mapi
2022-07-12 20:50:28 -07:00
Nikolaj Bjorner
8900db527f
add diagnostics for grobner
2022-07-12 20:49:54 -07:00
Nikolaj Bjorner
ca80d99617
fix #6153
2022-07-12 15:49:57 -07:00
Nikolaj Bjorner
43cf053066
fix #6128
2022-07-12 15:43:12 -07:00
Nikolaj Bjorner
d5779bf99c
handle trivial equalities in simplify_leaf
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-11 21:05:26 -07:00
Nikolaj Bjorner
316ed778e0
Tune Grobner equations
...
\brief convert p == 0 into a solved form v == r, such that
v has bounds [lo, oo) iff r has bounds [lo', oo)
v has bounds (oo,hi] iff r has bounds (oo,hi']
The solved form allows the Grobner solver identify more bounds conflicts.
A bad leading term can miss bounds conflicts.
For example for x + y + z == 0 where x, y : [0, oo) and z : (oo,0]
we prefer to solve z == -x - y instead of x == -z - y
because the solution -z - y has neither an upper, nor a lower bound.
The Grobner solver is augmented with a notion of a substitution that is applied before the solver is run.
2022-07-11 16:14:26 -07:00
Nikolaj Bjorner
f33c933241
Add substitution routine to pdd
...
For Grobner we want to preserve directions of intervals for finding sign conflicts. This means that it makes sense to have external control over linear solutions.
2022-07-11 12:10:28 -07:00
Nikolaj Bjorner
5c54d6564b
fix #6143
2022-07-11 12:09:15 -07:00
Victor Paléologue
8b29f40152
Fix build on Mac ( #6146 )
...
* Fix finding Python on Mac
On Mac you have to specify the version.
It also works well on other platforms this way.
* Ignore CMake build directories from index
* Fix warning about unused variable in release
The variable is used in debug only,
but it's legit that the compiler does not warn us for that in release.
2022-07-11 09:46:23 -07:00
Nikolaj Bjorner
49b7e9084f
Merge branch 'master' of https://github.com/z3prover/z3
2022-07-11 09:26:34 -07:00
Anthony Romano
7ae1a338a7
parallel-tactic: fix deadlocking race between shutdown and get_task ( #6152 )
...
Deadlock/Race is as follows:
1. get_task() reads m_shutdown == false and enters loop body
2. shutdown() is called; sets m_shutdown = true
3. shutdown() calls m_cond.notify_all()
4. get_task() finds no task in try_get_task()
5. get_task() calls m_cond.wait(), missing the notification
6. solve() waits forever on join()
Provided patch wraps (2) and (3) with the condition variable lock so that
step (5) cannot miss the notification.
Co-authored-by: Anthony Romano <anthony@forallsecure.com>
2022-07-11 09:26:11 -07:00
Stefan Muenzel
99212a2726
Use int64 for ocaml api functions that require it ( #6150 )
...
* Use int64 for ocaml api functions that require it
Signed-off-by: Stefan Muenzel <source@s.muenzel.net>
* Use elif
Signed-off-by: Stefan Muenzel <source@s.muenzel.net>
2022-07-11 09:25:05 -07:00
Clemens Eisenhofer
1f2346073a
Fixed missing assignment for binary clauses ( #6148 )
...
* Added function to select the next variable to split on
* Fixed typo
* Small fixes
* uint -> int
* Fixed missing assignment for binary clauses
2022-07-11 09:24:03 -07:00
Nikolaj Bjorner
9dd529bb12
missing initialization of List for cmd interpreter
2022-07-11 08:17:38 -07:00
Nikolaj Bjorner
b68af0c1e5
working on reconciling perf for arithmetic solvers
...
this update integrates inferences to smt.arith.solver=6 related to grobner basis computation and handling of div/mod axioms to reconcile performance with smt.arith.solver=2.
The default of smt.arth.nl.grobner_subs_fixed is changed to 1 to make comparison with solver=2 more direct.
The selection of cluster equalities for solver=6 was reconciled with how it is done for solver=2.
2022-07-11 07:38:51 -07:00
Nikolaj Bjorner
0c42d3b079
small format update
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-06 11:41:48 -07:00
Kevin Gibbons
0d4169533a
fix js distributable ( #6139 )
2022-07-06 10:59:01 -07:00
Nikolaj Bjorner
580ed31afd
fix types and incompleteness for feature #6104
2022-07-06 01:08:54 -07:00
Nikolaj Bjorner
85c3d874dc
neatify
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-05 16:57:41 -07:00
Nikolaj Bjorner
f23dc894b4
add disabled pass to detect upper bound range constraints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-05 16:51:05 -07:00
Nikolaj Bjorner
a374e2c575
ignore qid if they are both numerical - come from the parser
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-05 15:47:48 -07:00
Nikolaj Bjorner
6e53621146
#6112
...
add q->get_qid() to comparison of quantifiers
2022-07-05 13:17:04 -07:00
Nikolaj Bjorner
d7472f0726
fix #6124
...
expression pointers were changed within a function, but not pinned. So the pointers got stale. To enforce their life-time within the function body (for use in logging) pin the expressions.
2022-07-05 12:48:21 -07:00
Nikolaj Bjorner
f82ca197d2
#6104 also in the new core
2022-07-05 12:38:07 -07:00
Nikolaj Bjorner
de41cfd277
fix #6104
...
add equality reasoning to bit-vector solver to instantiate int2bv(bv2int(x)) = x identity on demand.
2022-07-05 12:23:24 -07:00
Nikolaj Bjorner
ac822acb0f
add parameter incremental to ensure preprocessing does not interefere with adding constraints during search
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-05 08:10:20 -07:00
Nikolaj Bjorner
71fc83c051
Move out equality use out of the loop
2022-07-04 12:42:39 -07:00
Nikolaj Bjorner
0353fc38ff
fix #6127 again
...
this time adding inheritance to the recfun plugin so it properly contains the recursive definitions from the source.
2022-07-04 12:42:11 -07:00
Nikolaj Bjorner
6ed2b444b5
probably won't fix #6127
...
recfun decl plugin does not get copied so recursive functions are lost when cloning.
Fix is risky and use case is limited to threads + recursive definitions
2022-07-03 18:10:52 -07:00
Nikolaj Bjorner
ac8aaed1d4
fix #6126
2022-07-03 17:47:05 -07:00
Nikolaj Bjorner
02a92fb9e9
revert to use GCHandle for UserPropagator
...
avoids using a global static array
2022-07-03 17:00:40 -07:00
Nikolaj Bjorner
1e8f9078e3
fix unsoundness in explanation handling for nested datatypes and sequences
2022-07-03 17:00:39 -07:00
Nikolaj Bjorner
bb966776b8
Update UserPropagator.cs
2022-07-02 13:15:05 -07:00
Nikolaj Bjorner
d37ed4171d
Update Expr.cs
...
Add a Dup functionality that allows extending the life-time of expressions that are passed by the UserPropagator callbacks (or other code).
2022-07-02 13:12:54 -07:00
Nikolaj Bjorner
54b16f0496
Update NativeStatic.txt
...
not so automatically generated
2022-07-02 13:04:09 -07:00
Nikolaj Bjorner
004139b320
rewrites for characters
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-02 11:37:21 -07:00
Nikolaj Bjorner
f20db3e644
allow for toggling proof and core mode until the first assertion.
2022-07-02 09:31:36 -07:00
Nikolaj Bjorner
4d23f2801c
ml pre
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 20:35:47 -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
8c2ba3d47e
missing virtual functions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 19:18:09 -07:00
Nikolaj Bjorner
06771d1ac5
missing virtual functions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 18:31:08 -07:00
Nikolaj Bjorner
4f9ef12f34
create dummy tactics for single threaded mode
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 18:13:36 -07:00
Nikolaj Bjorner
3c94083a23
fix doc errors
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-01 15:29:44 -07:00
Nikolaj Bjorner
ea2a843325
flat only
...
remove option for uzers (users who are in reality fuzzers) to toggle flat option. The legacy arithmetic solver bakes in assumptions about flat format so it isn't helpful to expose this to fuzzers, I mean uzers.
2022-06-30 19:59:46 -07:00
Nikolaj Bjorner
b618537322
Merge branch 'master' of https://github.com/z3prover/z3
2022-06-30 19:49:28 -07:00
Nikolaj Bjorner
94a2477fa0
totalizer
2022-06-30 19:49:19 -07:00
Nikolaj Bjorner
959a0ba370
fix #6121
2022-06-30 19:47:26 -07:00
Mark Marron
e054f1683c
fixing compiler warn (missing override) ( #6125 )
2022-06-30 15:39:28 -07:00
Nikolaj Bjorner
c3d2120bdd
add totalizer version of rc2
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-29 23:10:42 -07:00
Nikolaj Bjorner
8ab8b63a4c
fix incorrect mod axiomatization #6116
2022-06-29 12:32:04 -07:00
Nikolaj Bjorner
f6932f9a75
Merge branch 'master' of https://github.com/z3prover/z3
2022-06-29 11:16:34 -07:00
Nikolaj Bjorner
1a9122663c
remove unsound axioms, fix #6115
2022-06-29 11:16:10 -07:00
Joe Hauns
03287d65a4
fixes issue #6119 ( #6120 )
...
Co-authored-by: Johannes Schoisswohl <johannes.schoisswohl@myotis.at>
2022-06-29 11:10:33 -07:00
Nikolaj Bjorner
ff265235c1
adjust trace output
2022-06-29 08:20:01 -07:00
Nikolaj Bjorner
5afcb489e0
adding totalizer
2022-06-29 08:20:01 -07:00
Nikolaj Bjorner
fd8ee34564
add logging
2022-06-29 08:20:01 -07:00
Max Levatich
12e7b4c3d6
fix gc'ed callbacks in .NET propagator api ( #6118 )
...
Co-authored-by: Maxwell Levatich <t-mlevatich@microsoft.com>
2022-06-28 19:22:41 -07:00
Nikolaj Bjorner
79778767b0
add doc string
2022-06-28 14:25:43 -07:00
Nikolaj Bjorner
798a4ee86e
use IEnumerator and format
2022-06-28 14:24:05 -07:00
Nikolaj Bjorner
556f0d7b5f
use static list to connect managed and unmanaged objects
2022-06-28 14:09:22 -07:00
Nikolaj Bjorner
820c782b5e
pinned semantics
2022-06-28 13:03:52 -07:00
Nikolaj Bjorner
9836d5e6fc
missing public
2022-06-28 12:46:29 -07:00
Nikolaj Bjorner
b43965bf05
make user propagator work with combined solver
...
Then users don't have to specify SImpleSolver, but can use "Solver"
2022-06-28 09:42:28 -07:00
Nikolaj Bjorner
4c8f6b60ce
fix #6107
2022-06-27 20:51:30 -07:00
Nikolaj Bjorner
61f5489223
fix #6107
2022-06-27 16:53:18 -07:00
Nikolaj Bjorner
1fcf7cf0b7
add nl div mod axioms
2022-06-27 09:02:53 -07:00
Nikolaj Bjorner
30165ed40a
fix #6105
...
non-linear division axioms appear incomplete.
Fixed for legacy arithmetic. Fix pending for new arithmetic solver.
2022-06-26 20:37:18 -07:00
Nikolaj Bjorner
56aa4261b6
fix #6082
2022-06-23 07:43:06 -07:00
Kevin Gibbons
352666b19f
JS api: fix type for from ( #6103 )
...
* JS api: fix type for from
* whitespace
2022-06-22 14:51:40 -07:00
Kevin Gibbons
c15a000d9b
Make high-level JS API more idiomatic/type-safe ( #6101 )
...
* make JS api more idiomatic
* make JS api type-safe by default
* use strings, not symbols, for results
* add toString
* add miracle sudoku example
* ints should be ints
* add error handling
* add missing Cond to Context
* fewer side-effecting getters
2022-06-22 09:26:44 -07:00
Nikolaj Bjorner
8234eeae40
unbreak
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-22 09:03:32 -07:00
Nikolaj Bjorner
3189544050
next split
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-22 09:03:32 -07:00
Felix Kohlgrüber
a7b41c49fe
fix for spurious wakeups in scoped_timer ( #6102 )
2022-06-22 10:50:19 +01:00
Nuno Lopes
41deed59a3
fix bug in array rewriter introduced in 202ce1e
2022-06-21 22:40:40 +01:00
Nikolaj Bjorner
36a1f758bc
mask regression
2022-06-21 14:34:47 -07:00
Nikolaj Bjorner
ab9aee189b
perf #6100
2022-06-21 13:49:52 -07:00
Nikolaj Bjorner
202ce1edf0
#6100 - two perf fixes
...
remaining perf bug is dealing with very large bit-widths. mod 2^n should be computed natively based on n instead of 2^n because we pre-populate an array with all values up to n. Suppose n is 10000, the array has size 10000.
2022-06-21 12:45:29 -07:00
Nikolaj Bjorner
f24c5ca99a
#6095
...
arrays that are interpreted using as-array should be reflected back to store expressions
2022-06-21 12:42:44 -07:00
Nikolaj Bjorner
d792d30e88
Update NativeContext.cs
...
TraceToFile does not correspond to the functionality of enable_trace. Z3_enable_trace tags a trace tag as input. It can be invoked multiple times with different tags. The debug tracing then shows logs with the corresponding tags.
2022-06-21 09:09:42 -07:00
Nikolaj Bjorner
b254f4086b
Separate out native static content for Java
...
Make it easier to add native methods for callbacks (for user propagator) #6097
The Java User propagator wrapper should define a base class with virtual methods that can be invoked from functions defined in NativeStatic.txt
2022-06-21 09:09:42 -07:00
Nuno Lopes
25e915fe95
fix #5990 : deadlock in the scoped_timer
...
Thanks to Felix Kohlgrueber for reporting the bug and for the analysis
2022-06-21 16:29:09 +01:00
Nikolaj Bjorner
911134b3c7
add new heuristic rc2bin (to be tested) to maxsat
...
The rc2bin heuristic is a hybrid of rc2 and binary maxres.
It follows the suggestion by Nina to use rc2 on large cores after a single maxres relaxation step; otherwise maxres (binary) on smaller cores. In the design space of possible hybrids, this variant chooses to always apply a single layer of maxres and then rc2 for large cores.
2022-06-20 11:50:25 -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
Nuno Lopes
f08e3d70a9
attempt to fix windows build bot
2022-06-17 21:15:54 +01:00
Nuno Lopes
f3c00a0a03
attempt to fix windows build bot
2022-06-17 18:05:19 +01:00
Nuno Lopes
c3407fc304
fix build of tests
2022-06-17 17:11:18 +01:00
Nuno Lopes
d9fcfdab34
fix debug build
2022-06-17 14:35:33 +01:00
Nuno Lopes
73a24ca0a9
remove '#include <iostream>' from headers and from unneeded places
...
It's harmful to have iostream everywhere as it injects functions in the compiled files
2022-06-17 14:10:19 +01:00
Nuno Lopes
70bcf0b51d
reduce sizeof(enode) from 120 to 112 bytes by swapping the order of fields
...
Yes, those 8 bytes are yours now, use responsibly.
2022-06-17 12:07:15 +01:00
Nikolaj Bjorner
08c44bc6f6
remove unused static features
...
remove static features that tax solving time on large instances.
2022-06-16 15:40:01 -07:00
Nikolaj Bjorner
477e9625ef
Don't reset the cache between applications of replace
...
tactic/lia2card shows a huge slowdown because the same replace function is called on thousands of assertions. Each time the cache gets reset with thousands of entries - they are all the same.
So don't reset the cache just because... Instead reset the cache if m_refs grows large.
2022-06-16 15:40:01 -07:00
Nikolaj Bjorner
99b606b861
add logging
2022-06-16 15:40:00 -07:00
Olaf Tomalka
7fdcbbaee9
Add high level bindings for js ( #6048 )
...
* [Draft] Added unfinished code for high level bindings for js
* * Rewrote structure of js api files
* Added more high level apis
* Minor fixes
* Fixed wasm github action
* Fix JS test
* Removed ContextOptions type
* * Added Ints to JS Api
* Added tests to JS Api
* Added run-time checks for contexts
* Removed default contexts
* Merged Context and createContext so that the api behaves the sames as in other constructors
* Added a test for Solver
* Added Reals
* Added classes for IntVals and RealVals
* Added abillity to specify logic for solver
* Try to make CI tests not fail
* Changed APIs after a round of review
* Fix test
* Added BitVectors
* Made sort into getter
* Added initial JS docs
* Added more coercible types
* Removed done TODOs
2022-06-14 09:55:58 -07:00
Nikolaj Bjorner
3d00d1d56b
prepare for equality propagation from Grobner basis
...
Attempt to remedy performance regressions from the new solver core for NLA. It misses easy lemmas, presumably due to weaker bounds information.
2022-06-14 09:51:07 -07:00
Nikolaj Bjorner
8e2027107d
fix spacing
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
55421afd61
fix regression in top-sort fix #6060
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
637120ced5
Treat arguments to recursive functions as beta redexes
...
An argument to a recursive function would escape the scope of the function application when the recursive function definitions are unfolded. Therefore, such argument occurrences need not be considered for extensional equality / equality sharing.
This filter is mostly relevant for recursive functions that take a lambda expression as argument. Lambda expressions / arrays that occur in shared occurrences are checked for extensionality.
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
25ad5cb073
prepare ground for drup trim
...
By not deleting justifications in base level unit literals it is possible for drup-trim to inspect the trail for dependencies - which clauses were used to derive a literal.
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
35d4605425
remove spurious output to stdout
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
04f94d818f
fix #6091
2022-06-14 09:51:06 -07:00
Dominic Steinhöfel
46bc726391
Better error message for mismatching sorts in substitutions in z3.substitute ( #6093 )
2022-06-13 13:46:30 -07:00
Nikolaj Bjorner
470bf27d1d
drat
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-11 09:15:32 -07:00
Nikolaj Bjorner
9cd339841a
for Arie
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 18:07:54 -07:00
Nikolaj Bjorner
994dab8eb6
add pre-filter for F* use case
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 17:56:48 -07:00
Nikolaj Bjorner
8efa3c8ade
introduce notion of beta redex to deal with lambdas in non-extensional positions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 17:35:01 -07:00
Nikolaj Bjorner
b9b5377c69
add a way to supress lambdas
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 14:37:25 -07:00
Nikolaj Bjorner
5db133f875
add a way to supress lambdas
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 14:35:20 -07:00
Nikolaj Bjorner
97437bce4c
Update sat_params.pyg
2022-06-09 10:09:30 -07:00
Nikolaj Bjorner
828850f298
prepare for trim
2022-06-09 10:08:57 -07:00
Nikolaj Bjorner
c5847504ff
contains-partition
2022-06-08 12:20:45 -07:00
Nikolaj Bjorner
6a1193eebd
reorg if-then-else structure
2022-06-08 10:00:45 -07:00
Nikolaj Bjorner
72a6384353
time overflow before stack overflow
2022-06-08 10:00:16 -07:00
Nikolaj Bjorner
e468386359
#5656
...
guard __del__ operator by checking if library was unloaded.
2022-06-08 09:59:29 -07:00
Nikolaj Bjorner
dee6c30f1b
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 08:05:19 -07:00
Nikolaj Bjorner
80604c7bc5
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 07:00:59 -07:00
Nikolaj Bjorner
51ed13f96a
update topological sort to use arrays instead of hash tables, expose Context over Z3Object for programmability
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 06:28:24 -07:00
Nikolaj Bjorner
0e6c64510a
display model in add/del format
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-07 13:14:36 -07:00
Nikolaj Bjorner
35986f3979
fix #6084
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-07 11:29:57 -07:00
Nikolaj Bjorner
fe08c9976e
fix #6081
2022-06-06 11:29:11 -07:00
Nikolaj Bjorner
cc045debac
again
2022-06-06 11:23:18 -07:00
Nikolaj Bjorner
bb6c274ad3
fix #6085
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-06 10:00:08 -07:00
Nikolaj Bjorner
dca1dcca6d
ea
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-06 08:42:47 -07:00
Nikolaj Bjorner
b629960afb
proof format
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-06 07:18:33 -07:00
Nikolaj Bjorner
ea365de820
add cut
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-04 11:59:00 -07:00
Nikolaj Bjorner
da9382956c
use common functionality
2022-06-04 11:36:05 -07:00
Christoph M. Wintersteiger
f77608ed88
Add interpreted versions of unspecified cases of fp.to_ieee_bv and fp.to_real ( #6077 )
2022-06-04 17:53:23 +01:00
Christoph M. Wintersteiger
d722c73d4c
Fix corner case in MPF FMA ( #6075 )
2022-06-04 15:55:26 +01:00
Christoph M. Wintersteiger
6422a6b5a7
Fix rounding bug in to_fp ( #6074 )
2022-06-04 14:32:08 +01:00
Christoph M. Wintersteiger
cb67f90f1a
Merge pull request #6072 from wintersteiger/cwinter_warnings
...
Fix a couple compiler warnings
2022-06-04 11:40:14 +01:00
Christoph M. Wintersteiger
33454193d4
Change FP default rounding mode in the Python API
2022-06-04 08:45:52 +01:00
Christoph M. Wintersteiger
ed7db892f9
Fix a couple compiler warnings
2022-06-04 08:00:56 +01:00
Nikolaj Bjorner
f652c57bfe
fix proof checker
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-03 20:17:59 -07:00
Nikolaj Bjorner
3d1e03e00a
add start of self-contained proof checker for arithmetic
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-03 09:11:02 -07:00
Nikolaj Bjorner
a9d70fca1a
fix #6061
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-31 19:09:10 -07:00
Nikolaj Bjorner
e9cff33feb
fix #5068
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-30 11:24:58 -07:00
Nikolaj Bjorner
15c47808d6
#6059
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-30 11:03:50 -07:00
Nikolaj Bjorner
da3f31697b
fix proof checking for bounds propagation
2022-05-30 10:18:16 -07:00
Nikolaj Bjorner
cb279fba2b
fix sign for binary propagation hints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-29 10:32:05 -07:00
Nikolaj Bjorner
bffa7ff2f6
add hint verification, combine bounds/farkas into one rule
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-29 10:12:05 -07:00
Nikolaj Bjorner
63b9c4bdf0
for AG
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 18:49:27 -07:00
Nikolaj Bjorner
6abea2de2c
fix nightly, fix regression identified by Nuno
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 18:03:15 -07:00
Nikolaj Bjorner
b8532bec7e
remove pragma from cpp file
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 14:48:38 -07:00
Nikolaj Bjorner
35db0ae58b
workaround manylinux build failure (it is advertized as a compiler bug)
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 14:34:58 -07:00
Nikolaj Bjorner
48701826f1
indent
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 13:57:03 -07:00
Nikolaj Bjorner
8d980ea704
remove internal configuration
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 12:13:18 -07:00
Nikolaj Bjorner
dd46224a1d
use structured proof hints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 09:37:41 -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
de892ed9f2
fix #6054
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-26 15:51:57 -04:00
Nikolaj Bjorner
f77037e9a5
expand select/store when I/J are values #6053
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-25 20:23:43 -04:00
Nikolaj Bjorner
4d8e4b5bd3
fix #6052
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-25 17:21:01 -04:00
Nikolaj Bjorner
8c95dff33b
cnf
2022-05-22 09:10:26 -04:00
Nikolaj Bjorner
c850259f89
rw
2022-05-22 07:54:27 -04:00
Nikolaj Bjorner
386c511f54
core opt
2022-05-21 10:27:37 -04:00
Nikolaj Bjorner
127af83c53
remove ad-hoc diagnostics
2022-05-21 10:27:37 -04:00
Nikolaj Bjorner
40fe472e95
nit
2022-05-18 13:23:33 -07:00
Nikolaj Bjorner
363b69f588
fix #6034
2022-05-16 16:44:13 -07:00
Nikolaj Bjorner
f6b2874d7c
update to take effect of def_API for callback functions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-16 10:30:54 -07:00
Nikolaj Bjorner
ca2497eecb
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-15 12:00:41 -07:00
Nikolaj Bjorner
186a3c58e5
merge
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-15 12:00:25 -07:00
Nikolaj Bjorner
1028c80851
update pretty printer for recursive function filtering
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-15 11:59:41 -07:00
Arie Gurfinkel
7f62fa2b66
Sparse matrix kernel ( #6035 )
...
* Subtle bug in kernel computation
Coefficient was being passed by reference and, therefore, was
being changed indirectly.
In the process, updated the code to be more generic to avoid rational
computation in the middle of matrix manipulation.
* sparse_matrix: fixed handling of 0 in add_var() and add()
particularly in add_var(), without the fix the user is responsible for checking
coefficients for 0.
2022-05-13 17:30:35 -07:00
Nikolaj Bjorner
7497856ded
add ignore int to new arithmetic solvers
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 15:14:22 -07:00
Nikolaj Bjorner
b1aa6b260b
disable normalize
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 13:31:35 -07:00
Nikolaj Bjorner
6deb4dee37
disable normalize
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 13:30:50 -07:00
Nikolaj Bjorner
5aec9b32bd
check zero
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 10:13:07 -07:00
Nikolaj Bjorner
860d904699
check zero
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 10:11:17 -07:00
Nikolaj Bjorner
361155685c
ensure abs
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 09:09:00 -07:00
Nikolaj Bjorner
cbaa16df57
lcm normalization
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 09:03:57 -07:00
Nikolaj Bjorner
5ca3bc3212
kernel
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 15:48:06 -07:00
Nikolaj Bjorner
54648f6b50
add stats for binary clause creation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 14:58:15 -07:00
Nikolaj Bjorner
2928cc261c
fix
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 13:17:25 -07:00
Nikolaj Bjorner
805443c8ab
wip
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 11:17:34 -07:00
Nikolaj Bjorner
0557d72d1c
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 07:42:32 -07:00
Nikolaj Bjorner
6a8ac5f9b1
adding K
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 16:47:26 -07:00
Nikolaj Bjorner
ad2445e423
gauss jordan
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 16:33:15 -07:00
John Jones
361888f299
Generate bdist wheels for musllinux_1_1 ( #6025 )
2022-05-09 14:13:08 -07:00
Nikolaj Bjorner
dcc01b874a
prep for pragmas
2022-05-09 11:18:15 -07:00
Nikolaj Bjorner
6670cf0b65
na
2022-05-09 09:16:05 -07:00
Nikolaj Bjorner
fbf5e322dc
js
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 08:49:02 -07:00
Nikolaj Bjorner
4549ec7331
misc
2022-05-09 08:38:35 -07:00
Nikolaj Bjorner
da9ed82889
add decide callback
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 15:31:05 -07: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
c8d12975c9
fixes for fresh
2022-05-08 12:49:04 -07:00
Nikolaj Bjorner
506f8f88aa
add user propagator functionality
2022-05-08 12:43:46 -07:00
Nikolaj Bjorner
1e7a9e3e61
fix #6023
2022-05-08 12:03:13 -07:00
Nikolaj Bjorner
97af3a6120
fix #6021
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 11:25:24 -07:00
Nikolaj Bjorner
cca49154ff
fix #6021
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 11:24:56 -07:00
Nikolaj Bjorner
7def610a69
build warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 10:31:11 -07:00
Nikolaj Bjorner
d58de2f8e4
java build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 10:20:32 -07:00
Nikolaj Bjorner
e2625cb760
safe
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 13:53:37 -07:00
Nikolaj Bjorner
3bf09b114a
safe
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 13:53:07 -07:00
Nikolaj Bjorner
04b0b3690d
js
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 12:46:52 -07:00
Nikolaj Bjorner
1e586888c9
patch js for fnptr
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 11:18:19 -07:00