3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-19 03:23:10 +00:00
z3/src/params
Lev Nachmanson 6fb68ac010
Nl2lin - integrate a linear under approximation of a CAD cell by Valentin Promies. (#8982)
* outline of signature for assignment based conflict generation

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

* outline of interface contract

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

* remove confusing construction

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

* add material in nra-solver to interface

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

* add marshaling from nlsat lemmas into core solver

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

* tidy

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

* add call to check-assignment

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

* Nl2lin (#7795)

* add linearized projection in nlsat

* implement nlsat check for given assignment

* add some comments

* fixup loop

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

* updates

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

* fixes

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

* debug nl2lin

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

* Nl2lin (#7827)

* fix linear projection

* fix linear projection

* use an explicit cell description in check_assignment

* clean up (#7844)

* Simplify no effect checks in nla_core.cpp

Move up linear nlsat call to replace bounded nlsat.

* t

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

* t

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

* detangle mess

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

* remove the too early return

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

* do not set use_nra_model to true

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

* remove a comment

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

* add a hook to add new multiplication definitions in nla_core

* add internalization routine that uses macro-expanded polynomial representation

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

* add internalization routine that uses macro-expanded polynomial representation

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

* fixup backtranslation to not use roots

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

* call setup_assignment_solver instead of setup_solver

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

* debug the setup, still not working

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

* updated clang format

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

* simplify

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

* create polynomials with integer coefficients, use the hook to create new monomials

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

* integrating changes from master related to work with polynomials

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

* add forgotten files

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

* Update nlsat_explain.cpp

Remove a duplicate call

* fix

* move linear cell construction to levelwise

* fix

* fix

* Port throttle and soundness fixes from master

- Fix soundness: pop incomplete lemma from m_lemmas on add_lemma failure
- Gracefully handle root atoms in add_lemma
- Throttle check_assignment with failure counter (decrement on success)
- Add arith.nl.nra_check_assignment parameter

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add arith.nl.nra_check_assignment_max_fail parameter

Replace hardcoded failure threshold with configurable parameter (default 10).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add cha_abort_on_fail parameter to control failure counter decrement

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* abort nla check_assignment after a set number of allowed failures

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

* Add missing AST query methods to Java API (#8977)

* add Expr.isGround() to Java API

Expose Z3_is_ground as a public method on Expr. Returns true when the
expression contains no free variables.

* add Expr.isLambda() to Java API

Expose Z3_is_lambda as a public method on Expr. Returns true when the
expression is a lambda quantifier.

* add AST.getDepth() to Java API

Expose Z3_get_depth as a public method on AST. Returns the maximum
number of nodes on any path from root to leaf.

* add ArraySort.getArity() to Java API

Expose Z3_get_array_arity as a public method on ArraySort. Returns
the number of dimensions of a multi-dimensional array sort.

* add DatatypeSort.isRecursive() to Java API

Expose Z3_is_recursive_datatype_sort as a public method on
DatatypeSort. Returns true when the datatype refers to itself.

* add FPExpr.isNumeral() to Java API

Expose Z3_fpa_is_numeral as a public method on FPExpr. Returns true
when the expression is a concrete floating-point value.

* add isGroundExample test to JavaExample

Test Expr.isGround() on constants, variables, and compound
expressions.

* add astDepthExample test to JavaExample

Test AST.getDepth() on leaf nodes and nested expressions to verify
the depth computation.

* add arrayArityExample test to JavaExample

Test ArraySort.getArity() on single-domain and multi-domain array
sorts.

* add recursiveDatatypeExample test to JavaExample

Test DatatypeSort.isRecursive() on a recursive list datatype and a
non-recursive pair datatype.

* add fpNumeralExample test to JavaExample

Test FPExpr.isNumeral() on a floating point constant and a symbolic
variable.

* add isLambdaExample test to JavaExample

Test Expr.isLambda() on a lambda expression and a plain variable.

* change the default number of failures in check_assignment to 7

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

* Fix high and medium priority API coherence issues (Go, Java, C++, TypeScript) (#8983)

* Initial plan

* Add missing API functions to Go, Java, C++, and TypeScript bindings

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>

* qf-s-benchmark: debug build + seq tracing + seq-fast/nseq-slow trace analysis (#8988)

* Initial plan

* Update qf-s-benchmark: debug build, seq tracing, trace analysis

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>

* disable linear approximation by default to check the merge

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

* set check_assignment to true

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

* fix restore_x by recalulating new column values

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

* fix restore_x by recalulating new column values

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

* fix a memory leak

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

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: ValentinPromies <44966217+ValentinPromies@users.noreply.github.com>
Co-authored-by: Valentin Promies <valentin.promies@rwth-aachen.de>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Angelica Moreira <48168649+angelica-moreira@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-15 06:13:04 -10:00
..
arith_rewriter_params.pyg shuffle dependencies 2020-08-29 09:51:39 -07:00
array_rewriter_params.pyg #5516 2021-09-01 17:44:17 -07:00
bit_blaster_params.h don't flush stream when printing param vals 2023-01-03 09:35:17 +00:00
bool_rewriter_params.pyg turn on ite simplification by default 2025-03-26 11:30:08 -07:00
bv_rewriter_params.pyg fix #5929 - add parameter bv_le2extract to allow disabling the disassembly to extract 2022-03-27 18:23:41 -10:00
CMakeLists.txt Some changes to improve LIA performance (#8101) 2025-12-22 17:47:36 +00:00
context_params.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
context_params.h add warning messages for #7100 2024-01-30 21:30:37 -08:00
dyn_ack_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
dyn_ack_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
fpa2bv_rewriter_params.pyg move fpa 2020-08-29 11:16:21 -07:00
fpa_rewriter_params.pyg move parameters from ast/rewriter to params 2020-08-29 11:11:16 -07:00
pattern_inference_params.cpp add parameter to disable pattern inference #6884 2023-09-03 15:27:37 -07:00
pattern_inference_params.h add parameter to disable pattern inference #6884 2023-09-03 15:27:37 -07:00
pattern_inference_params_helper.pyg add parameter to disable pattern inference #6884 2023-09-03 15:27:37 -07:00
poly_rewriter_params.pyg move parameters from ast/rewriter to params 2020-08-29 11:11:16 -07:00
preprocessor_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
preprocessor_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
qi_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
qi_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
rewriter_params.pyg fix #8109 2026-01-07 10:56:50 -08:00
sat_params.pyg remove stale experimental code #8063 2025-12-12 05:49:05 +00:00
seq_rewriter_params.pyg move parameters from ast/rewriter to params 2020-08-29 11:11:16 -07:00
sls_params.pyg update release version 2025-01-31 09:29:28 -08:00
smt_parallel_params.pyg Add SLS tactic as a separate worker thread (#8263) 2026-01-20 12:52:00 -08:00
smt_params.cpp remove theory_str and classes that are only used by it 2025-08-07 21:05:12 -07:00
smt_params.h remove theory_str and classes that are only used by it 2025-08-07 21:05:12 -07:00
smt_params_helper.pyg Nl2lin - integrate a linear under approximation of a CAD cell by Valentin Promies. (#8982) 2026-03-15 06:13:04 -10:00
solver_params.pyg A slice solver option for interactive use case 2024-10-08 09:24:52 -07:00
tactic_params.pyg add missing dependencies 2025-06-09 13:05:09 -07:00
theory_arith_params.cpp add option to control epsilon #7791 2025-08-17 16:51:00 -07:00
theory_arith_params.h add option to control epsilon #7791 2025-08-17 16:51:00 -07:00
theory_array_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_array_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_bv_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_bv_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_datatype_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_pb_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_pb_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_seq_params.cpp move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
theory_seq_params.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00