3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 22:05:36 +00:00
Commit graph

14646 commits

Author SHA1 Message Date
Nikolaj Bjorner 1a79d92f3a revert last ditch array
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-30 12:56:21 -07:00
Nikolaj Bjorner 36d76a5bb2 fix #6304
Conditionals are used to guard unfolding of recursive functions.
This is, as shown in #6304, incompatible with the case where recursive functions are used inside if-then-else guards.
We address this by disabling if-conditions as guards if they contain a recursive definition.
The approach is simplistic: if a recursive function, defined prior (not mutually recursive) is used in a guard it should be fine and the condition can guard the current recursive unfolding.
2022-08-30 09:50:58 -07:00
Nikolaj Bjorner 45d8d73fce #6303
handle more array instantiation cases for quantifier instantiation
2022-08-30 09:46:19 -07:00
Nikolaj Bjorner 0f475f45b5 Add RUP checking mode to proof checker. 2022-08-30 09:45:19 -07:00
Nikolaj Bjorner 8cb118235a add missing status case for cancelation 2022-08-30 09:43:10 -07:00
Nikolaj Bjorner cd0af999a8 fix #6302
crash due to not checking for dead rows.
non-termination due to solving div and mod separately.
To ensure termination one needs to at least process them simultaneously, otherwise the metric of number-of-terms x under number of mod/div does not decrease. Substituting in K*y + z under either a mod or div increases the number of terms under a mod/div when eliminating only one of the kinds.
Currently handling divides constraints separately because pre-existing solution uses the model to determine z as a constant between 0 and K-1. The treatment of mod/div is supposed to be more general and use a variable while at the same time reducing the mod/div terms where the eliminated variable is used (the variable z is not added under the mod/div terms, but instead the model is used to determine cut-offs to calculate mod/div directly.
2022-08-29 14:32:13 -07:00
Nikolaj Bjorner dd90689339 build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:54:36 -07:00
Nikolaj Bjorner 6f2a6da600 address unused variable warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:50:54 -07:00
Nikolaj Bjorner 4d29925c3f build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:43:50 -07:00
Nikolaj Bjorner 8b8caf9ded re-add smt-solver for proof_cmds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:19:30 -07:00
Nikolaj Bjorner 37fab88de0 respect dependencies, move proof_cmds to extra_cmds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:16:43 -07:00
Nikolaj Bjorner f65a244385 move proof_cmds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:11:26 -07:00
J Sailor f5d2b9b89a
fix typo in comment defining macros (#6306)
The existing comment describes macros as "formulas of the form
`(forall X (= (f X) T[X]))` ... where `T[X]` does not contain `X`". This is
incorrect; of course the macros' definitions are allowed to be in terms of
the macros' arguments. The comment should say "...does not contain `f`" because
macros can't be recursive.
2022-08-28 17:49:52 -07:00
Clemens Eisenhofer a0ca5d745e
Fixed nested user-propagator callbacks in .NET (#6307)
* Fixed nested user-propagator callbacks in .NET

* Typo
2022-08-28 17:49:15 -07:00
Nikolaj Bjorner e2f4fc2307 overhaul of proof format for new solver
This commit overhauls the proof format (in development) for the new core.

NOTE: this functionality is work in progress with a long way to go.
It is shielded by the sat.euf option, which is off by default and in pre-release state.
It is too early to fuzz or use it. It is pushed into master to shed light on road-map for certifying inferences of sat.euf.

It retires the ad-hoc extension of DRUP used by the SAT solver.
Instead it relies on SMT with ad-hoc extensions for proof terms.
It adds the following commands (consumed by proof_cmds.cpp):

- assume  - for input clauses
- learn   - when a clause is learned (or redundant clause is added)
- del     - when a clause is deleted.

The commands take a list of expressions of type Bool and the
last argument can optionally be of type Proof.
When the last argument is of type Proof it is provided as a hint
to justify the learned clause.

Proof hints can be checked using a self-contained proof
checker. The sat/smt/euf_proof_checker.h class provides
a plugin dispatcher for checkers.
It is instantiated with a checker for arithmetic lemmas,
so far for Farkas proofs.

Use example:
```
(set-option :sat.euf true)
(set-option :tactic.default_tactic smt)
(set-option :sat.smt.proof f.proof)
(declare-const x Int)
(declare-const y Int)
(declare-const z Int)
(declare-const u Int)
(assert (< x y))
(assert (< y z))
(assert (< z x))
(check-sat)
```

Run z3 on a file with above content.
Then run z3 on f.proof

```
(verified-smt)
(verified-smt)
(verified-smt)
(verified-farkas)
(verified-smt)
```
2022-08-28 17:44:33 -07:00
Nikolaj Bjorner 9922c766b9 add extra information for type error message
a recent opened and closed bug report was due to an error of taking bit-wise or between two bit-vectors of different size. The error message was not understood by the user. Adding a little extra generic information to see if it helps.
2022-08-28 17:39:14 -07:00
Nikolaj Bjorner dd91fab6f4 Merge branch 'master' of https://github.com/Z3Prover/z3 2022-08-26 10:44:40 -07:00
Nikolaj Bjorner 159026b5e8 regression fix to ackerman gc and memory smash, perf fix for handling bv2int axioms, perf fix for filtering ackerman
this update addresses some perf regressions introduced when handling axioms for bv2int and a memory smash regression when decoupling bv-ackerman from in-processing. It adds a filter based on bv_eq_axioms for disabling ackerman reductions on disequalities.
2022-08-26 10:44:33 -07:00
Nikolaj Bjorner 458f417f44 move drat functionality into euf 2022-08-25 19:19:13 -07:00
Nikolaj Bjorner 1ffbe23ee3 add virtual destructor to fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-25 18:37:24 -07:00
Nikolaj Bjorner 1894c86ee0 virtual
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-25 18:27:30 -07:00
Nikolaj Bjorner ca0a82952f add function pointer to class to see how MacOs build reacts
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-25 16:15:34 -07:00
Nikolaj Bjorner 0d7b7a417a selectively re-add solver_params
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-25 13:29:42 -07:00
Nikolaj Bjorner 5f2387b3be revert some changes that coincide with breaking macos build 2022-08-25 11:22:35 -07:00
Nikolaj Bjorner a628e4c4e5 updates to printer to get instantiations, take 1 2022-08-25 11:22:35 -07:00
Nikolaj Bjorner f0eee41ab9 include depenency 2022-08-25 09:09:04 -07:00
Nikolaj Bjorner 6c165e89dc #6299 2022-08-24 20:25:01 -07:00
Nikolaj Bjorner f6e151a49c assert 2022-08-24 17:16:47 -07:00
Nikolaj Bjorner d975886cdc fix #6300
several boundary cases with repeated rows being retired twice and non-termination for K = 1 where decomposition is just identity.
2022-08-24 17:16:47 -07:00
Nikolaj Bjorner fb8532bf55 succinct logging
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-23 21:06:04 -07:00
Nikolaj Bjorner 74c61f49b4 move std::function to header of sat-drat - alignment?
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-23 20:20:51 -07:00
Nikolaj Bjorner c6263587c3 fix validator bug returning true for unprocessed case, bug reported in #6116 2022-08-23 20:17:32 -07:00
Nikolaj Bjorner ce1f3987d9 fix unsoundness in quantifier propagation #6116 and add initial lemma logging 2022-08-23 19:10:01 -07:00
Nikolaj Bjorner 912b284602 disable validate_hint too permissive 2022-08-23 19:07:55 -07:00
Nikolaj Bjorner 2f8b13368d add redirect for warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-23 15:55:55 -07:00
Nuno Lopes 916d1dbb13 fix default parameter regression
bug introduced in commit 63f48f8fd4
2022-08-23 15:26:29 +01:00
Nuno Lopes 7ab904bfc6 remove spurious file 2022-08-23 14:39:44 +01:00
Nikolaj Bjorner 0eea021dc3 include global parameters and fixup for HTML meta-characters 2022-08-22 14:25:18 -07:00
Nikolaj Bjorner f6e4a45f4b Merge branch 'master' of https://github.com/z3prover/z3 2022-08-21 18:28:19 -07:00
Nikolaj Bjorner 64e0e785e7 #5953 2022-08-21 18:28:07 -07:00
Nikolaj Bjorner 09ab575d29 parens 2022-08-21 18:27:14 -07:00
Nikolaj Bjorner daa24ef4ce add missing error check 2022-08-21 18:26:53 -07:00
Nikolaj Bjorner 9eb4237dfe fix #6292
this patches a case where macro-finder is used with arrays. It doesn't work so macro quantifiers have to be re-instated to ensure correctness
2022-08-21 16:32:01 -07:00
Nikolaj Bjorner a38308792e #6288
floating points may also track bit-literals.
Since the legacy solver doesn't handle dual tracking of literals we just let the floating point solver track.
2022-08-21 15:47:19 -07:00
Nikolaj Bjorner 4092302590 use interface for creating unary equalities
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-21 15:37:43 -07:00
Nikolaj Bjorner 17fc438476 don't have bv-ackerman influence simplification
previous scheme has Ackmerman module instrument main solver to backjump and simplify when reaching a threshold.
This destroys overall performance: simplification does many more things than invoking Ackerman axioms.
Having a dependency between simplification (in-processing) and depleting a priority queue of auxiliary axioms therefore hurts overall performance. It has to be decoupled. The current approach is now to empty the axiom queue on occasion.
It is still not ideal - it should be coupled with the search level - axioms don't survive higher levels where redundant clauses get garbage collected as they don't have a chance of being used.
2022-08-21 15:25:18 -07:00
Nikolaj Bjorner be0cd74c71 #6289 2022-08-21 15:25:17 -07:00
Nikolaj Bjorner 2181a0ff74 #6289 2022-08-21 15:25:17 -07:00
Clemens Eisenhofer 56fb161532
ADT-constructor generation crashed in .NET/Java when no (= default) fields are given (#6287) 2022-08-21 12:40:38 -07:00
Bruce Mitchener 6ba9ada1e2
Fix typos. (#6291) 2022-08-21 12:40:07 -07:00
Bruce Mitchener 706f7fbdc7
Fix some warnings about unused stuff. (#6290) 2022-08-21 12:39:30 -07:00
Nuno Lopes d5d77dfe64 minor code simplifications 2022-08-20 12:56:45 +01:00
Nikolaj Bjorner 08bf7a6293 fix name
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-19 18:22:42 -07:00
Nikolaj Bjorner 665ef2c6ba add missing new
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-19 18:21:03 -07:00
Nikolaj Bjorner bb5d81195c use equalities 2022-08-19 18:17:16 -07:00
Nikolaj Bjorner b26420ed99 #6285 2022-08-19 18:17:16 -07:00
Nikolaj Bjorner e83a70f9ad add newlines for description
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-19 06:57:39 -07:00
Nikolaj Bjorner 540e36e6cb roll version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 15:47:08 -07:00
Nikolaj Bjorner 19da3c7086 fix closing parnetheses
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 13:26:29 -07:00
Nikolaj Bjorner d094f6a856 fixing interface and test'
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 13:00:46 -07:00
Nikolaj Bjorner c7eda4e687 fixing interface and test'
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 12:59:00 -07:00
Nikolaj Bjorner c3d635cf77 handle build warning
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 12:50:30 -07:00
Nikolaj Bjorner 6fb7a049ea test fromString
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 12:41:02 -07:00
Nikolaj Bjorner 53e168879a add fromString method 2022-08-18 12:33:10 -07:00
Nikolaj Bjorner 4be26eb543 #6116
handle also nan/oo/0+ as numerals
2022-08-18 04:26:14 -07:00
Nikolaj Bjorner 8e167aa213 #6116
fix unsoundness issue due to book-keeping changes for whether the solver uses assumptions.
2022-08-18 03:58:06 -07:00
Nikolaj Bjorner 1a5503c87b enable new code path for mod handling 2022-08-17 07:31:26 -07:00
Nikolaj Bjorner cb272bd7a8 fix missing removal of x in solve_mod 2022-08-17 07:31:26 -07:00
Nikolaj Bjorner 48b13291d1 add bv-size reduce #6137
- add option smt.bv.reduce_size.
  - it allows to apply incremental pre-processing of bit-vectors by identifying ranges that are known to be constant.
    This rewrite is beneficial, for instance, when bit-vectors are constrained to have many high-level bits set to 0.
2022-08-16 16:35:14 -07:00
Nikolaj Bjorner 9d6de2f873 parameters neatified
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-16 09:14:34 -07:00
Nikolaj Bjorner b169292743 add parameter descriptions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-16 08:26:53 -07:00
Nikolaj Bjorner 583dae2e27 enable nested division
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-15 16:11:00 -07:00
Nikolaj Bjorner e0aa32e6c5 fix #6270
MBQI asserts auxiliary function definitions to handle models of arrays. This is unsound if the definition contains a model value.
2022-08-15 00:13:32 -07:00
Nikolaj Bjorner a0d4a8c21c update diagnostics 2022-08-15 00:12:44 -07:00
Nikolaj Bjorner 138f0d269c fix regression found by fuzzers fix #6271 2022-08-14 12:26:33 -07:00
Nikolaj Bjorner 1d87592b13 fixes to mod/div elimination
elimination of mod/div should be applied to all occurrences of x under mod/div at the same time. It affects performance and termination to perform elimination on each occurrence since substituting in two new variables for eliminated x doubles the number of variables under other occurrences.

Also generalize inequality resolution to use div.

The new features are still disabled.
2022-08-14 11:34:03 -07:00
Nikolaj Bjorner f014e30d46 disable case1
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-13 08:53:19 -07:00
Nikolaj Bjorner d80e2fb61d fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-13 08:49:07 -07:00
Nikolaj Bjorner 16a948683f Merge branch 'master' of https://github.com/z3prover/z3 2022-08-13 07:07:34 -07:00
Nikolaj Bjorner fa91a644d3 make extensionality commutative 2022-08-13 07:07:14 -07:00
Nikolaj Bjorner 5669cf65bc bug fixes to mod/div quantifier elimination features 2022-08-13 06:18:13 -07:00
Nikolaj Bjorner 88b6c4a30d pdate decl collection to include functions under arrays
Signedoff-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-12 13:45:16 -07:00
Bruce Mitchener 72f4ee9230 api: Correctly map OP_BSREM0 to Z3_BSREM0. 2022-08-12 14:40:16 -04:00
Nikolaj Bjorner 550d6914b1 updates to div/mod handling in quantifier projection
note: the new code remains disabled at this point.
2022-08-12 14:39:33 -04:00
Nikolaj Bjorner d272becade fixes for division 2022-08-12 11:54:26 -04:00
Nikolaj Bjorner f989521a8c add initial skeleton for xor-solver 2022-08-12 11:54:10 -04:00
Nikolaj Bjorner b6d71fccd8 fix #6265 2022-08-12 10:22:22 -04:00
Nikolaj Bjorner 03385bf78d improve quantifier elimination for arithmetic
This update changes the handling of mod and adds support for nested div terms.

Simple use cases that are handled using small results are given below.

```
(declare-const x Int)
(declare-const y Int)
(declare-const z Int)
(assert (exists ((x Int)) (and (<= y (* 10 x)) (<= (* 10 x) z))))
(apply qe2)
(reset)

(declare-const y Int)
(assert (exists ((x Int)) (and (> x 0) (= (div x 41) y))))
(apply qe2)
(reset)

(declare-const y Int)
(assert (exists ((x Int)) (= (mod x 41) y)))
(apply qe2)
(reset)
```

The main idea is to introduce definition rows for mod/div terms.
Elimination of variables under mod/div is defined by rewriting the variable to multiples of the mod/divisior and remainder.

The functionality is disabled in this push.
2022-08-12 10:20:43 -04:00
Nikolaj Bjorner 786280c646 print skolem declarations only for lemma tracing 2022-08-11 11:34:54 +03:00
Nikolaj Bjorner b55ad5f20e fix #6267 2022-08-11 09:31:54 +03:00
Nikolaj Bjorner 49064252ac fix issues for user-propagator from new core 2022-08-09 14:56:27 +03:00
Nikolaj Bjorner f27485dae7 avoid push/pop if diseq/eq are not defined 2022-08-09 11:33:29 +03:00
Nikolaj Bjorner 78eaefe5a8 move solver-params to params 2022-08-08 11:34:41 +03:00
Nikolaj Bjorner 77a313ff76 redo #6242
revert to byte based high watermark
add mb based high watermark
2022-08-08 11:26:18 +03:00
Nikolaj Bjorner 63f48f8fd4 add options for logging learned lemmas and theory axioms
- add solver.axioms2files
  - prints negated theory axioms to files. Each file should be unsat
- add solver.lemmas2console
  - prints lemmas to the console.
- remove option smt.arith.dump_lemmas. It is replaced by solver.axioms2files
2022-08-08 11:18:56 +03:00
Nikolaj Bjorner 410eed9bd5 #6116 2022-08-07 11:09:43 +03:00
Nikolaj Bjorner 8e077d8ef9 #6116 2022-08-07 10:25:04 +03:00
Nikolaj Bjorner 539d44464f #6196
map can be simplified
2022-08-07 10:17:24 +03:00
Nikolaj Bjorner f34317d604 #6196 2022-08-07 09:44:10 +03:00
Nikolaj Bjorner a4ea281602 fix #6260 2022-08-06 08:21:52 +03:00
Bruce Mitchener 5014b1a34d Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
Arie Gurfinkel aa0719abae model_based_opt: fix enabling complete resolution
a bug prevented an optimization to be enabled
2022-08-05 18:11:23 +03:00
Nikolaj Bjorner 80c516bb50 squash stores 2022-08-05 13:57:35 +03:00
Bruce Mitchener 6835522a7f z3++.h: No longer include unused sstream.
This makes some code using the C++ API have to include `<sstream>`
if they used the functionality but didn't include it themselves.
2022-08-05 09:41:49 +03:00
Nikolaj Bjorner e48474ec0e Merge branch 'master' of https://github.com/z3prover/z3 2022-08-05 09:20:00 +03:00
Nikolaj Bjorner c51af91256 #6257
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-05 09:19:49 +03:00
Arie Gurfinkel a9b7348b4b (cmake): fix visibility on shell z3 binary
Commit #b361226 changed symbol visibility from a global to a local option.
This creates inconsistency for shell that is compiled as an executable rather
than as z3 component.

This commit adds same local options to shell target in cmake.

Prior to the fix, clang on OSX complains with lots of warnings about symbol visibility
being different in different translation units that are linked together
2022-08-05 09:00:40 +03:00
Nikolaj Bjorner 78a0f57398 for #6257
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-05 08:09:39 +03:00
Bruce Mitchener 1d9345c3de Fix typos. 2022-08-05 07:40:50 +03:00
Bruce Mitchener 08165f5367 No need to return a const bool. 2022-08-05 07:40:19 +03:00
Nikolaj Bjorner 9da6895276 add option to select with folding 2022-08-04 16:59:26 +03:00
Nikolaj Bjorner a8ff976bcc max maximal unfolding configurable 2022-08-04 16:59:26 +03:00
Bruce Mitchener 8a3556e5ba cmake: Remove dep on mk_util.py for update_api.py calls.
update_api.py doesn't depend on mk_util.py any longer, so these
dependencies can go away.
2022-08-04 07:54:26 +03:00
Saloed d908ebec4c fix memory_high_watermark parameter according to documentation 2022-08-03 18:50:54 +03:00
Bruce Mitchener d8c99480c6 test/lp: Replace if linux with if not windows.
This is stuff that works on posix, so we can flip the check.
2022-08-03 08:22:54 +03:00
Bruce Mitchener 112dba559f Remove unused private member from smaller_pattern. 2022-08-03 08:21:32 +03:00
Nikolaj Bjorner 774ce3d7ab create special case for osx arm
shortcut when store/select are distinct

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-03 07:56:02 +03:00
Bruce Mitchener 42f5047463 cmake: Cleanup remnants of workaround for USES_TERMINAL.
In older versions, this was dependent upon the version of cmake,
but when it was updated for newer cmake, these remnants were
left.
2022-08-02 17:39:10 +03:00
Bruce Mitchener 8313282cda Use char version of find_last_of when possible. 2022-08-02 17:38:11 +03:00
Bruce Mitchener 886c3abec1 Remove remnants of _MP_MSBIGNUM checks. 2022-08-02 09:28:57 +03:00
Bruce Mitchener 9a99c78ffb Enable thread_local code more broadly.
This was only being enabled on Windows, Linux, and FreeBSD. (FreeBSD
only had it enabled in the legacy build system, not in cmake.)

`thread_local` is part of C++11, so now that we require C++17
or later and more recent compilers, this should work everywhere
that threading does, so only disable it within a `SINGLE_THREAD`
build.
2022-08-02 09:24:51 +03:00
Bruce Mitchener 82d853e5f8 Use = delete to delete special methods.
This provides a better experience than just marking them as
private and leaving them as undefined symbols.
2022-08-02 09:23:14 +03:00
Jakob Rath 2c2ab0d57a Additional BV matchers 2022-08-01 18:37:11 +03:00
Jakob Rath 5d858da58a union_find::reserve 2022-08-01 18:37:11 +03:00
Jakob Rath e8e64d3098 dlist::insert_before/after 2022-08-01 18:37:11 +03:00
Jakob Rath de6a0ab1a7 PDD operations 2022-08-01 18:37:11 +03:00
Jakob Rath 42233ab5c8 Additional BDD operations; BDD vectors and finite domain abstraction 2022-08-01 18:37:11 +03:00
Jakob Rath 9275d1e57a sparse_matrix iterators 2022-08-01 18:37:11 +03:00
Jakob Rath 6eae27ffad numeral helper functions 2022-08-01 18:37:11 +03:00
Jakob Rath e31926d132 var_queue display 2022-08-01 18:37:11 +03:00
Jakob Rath 6a929f91c8 scoped_ptr_vector usability 2022-08-01 18:37:11 +03:00
Jakob Rath d2fe174320 Add SASSERT_EQ and VERIFY_EQ 2022-08-01 18:37:11 +03:00
Jakob Rath 79ee543d25 Move tbv to util 2022-08-01 18:37:11 +03:00
Bruce Mitchener a89be68050 Use false instead of 0. 2022-08-01 18:28:07 +03:00
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 77e5d6ab19 Use nullptr consistently instead of 0 or NULL. 2022-08-01 14:24:32 +03:00
Nikolaj Bjorner bf282b05c8 fix #6213
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-31 18:40:59 +03:00
Nikolaj Bjorner 4a1baa7d2d fix #6165 2022-07-30 17:10:01 +02:00
Bruce Mitchener 5d0dea05aa
Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
Bruce Mitchener fc40e3c510 Remove usages of Z3_bool, just use bool. 2022-07-30 05:49:05 +02:00
Nikolaj Bjorner 2a8e73f34f Merge branch 'master' of https://github.com/z3prover/z3 2022-07-29 23:30:37 +02:00
Nikolaj Bjorner 6d71d9e816 update coding style to C++11
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-29 23:30:33 +02:00
Bruce Mitchener 1eb84fe4b9
Mark override methods appropriately. (#6207) 2022-07-29 23:29:15 +02:00
Bruce Mitchener 8e0d9bf42d
Remove remainder workaround for pre-MSVC2013. (#6204)
This workaround was built for _MSC_VER <= 1700. 1700 was
Visual Studio 2012, which is no longer supported for
building Z3.
2022-07-29 11:50:31 +02:00
Bruce Mitchener eba29a280d
Use std::hexfloat more. (#6203)
Previously, we were only using std::hexfloat on Windows on VS2013
and later.

Since std::hexfloat is part of C++11 and we require C++11 to build
the Z3 library, this should be supported everywhere.
2022-07-29 11:49:56 +02:00
Bruce Mitchener 75339c6db7
Fix doxygen warnings in C API docs. (#6202) 2022-07-29 11:49:24 +02:00
Bruce Mitchener 78237578f3
Enable more tests on non-Windows. (#6199)
Some tests were `#ifdef _WINDOWS` even though they compiled
and ran on other platforms. Remove the #ifdef protections
in these cases.
2022-07-29 11:48:27 +02:00
Nikolaj Bjorner ee80414e55 sketch initial for mpz/mpq numeral creation 2022-07-27 10:46:03 +02:00
Nikolaj Bjorner 8551b217ce fix #6194 2022-07-27 08:03:57 +02:00
Nikolaj Bjorner b6c80e8b00 fix #6193 2022-07-27 04:28:41 +02:00
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