Releases: Z3Prover/z3
Releases · Z3Prover/z3
z3-4.8.8
4.8.8 release
Changes:
- ad55a1f Update release.yml for Azure Pipelines
- 42e6cbc publish also ubuntu build
- 9a44ed8 enable pip
- 2804b40 disable nuget publish for now
- b42ea38 Automatically push release pipeline packages to nuget.org (#4249)
- cceae2e old solver as default
- 2e714fc expose uninterpreted op versions for ad-hoc parsing
- e459cf4 na
- 54f38d0 fix #4235
- 6a61e8d fix #4234
See More
- da9b037 fix #4233
- fc6bdb9 fix #4232
- aa3749f fix #4231
- eda2eb5 fix #4245
- 0acaf1c fix #4218
- 1f15033 z3str3: remove legacy code (#4215)
- 691759c fix #4227
- 603b555 port progation from cons branch
- 2d08baf fix #4219
- 1a642b4 na
- 93004a9 fix #4225
- bbaedbc fix #4224
- 6f6c8d7 fix #4216
- f2449df introduce ul_pair associated_with_row
- d20259b remove stdout
- 82236d4 some simplifications in theory_bv
- 911d23a fix #4210
- 7b1aee4 fix #4203
- 2104624 updated release notes
- 3985943 na
- a34c5a9 bail out on big rational numbers in nla monotone lemmas
- b81ab94 pipeline with release mode (#4206)
- be998c3 Allow different parsing strategies (#4205)
- 39fb44f fix #4200
- 2a93ac3 fix #4200
- 6f48c9c na
- 3473dec na
- 6a540e8 add Julia to pipeline (#4199)
- d3e4dd6 relax condition on theory disequality propagation fix #4194
- fcab7e4 fix #4195
- 91a190a disable multi-threading for validation code, masks #4196
- 5e4276b fix #4197
- dc9221e limit iterations on equality solver based on experimenting with #4178
- 37f6364 fix #4103
- 09d881c na
- 75859ef model anomaly fix #4171
- 4067c84 prepare for stronger rewrites
- 6e4a059 build warning
- 0f1815c fix #4181
- f30d63a better rewriting for ule
- f3dd58d fix #4187
- 47fa6ba fix #4191
- 8be266c micro tuning for #4192
- f313ab9 correct newly introduced rewrite
- ec8866c na
- f0d33dd some simplifications based on #4178
- 2695221 [Julia bindings] Changes for libcxxwrap 0.7 (#4184)
- 6088da5 fix #4176
- c94a9e8 na
- 8dd522d fix #4057 fix #4061
- dcb75c4 fix #4174
- 166be6c add constructor preservation axiom to update-field
- f859063 fix #4164
- 5b6255e small updates
- 397bf2d move windows dependencies down
- 16bc5b8 build warning
- 9757413 fix #4163
- cb5c2d3 fix unit test build
- 893265c fix #4166
- e9119a6 fix #4168
- dbfa3dd [spacer] implement spacer::is_clause() (#4170)
- 799b613 avoid repeated internalization of lambda #4169
- 7ae2047 remove assignments to lambdas, exposed by #4169
- 9c52d4e debugging #4169
- 68f1f1e fix #4162
- 9f6a733 add hook for induction
- fd911a5 build warning
- 0e77074 another revision of purify_arith, fix #4144
- 3fc001b simplifications noticed by trying #4147
- 7cfd16c correct ordered lemmas
- 56690d1 remove incorrect order lemmas
- b0ffad9 Merge pull request #4092 from mtrberzi/regex-compl-inter
- 0fb6a7c Merge pull request #4101 from mtrberzi/int-to-str-leading-zeroes
- 4d54b41 #4153
- e67112f NYI control paths
- ee1d393 files to make build easier
- 7e34925 Improve UX for unreachable/unimplemented errors (#4094)
- a11dc5d shuffle checks for enable_edge around fix #4159
- 71e9bf1 initialize local variable
- 4defe9b reorder
- 8dde1bf compiler warnings
- 00d35c2 initialization order
- a1928a2 update expected
- 97fe2c8 remove an assert
- 35e3df4 cosmitic changes in int_branch.cpp
- d5162d9 add an assert
- aa0f5db fixes
- f8037ff always call find_feasible_solution in move_nbasic_columns_to_bounds()
- ba40a57 better branching with usage_in_terms()
- 3bbf147 na
- ccce599 fix #4143
- fa1197a fix #4155
- 815fedd fix #4156
- fa88dab fix #4135
- b571e43 fix #4146
- c5550e4 build
- 1dc8b59 fix #4154
- 1f9e022 fix #4131
- e3f712b build
- 19409a2 value sweep
- 38e0968 fix #4128
- 4f46292 fix #4116
- 3a63c37 fix #4127
- 8996e81 fix #4120
- 4938ea7 fix #4123
- 1c2aa10 fix #4125
- a0de244 pleay nice with alignment
- d818233 unused variable warnings
- 5434f3e fix #4105
- f119398 fix #4102
- decd69a move to util
- 6d4bd37 fix #4104
- fc1321f fix #4104
- d37ebb8 na
- f7a7b9e fix #4108
- 7358881 fix #4112
- c2e0491 fix #4113
- 0499b6b some fixes in branching
- 029edcf fix #4114
- 51c3778 fix #4106
- 530f772 fixes in branching
- 236edad fix #4111
- dc852a6 fix #4110
- d309429 fix #4107
- 16d34b9 fix #4100
- 626d018 fix #4098
- f919380 add recfun rewriting, remove quantifier based recfun
- 7f1b147 remove
- 9f378bb #4099
- a884201 remove using insert_if_not_there2
- 9ea1cf3 na
- 1a5d663 z3str3: disallow leading zeroes in int-to-string conversion
- d21911c z3str3: fix support for re.complement and re.intersection
- 785c9a1 fix #4049
- 6ab8346 fix #4082
- a3844af fix #4081
- c3b33aa fix #4090 fix #4088 fix #4085
- 470e87a update rewite modality
- 851c38f fix #4086
- 2793c3a more replace rewrites #4084
- 03ba268 more replace rewrites #4084
- 7597396 fix #4080
- 6ff61d1 fix #4062
- eb2d7d3...
z3-4.8.7
4.8.7 release
Changes:
- 30e7c22 upgrade pip
- f170e65 add importlib_metatada
- c62380a update names of config vars
- 3669543 rename additional build options #2709
- 429fc7c rename additional build options #2709
- 2673235 rename additional build options #2709
- f7a6f3f fix #2718
- c7248a6 rename additional build options #2709
- dc4adcb doc
- 4522e7a rename additional build options #2709
See More
- 53a01a0 rename additional build options #2709
- 48554f0 rename additional build options #2709
- b50f850 rename additional build options #2709
- e9d9792 rename additional build options #2709
- 3ab9a1c remove deprecated USE_OPENMP, rename API_LOG_SYNC to Z3_API_LOG_SYNC (tiny part of #2709)
- 3729458 enable pypi
- dde8da8 fix bug introduced when fixing #2721
- 9b72b60 block unsound itos solutions. #2721
- 29e1fb6 fix #2720, unsound preprocessing in elim_uncnstr_tactic where datatype properties of eliminated subterms is forgotten
- 05ad90c fix for null symbol #2712
- 37382d2 Updated references to Z3 icon
- dd4905e Publishing SNK file private key for reproducible builds
- 215edcf fix; disable rewrite. fix #2715
- fe0b3d6 na
- 3c6dcea fix #2717
- d95b549 fix #2707
- f0b8da4 typo
- 2bf595c update release notes
- cbac860 fix #2706
- b9bc697 fix crash in BV internalizer due to unknown bv_neg symbol
- cb600a9 consolidate model.compact and model_compress #2704
- 1a9dfc5 inherit weights
- 784e272 print weight if it is different from default #2667
- 5f90e72 ensure generation is increased #2667
- 1281964 fix E instantiation
- 74cfcc4 clang warnings
- 20598e3 address clang warnings
- 0c1b68b remove unused variable
- c73a87c remove assert
- 779183d fixing smtfd
- d23230e fix declaration sorts of auxiliary functions
- dd827ca remove IS_GNU
- 4fabaf9 remove deprecated and bind1st and unused warnings
- 984db30 deal with warnings
- 4527a99 fix #2675
- 1fec4bb fix output
- 0a8b924 remove print
- b76dee7 na
- 1e0c1ce add definitions for under-specified cases of arithmetic operators #2663 #2676 #2679
- 6cf7d8e adding div0
- 1048abf Merge pull request #2683 from fpoli/fix-static-linking
- ac60269 Merge branch 'master' into fix-static-linking
- 7eb6731 Link pthread with --whole-archive option on Linux [ #2457 ]
- c181f89 enable static linking pthreads, conditionally, #2683
- cef5a26 update README on cmake
- 8a420c8 remove divergent ordering
- 23029da investigating relevancy
- a78f899 expand deep stores by lambdas to avoid expanding select/store axioms
- d866a93 na
- da061bb Add hurd support
- 16d4ccd na
- 18b8089 Revert "remove unused random seed parameter on cmd_context"
- 4faaff5 Fix memory leak in bv2fpa_converter
- 2308d8a Fix for partially interpreted floating-point functions. Relates to #2596, #2631.
- 1d4f8c0 Typos
- efa3c0f Fix compiler warnings
- 823bf31 fix #2664
- d0dac83 fix #2665
- e24481d fix #2662
- 376d2c1 add unit test based on #2658
- be99d3d z3str3: refactoring, move regex automata methods to theory_str_regex
- ed03c1d Removed incorrect include directories flag in ocaml META file
- 14c42c1 na
- 64dd4e1 fix #2659
- a8049c7 update nightly
- b9a407c z3str3: force eager axiom setup on new terms
- f91af02 z3str3: set up axioms on string terms that are added during the search
- 9ae1a6f Add MSVC ARM64 job to Azure Pipelines
- 3feb147 Improve platform detection, in particular MSVC ARM64
- 907ffde Drop explicit MSVC's DYNAMICBASE option setting in favour of defaults
- 837651e Explicitly add EHsc to MSVC compiler flags
- 60dde9f unit test for #2650
- 8125fb1 na
- 3fcd9e6 logging
- f4fd947 fix #2652
- e2a9cb8 remove unused random seed parameter on cmd_context
- 9847675 fix #2647
- 76b3198 z3str3: fixes to str.indexof when axiomatizing constant expressions
- 0acbdff update mk_nuget_task
- bfc3044 update nightly
- 9fae4a1 update nightly
- 4051fbd update nuget packaging
- f086f01 update nuget script
- 928e08f update nightly runner
- af442cf update nightly runner
- 0756581 add nuget stage to nightly
- 5c78f85 re-add deletion for nightly
- aef0c19 add pdb to distribution components
- e550424 use propagation filter
- 423e084 remove unused var
- 11736f0 ensure statistics survive cancelation in tactics, fix propagation for smtfd
- 203ba12 moving to context reset model
- 724a42b fix #2643
- 5eead52 Fixed linkopts -lstdc++ for ocaml bindings
- c1fa844 format
- a82cee6 add information about supported packages in README, fix #2642
- 4ce6b53 fix #2640
- ca498e2 move value factories to model
- 5122b2d add solver.timeout as another entry point #2354
- ed149ea working on core focused refinement loop
- 77c3f1f fix ocaml build by moving to Zarith methods
- 09523a4 temporary remove delete from nightly
- 5a1003f remove platform dependent copy routine
- 66339b7 update setup.py to include redist x64 #2265
- 71d68b8 fix #2445 fix #2519
- 224cc8f Fix case sensitive fs include Windows.h
- c93a265 Install dlls in prefix/bin
- f18b443 fix to_app crash
- a921b4f fix #2643 - fuzzers are here to get you @lorisdanton
- cc26d49 preparations for dealing with #2596
- 5bdcc73 remove function name
- ce06cd0 replace iterators by for, looking at @2596
- 8d942ed sudo the install
- d0cf145 fix #2630
- a1b6900 fix #2629
- a90529e add path to python
- 8c8a8ce add build step to generate doc
- a1814bf doc.fix(ast/rewriter/poly_rewriter_params.pyg): typo som-of-monomials -> sum-of-monomials
- 31a6788 comment
- a990e7f add visitor example, fix double conversion
- 4fc64ab z3str3: check for and re-internalize str.in.re terms
- 58bc2bf...
Nightly
nightly build
Changes:
- 6b32aae remove slack heuristic
- a5e5d4d testing
- bbaec0b trying randomly shuffle the indices in the slack utilization
- 52241b6 some refactoring of lar_solver.h
- fef954c shring lar_solver.h
- 4abd984 fix the build
- e3f5e8c restore lar_solver::add_named_var
- b375faa continue PIMPL refactor in lar_solver
- b7ffcb7 implement imp of lar_solver as lar_solver::imp
- 39955f1 remove a function from lar_solver
z3-4.8.6
4.8.6 release
Changes:
- 78ed71b update to pypirc
- bd26301 update to pypirc
- f8df777 na
- a1d3aca add release notes preparing for release
- 4b96238 use testpypi
- df2f041 undo atomic
- c68cfe8 #2565 use atomic
- 04ae000 fix #2567
- 9c74c05 address min-int overflow reported in #2565
- 77ef40a na
See More
- 4b51fe4 fix #2562
- 69abe16 backjump to level of clause to ensure that new atoms created by projection are assigned as assumptions fix #2557
- 0f20175 fix #2556, sign of of inequality is not restricted to -1, 0, 1, but can be -2, -3 etc
- 0c972b8 tidy
- da805f6 address perf bottleneck exposed by #2552
- fffc539 fix #2549
- 098725a fix #2553
- 67c4777 fix #2548 fix #2530
- 5d9ed5b Allow for
__truediv__
and__rtruediv__
even when not using Python3 - 1b83c67 spacer: fixes lim_num_generalizer
- 6384080 fix #2546, retrieve model in optsmt lex before iterating
- 0481adb fix #2547
- 0d3fed9 spacer: lemma generalizer for small numbers
- 78a1f53 fix #2544
- b1cdb3e add mbqi to smtfd. For Nuno, of course
- c22a17f smtfd
- d3da161 smtfd
- 5ba4d8d na
- d44081d fix clang compilation errors
- 3b1a73b add smt to project.py dependencies
- 85fb6f5 disable ackermannize on goal
- ff3cff0 deal with ite
- c476c4a smtfd solver that uses lazy iteration around fd to produce theory lemmas
- e881c4a Support repr_html for jupyter
- 228d68f enhance ackermannize for constant arguments
- 18ba14c Z3str3: fix empty-string contradictions (#2538)
- bc723fb fix #2539
- 8ec6219 na
- a92c82d na
- f645f8d fix #2537
- 29f0897 tweaking nlqsat
- 5fbfc0f minor code simplification
- 8f4e7f4 fix #2533
- 9fce5e1 fix build
- 87a96d7 fix mutexes hanging due to access to free'd memory
- cb75326 minor code simplification
- 68e4ed3 fix #2531
- 000e485 add array selects to basic ackerman reduction improves performance significantly for #2525 as it now uses the SAT solver core instead of SMT core
- 7823117 Restore expected behavior to stopwatch
- e816d16 fix #2527
- 4c0db00 fix push/pop bug for ite-elimination, thanks to Nao Hirokawa for reporting it
- de43e05 fix overflow bug exposed by #2476
- a8bfab3 add model.inline_def option to make #2517 happy
- 35fa24a initialize best model
- 20dc59e fix #2523
- 2e6908b fix #2509, fix issue with model inheritance exposed by #2483
- 271cd2a disable expensive model validation
- f048cb2 revert the revert
- 75a40d8 reorder fields, rename overload name clash
- 64f4c97 fix regressions during string fixes
- 0d9cd7b addressing misc. string bugs
- a337a51 fixes for #2513
- de69b01 Lev's fixes
- f90db2b add back compression to ensure local functions are inlined #2517
- c15764e remove verbose=0 instances #2507
- ffc696e exclude built-in functions from model
- eea0413 fix #2502
- e08abb3 fix #2504
- 2f60bcb Clean up NaN return values in Z3_get_numeral_double
- 423fb73 Fix for fp.rem. Pertains to #2381.
- f22d6e3 Fix floats in Z3_get_numeral_*string.
- 79cd1f0 Fixed Z3_get_numeral_double. Fixes #2501.
- 258b798 test-z3: Improve help output. Provide help when no args.
- f02170f Clean up whitespace.
- fcc7bd3 fix #2489
- 3074e2b fix #2487
- d64dc93 Add note about minimized unsat cores to C API docs.
- 9949f16 Fix release note typos.
- e2122c0 Fix whitespace issues in *.pyg.
- 0734c5f fix is-array-sort test again
- 892aa12 Fix for fp.rem. Fixes #2381.
- 0edd587 Fix typos in examples.
- ec5b148 Add python packaging build and deployment with Azure
- eec550e fix python build break
- 2b2f016 python for accessing lambda, switch to theory branching for QF_LRA
- 520ea65 move towards theory phase selection, implement getitem on lambda
- 0eafeb9 Fix confusing tabs mixed in with spaces in C examples.
- 0093157 Handle dynamic sort of Nth()'s return value in the Python API
- e89bb37 More see also content in C API docs.
- 375c0ff Implement get_proof() in bmc and spacer engines
- 876cfb4 optimization of phase
- 7596217 fix #2481
- 9fa9aa0 fix #2468, adding assignment phase heuristic
- 42e2145 fix #2479
- ce84e0f remove strategic solver header file
- fc41a61 expose strategic solver factory prototype at level of solver module
- 1ae0a98 fix #2466
- 52acbf1 bug in qe_lite
- e2d91ce distribute concat over bvxor and bvor, #2470
- 8579a00 distribute concat over bvxor and bvor, #2470
- e950453 force propagation for smt cubing
- bbfac99 fix #2469
- 0af249d 'na
- f90439f docs: Fix a number of identifier formatting issues.
- 077f518 Fix -Wreorder warning.
- ce7f9c3 Remove unused variable.
- d977c15 Merge pull request #2462 from waywardmonkeys/fix-typo
- 6be36f1 Fix typo.
- bc3b0f6 introduce fresh term when none is available in context or model to fix #2456
- 01920ab introduce fresh term when none is available in context or model to fix #2456
- 59f69bb introduce fresh term when none is available in context or model to fix #2456
- c7dc420 let me guess, ASAN doesn't like 0-byte memcpy
- 90415a1 fix build of test
- d7ac8db fix #2458
- 3147d23 fix #2460
- 4431a53 fix #2450 - track assumptions across lazy explanations and variable equalities
- db5af30 logging for #2450
- 1d488d0 nlsat
- 2d5714a fixing #2443 #2445 #2447 #2448
- 584eee2 fixing #2448 and #2445 and #2443
- c448033 fixing #2448 and #2445 and #2443
- 3d1c40c fixing #2448
- 95eb0a0 remove an unnecessary call m_mpq_lar_core_solver.m_r_solver.track_column_feasibility(j)
- 294dcf7 Merge pull request #2455 from levnach/fix
- e9e9500 fix the build
- db5ac5a fix a bug in lar_solver in queryaing if a column is int
- 9d6728a fix unsound rewrite
- 0a29002 return unknown if m_array_weak was used and result is satisfiable
- 3f032e8 remove include of thread
- b...
Z3-4.8.5
The release contains cumulative updates to the previous release
Z3-4.8.4
z3-4.8.4 new tag
z3-4.8.3
This release covers
- bug fixes since 4.8.1
- .NET bindings for dotnet standard 1.4 on windows and 64 bit Linux systems and MacOs
z3-4.8.1
new in 4.8.1
-
New requirements:
- A breaking change to the API is that parsers for SMT-LIB2 formulas return a vector of
formulas as opposed to a conjunction of formulas. The vector of formulas correspond to
the set of "assert" instructions in the SMT-LIB input.
- A breaking change to the API is that parsers for SMT-LIB2 formulas return a vector of
-
New features
- A parallel mode is available for select theories, including QF_BV.
By setting parallel.enable=true Z3 will spawn a number of worker threads proportional to the
number of available CPU cores to apply cube and conquer solving on the goal. - The SAT solver by default handle cardinality and PB constraints using a custom plugin
that operates directly on cardinality and PB constraints. - A "cube" interface is exposed over the solver API.
- Model conversion is first class over the textual API, such that subgoals created from running a
solver can be passed in text files and a model for the original formula can be recreated from the result. - This has also led to changes in how models are tracked over tactic subgoals. The API for
extracting models from apply_result have been replaced. - An optional mode handles xor constraints using a custom xor propagator.
It is off by default and its value not demonstrated. - The SAT solver includes new inprocessing techniques that are available during simplification.
It performs asymmetric tautology elimination by default, and one can turn on more powerful inprocessing techniques
(known as ACCE, ABCE, CCE). Asymmetric branching also uses features introduced in Lingeling by exploiting binary implication graphs.
Use sat.acce=true to enable the full repertoire of inprocessing methods. By default, clauses that are "eliminated" by acce are tagged
as lemmas (redundant) and are garbage collected if their glue level is high. - Substantial overhaul of the spacer horn clause engine.
- Added basic features to support Lambda bindings.
- Added model compression to eliminate local function definitions in models when
inlining them does not incur substantial overhead. The old behavior, where models are left
uncompressed can be replayed by setting the top-level parameter model_compress=false. - Integration of a new solver for linear integer arithmetic and mixed linear integer arithmetic by Lev Nachmanson.
It incorporates several improvements to QF_LIA solving based on
. using a better LP engine, which is already the foundation for QF_LRA
. including cuts based on Hermite Normal Form (thanks to approaches described
in "cuts from proofs" and "cutting the mix").
. extracting integer solutions from LP solutions by tightening bounds selectively.
We use a generalization of Bromberger and Weidenbach that allows avoiding selected
bounds tighthenings (https://easychair.org/publications/paper/qGfG).
It solves significantly more problems in the QF_LIA category and may at this point also
be the best solver for your problem as well.
The new solver is enabled only for select SMT-LIB logics. These include QF_LIA, QF_IDL, and QF_UFLIA.
Other theories (still) use the legacy solver for arithmetic. You can enable the new solver by setting
the parameter smt.arith.solver=6 to give it a spin.
- A parallel mode is available for select theories, including QF_BV.
-
Removed features:
- interpolation API
- duality engine for constrained Horn clauses.
- pdr engine for constrained Horn clauses. The engine's functionality has been
folded into spacer as one of optional strategies. - long deprecated API functions have been removed from z3_api.h
Z3 4.7.1
Z3 4.7.1. official release
- cumulative bug fix since 4.6.0
- minor version incremented as API now uses stdbool and stdint: bool and int64_t, uint64_t
Z3 4.6.0
Official release Z3 4.6.0.