3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-27 09:49:23 +00:00
z3/src/api/dotnet
Ilana Shapiro 6044389446
Parallel solving (#7771)
* very basic setup

* ensure solve_eqs is fully disabled when smt.solve_eqs=false, #7743

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* respect smt configuration parameter in elim_unconstrained simplifier

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* indentation

* add bash files for test runs

* add option to selectively disable variable solving for only ground expressions

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove verbose output

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix #7745

axioms for len(substr(...)) escaped due to nested rewriting

* ensure atomic constraints are processed by arithmetic solver

* #7739 optimization

add simplification rule for at(x, offset) = ""

Introducing j just postpones some rewrites that prevent useful simplifications. Z3 already uses common sub-expressions.
The example highlights some opportunities for simplification, noteworthy at(..) = "".
The example is solved in both versions after adding this simplification.

* fix unsound len(substr) axiom

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* FreshConst is_sort (#7748)

* #7750

add pre-processing simplification

* Add parameter validation for selected API functions

* updates to ac-plugin

fix incrementality bugs by allowing destructive updates during saturation at the cost of redoing saturation after a pop.

* enable passive, add check for bloom up-to-date

* add top-k fixed-sized min-heap priority queue for top scoring literals

* set up worker thread batch manager for multithreaded batch cubes paradigm, need to debug as I am getting segfault still

* fix bug in parallel solving batch setup

* fix bug

* allow for internalize implies

* disable pre-processing during cubing

* debugging

* remove default constructor

* remove a bunch of string copies

* Update euf_ac_plugin.cpp

include reduction rules in forward simplification

* Update euf_completion.cpp

try out restricting scope of equalities added by instantation

* Update smt_parallel.cpp

Drop non-relevant units from shared structures.

* process cubes as lists of individual lits

* merge

* Add support for Algebraic Datatypes in JavaScript/TypeScript bindings (#7734)

* Initial plan

* Add datatype type definitions to types.ts (work in progress)

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Complete datatype type definitions with working TypeScript compilation

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Implement core datatype functionality with TypeScript compilation success

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Complete datatype implementation with full Context integration and tests

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* chipping away at the new code structure

* comments

* debug infinite recursion and split cubes on existing split atoms that aren't in the cube

* share lemmas, learn from unsat core, try to debug a couple of things, there was a subtle bug that i have a hard time repro'ing

* merge

* fix #7603: race condition in Ctrl-C handling (#7755)

* fix #7603: race condition in Ctrl-C handling

* fix race in cancel_eh

* fix build

* add arithemtic saturation

* add an option to register callback on quantifier instantiation

Suppose a user propagator encodes axioms using quantifiers and uses E-matching for instantiation. If it wants to implement a custom priority scheme or drop some instances based on internal checks it can register a callback with quantifier instantiation

* missing new closure

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add Z3_solver_propagate_on_binding to ml callback declarations

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add python file

Signed-off-by: Lev Nachmanson <levnach@Levs-MacBook-Pro.local>

* debug under defined calls

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* more untangle params

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* precalc parameters to define the eval order

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* remove a printout

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rename a Python file

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* add on_binding callbacks across APIs

update release notes,
add to Java, .Net, C++

* use jboolean in Native interface

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* register on_binding attribute

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix java build for java bindings

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* avoid interferring side-effects in function calls

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove theory_str and classes that are only used by it

* remove automata from python build

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove ref to theory_str

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* get the finest factorizations before project

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rename add_lcs to add_lc

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* resolve bad bug about l2g and g2l translators using wrong global context. add some debug prints

* initial attempt at dynamically switching from greedy to frugal splitting strategy in return_cubes. need to test. also there is some bug where the threads take forever to cancel?

* Update RELEASE_NOTES.md

* resolve bug about not translating managers correctly for the second phase of the greedy cubing, and the frugal fallback

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: Lev Nachmanson <levnach@Levs-MacBook-Pro.local>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: humnrdble <83878671+humnrdble@users.noreply.github.com>
Co-authored-by: Nuno Lopes <nuno.lopes@tecnico.ulisboa.pt>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-11 09:14:20 -07:00
..
Properties build errors/warnings 2019-03-16 16:52:18 -07:00
AlgebraicNum.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
ApplyResult.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
ArithExpr.cs Dispose of intermediate Z3Objects created in dotnet api. (#5901) 2022-03-17 08:08:05 -07:00
ArithSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
ArrayExpr.cs add multi-argument select for C# 2019-03-17 11:36:29 -07:00
ArraySort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
AST.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
ASTMap.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
ASTVector.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
BitVecExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
BitVecNum.cs enable binary string access to unsigned numerals over API #4568 2020-07-07 18:58:42 -07:00
BitVecSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
BoolExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
BoolSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
CharSort.cs add char sort to .net 2021-07-13 19:43:12 +02:00
cmake_install_gac.cmake.in rename additional build options #2709 2019-11-18 21:32:35 -08:00
cmake_uninstall_gac.cmake.in rename additional build options #2709 2019-11-18 21:32:35 -08:00
CMakeLists.txt cmake: Use FindPython3. (#7019) 2023-11-27 11:20:21 +01:00
Constructor.cs #7003 2023-11-19 09:59:44 -08:00
ConstructorList.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Context.cs Typo Fixes (#6803) 2023-07-09 11:56:10 -07:00
DatatypeExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
DatatypeSort.cs Dispose of intermediate Z3Objects created in dotnet api. (#5901) 2022-03-17 08:08:05 -07:00
EnumSort.cs Dispose of intermediate Z3Objects created in dotnet api. (#5901) 2022-03-17 08:08:05 -07:00
Expr.cs Update Expr.cs 2022-07-02 13:12:54 -07:00
FiniteDomainExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FiniteDomainNum.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FiniteDomainSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Fixedpoint.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
FPExpr.cs Return significand bits correctly (dotnet API). Fixes #4584 2020-07-22 16:57:33 +01:00
FPNum.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FPRMExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FPRMNum.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FPRMSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FPSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
FuncDecl.cs prepare release notes 2018-10-28 17:42:16 -05:00
FuncInterp.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Global.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Goal.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
IntExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
IntNum.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
IntSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
IntSymbol.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Lambda.cs fix remaining incorrect uses of new BoolExpr related to #2125 2019-02-07 12:28:17 -08:00
ListSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Log.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Microsoft.Z3.csproj.in include readme in package 2023-12-05 13:04:25 -08:00
Microsoft.Z3.props integrating additional changes from @yatli pull request #1815 2019-01-20 10:51:44 -08:00
Microsoft.Z3.Sharp.pc.in this is still used 2019-01-20 11:25:34 -08:00
Microsoft.Z3.snk Added/improved facilities for strong name signing of the .NET assembly. 2016-07-28 18:07:34 +01:00
Microsoft.Z3.targets integrating additional changes from @yatli pull request #1815 2019-01-20 10:51:44 -08:00
Microsoft.Z3.targets.in Remove dependency on TargetPlatform macro 2019-03-14 15:46:03 -07:00
Model.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
NativeContext.cs add missing MkSub to NativeContext 2022-07-18 10:21:27 -07:00
NativeFuncInterp.cs Fix null ref on access of Entry[] contents (#5947) 2022-04-06 05:37:51 +02:00
NativeModel.cs Clean up build warnings (#5884) 2022-03-07 12:55:30 -08:00
NativeSolver.cs Jfleisher/nightlynuget (#5916) 2022-03-22 12:19:58 -07:00
OnClause.cs build fixes 2023-07-18 19:14:45 -07:00
Optimize.cs Add assert_and_track support to Optimize class in .NET binding (#7437) 2024-10-26 01:33:09 -07:00
ParamDescrs.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Params.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Pattern.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Probe.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Quantifier.cs fix #2460 2019-08-03 08:06:38 -07:00
RatNum.cs Dispose of intermediate Z3Objects created in dotnet api. (#5901) 2022-03-17 08:08:05 -07:00
README.md update path reference to readme 2023-12-05 13:47:05 -08:00
RealExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
RealSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
ReExpr.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
RelationSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
ReSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
SeqExpr.cs add multi-argument select for C# 2019-03-17 11:36:29 -07:00
SeqSort.cs charsort 2021-07-13 19:50:41 +02:00
SetSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Simplifiers.cs add simplifier to java API 2023-02-02 19:06:26 -08:00
Solver.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Sort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Statistics.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
Status.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
StringSymbol.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Symbol.cs Typo Fixes (#6803) 2023-07-09 11:56:10 -07:00
Tactic.cs remove DecRefQueue, use Z3_enable_concurrent_dec_ref (#6332) 2022-09-11 18:59:00 -07:00
TupleSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
UninterpretedSort.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
UserPropagator.cs Parallel solving (#7771) 2025-08-11 09:14:20 -07:00
Version.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Z3Exception.cs remove dependencies on contracts 2018-10-20 10:24:36 -07:00
Z3Object.cs Dotnet Api: Fix infinite finalization of Context (#6361) 2022-09-22 13:25:17 -05:00

Z3 Nuget Package

For more information see the Z3 github page