head 1.20; access; symbols pkgsrc-2023Q4:1.19.0.4 pkgsrc-2023Q4-base:1.19 pkgsrc-2023Q3:1.19.0.2 pkgsrc-2023Q3-base:1.19 pkgsrc-2023Q2:1.18.0.2 pkgsrc-2023Q2-base:1.18 pkgsrc-2023Q1:1.17.0.6 pkgsrc-2023Q1-base:1.17 pkgsrc-2022Q4:1.17.0.4 pkgsrc-2022Q4-base:1.17 pkgsrc-2022Q3:1.17.0.2 pkgsrc-2022Q3-base:1.17 pkgsrc-2022Q2:1.16.0.2 pkgsrc-2022Q2-base:1.16 pkgsrc-2022Q1:1.15.0.10 pkgsrc-2022Q1-base:1.15 pkgsrc-2021Q4:1.15.0.8 pkgsrc-2021Q4-base:1.15 pkgsrc-2021Q3:1.15.0.6 pkgsrc-2021Q3-base:1.15 pkgsrc-2021Q2:1.15.0.4 pkgsrc-2021Q2-base:1.15 pkgsrc-2021Q1:1.15.0.2 pkgsrc-2021Q1-base:1.15 pkgsrc-2020Q4:1.14.0.14 pkgsrc-2020Q4-base:1.14 pkgsrc-2020Q3:1.14.0.12 pkgsrc-2020Q3-base:1.14 pkgsrc-2020Q2:1.14.0.10 pkgsrc-2020Q2-base:1.14 pkgsrc-2020Q1:1.14.0.6 pkgsrc-2020Q1-base:1.14 pkgsrc-2019Q4:1.14.0.8 pkgsrc-2019Q4-base:1.14 pkgsrc-2019Q3:1.14.0.4 pkgsrc-2019Q3-base:1.14 pkgsrc-2019Q2:1.14.0.2 pkgsrc-2019Q2-base:1.14 pkgsrc-2019Q1:1.13.0.4 pkgsrc-2019Q1-base:1.13 pkgsrc-2018Q4:1.13.0.2 pkgsrc-2018Q4-base:1.13 pkgsrc-2018Q3:1.11.0.2 pkgsrc-2018Q3-base:1.11 pkgsrc-2018Q2:1.10.0.2 pkgsrc-2018Q2-base:1.10 pkgsrc-2018Q1:1.9.0.2 pkgsrc-2018Q1-base:1.9 pkgsrc-2017Q4:1.5.0.6 pkgsrc-2017Q4-base:1.5 pkgsrc-2017Q3:1.5.0.4 pkgsrc-2017Q3-base:1.5 pkgsrc-2017Q2:1.3.0.4 pkgsrc-2017Q2-base:1.3 pkgsrc-2017Q1:1.3.0.2 pkgsrc-2017Q1-base:1.3 pkgsrc-2016Q4:1.2.0.6 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.4 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.2 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.1.0.4 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.2 pkgsrc-2015Q4-base:1.1; locks; strict; comment @# @; 1.20 date 2024.01.23.20.01.03; author adam; state Exp; branches; next 1.19; commitid uA7ky0RJzyZXXBVE; 1.19 date 2023.08.14.05.24.50; author wiz; state Exp; branches; next 1.18; commitid LOSB79OLVxvXjIAE; 1.18 date 2023.05.11.06.43.43; author adam; state Exp; branches; next 1.17; commitid NkSzgCRCxrwEOvoE; 1.17 date 2022.09.25.11.01.34; author he; state Exp; branches; next 1.16; commitid VExjL7vxedcYyeVD; 1.16 date 2022.05.24.18.51.53; author jaapb; state Exp; branches; next 1.15; commitid tyn8C2gxw4eI9lFD; 1.15 date 2021.03.08.08.13.03; author jaapb; state Exp; branches; next 1.14; commitid ZSVtQ5nGxDdxPtKC; 1.14 date 2019.04.25.07.33.06; author maya; state Exp; branches; next 1.13; commitid 1FEMQBEPb9uTxHkB; 1.13 date 2018.12.18.06.46.39; author kamil; state Exp; branches; next 1.12; commitid vgESWChRmqlWof4B; 1.12 date 2018.11.12.16.10.24; author jaapb; state Exp; branches; next 1.11; commitid FZB9fL8bVKwuHFZA; 1.11 date 2018.07.19.15.15.27; author jaapb; state Exp; branches; next 1.10; commitid ZBwJ6cko9yxK7LKA; 1.10 date 2018.04.13.13.55.35; author jaapb; state Exp; branches; next 1.9; commitid A49DCkSjqvvBNhyA; 1.9 date 2018.03.13.21.20.34; author khorben; state Exp; branches; next 1.8; commitid JoV2xrYLShLKfluA; 1.8 date 2018.03.13.00.31.16; author khorben; state Exp; branches; next 1.7; commitid p9NJNo2DxEyEkeuA; 1.7 date 2018.02.27.08.34.16; author wiz; state Exp; branches; next 1.6; commitid JchhVfJvVs7bttsA; 1.6 date 2018.01.10.16.53.12; author jaapb; state Exp; branches; next 1.5; commitid pYranbFo2xN1MlmA; 1.5 date 2017.09.08.09.51.24; author jaapb; state Exp; branches; next 1.4; commitid QlPKma5uQMhrqn6A; 1.4 date 2017.07.11.14.19.20; author jaapb; state Exp; branches; next 1.3; commitid zRtIS2jVq0FXNOYz; 1.3 date 2016.12.30.11.17.00; author jaapb; state Exp; branches; next 1.2; commitid 4UT4oNjI9i6XZZzz; 1.2 date 2016.05.05.11.45.40; author jaapb; state Exp; branches; next 1.1; commitid hgz2yCFtg7paQh5z; 1.1 date 2015.11.24.05.45.58; author dholland; state Exp; branches; next ; commitid OXRKcwxUA0WA5jKy; desc @@ 1.20 log @z3 py-z3: updated to 4.12.5 z3-4.12.5 update release scripts and notes track quantifier instantiation method in proof hint prepare for release add status badge for windows build, remove windows build from Azure pipelines add Windows build free memory the clean way free memory the clean way encapsulate anum functionality add explicit move constructor to deal with unit test regression test-z3 algebraic on Windows/debug - encapsulate mpz a bit more @ text @# $NetBSD: Makefile,v 1.19 2023/08/14 05:24:50 wiz Exp $ .include "Makefile.common" COMMENT= The Z3 theorem prover / SMT solver .include "../../devel/cmake/build.mk" .include "../../mk/bsd.pkg.mk" @ 1.19 log @*: recursive bump for Python 3.11 as new default @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.18 2023/05/11 06:43:43 adam Exp $ a2 1 PKGREVISION= 1 @ 1.18 log @z3 py-z3: updated to 4.12.1 Version 4.12.1 ============== - change macos build to use explicit reference to Macos version 11. Hosted builds are migrating to macos-12 and it broke a user Version 4.12.0 ============== - add clause logging API. - The purpose of logging API and self-checking is to enable an array of use cases. - proof mining (what instantiations did Z3 use)? - A refresh of the AxiomProfiler could use the logging API. The (brittle) trace feature should be deprecated. - debugging - a built-in self certifier implements a custom proof checker for the format used by the new solver (sat.euf=true). - other potential options: - integration into certified tool chains - interpolation - Z3_register_on_clause (also exposed over C++, Python and .Net) - it applies to z3's main CDCL(T) core and a new CDCL(T) core (sat.euf=true). - The added API function allows to register a callback for when clauses are inferred. More precisely, when clauses are assumed (as part of input), deleted, or deduced. Clauses that are deduced by the CDCL SAT engine using standard inferences are marked as 'rup'. Clauses that are deduced by theories are marked by default by 'smt', and when more detailed information is available with proof hints or proof objects. Instantations are considered useful to track so they are logged using terms of the form (inst (not (forall (x) body)) body[t/x] (bind t)), where 'inst' is a name of a function that produces a proof term representing the instantiation. - add options for proof logging, trimming, and checking for the new core. - sat.smt.proof (symbol) add SMT proof to file (default: ) - sat.smt.proof.check (bool) check SMT proof while it is created (default: false) - it applies a custom self-validator. The self-validator comprises of several small checkers and represent a best-effort validation mechanism. If there are no custom validators associated with inferences, or the custom validators fail to certify inferences, the self-validator falls back to invoking z3 (SMT) solving on the lemma. - euf - propagations and conflicts from congruence closure (theory of equality and uninterpreted functions) are checked based on a proof format that tracks uses of congruence closure and equalities. It only performs union find operations. - tseitin - clausification steps are checked for Boolean operators. - farkas, bound, implies_eq - arithmetic inferences that can be justified using a combination of Farkas lemma and cuts are checked. Note: the arithmetic solver may produce proof hints that the proof checker cannot check. It is mainly a limitation of the arithmetic solver not pulling relevant information. Ensuring a tight coupling with proof hints and the validator capabilites is open ended future work and good material for theses. - bit-vector inferences - are treated as trusted (there is no validation, it always blindly succeeds) - arrays, datatypes - there is no custom validation for other theories at present. Lemmas are validated using SMT. - sat.smt.proof.check_rup (bool) apply forward RUP proof checking (default: true) - this option can incur significant runtime overhead. Effective proof checking relies on first trimming proofs into a format where dependencies are tracked and then checking relevant inferences. Turn this option off if you just want to check theory inferences. - add options to validate proofs offline. It applies to proofs saved when sat.smt.proof is set to a valid file name. - solver.proof.check (bool) check proof logs (default: true) - the option sat.smt.proof_check_rup can be used to control what is checked - solver.proof.save (bool) save proof log into a proof object that can be extracted using (get-proof) (default: false) - experimental: saves a proof log into a term - solver.proof.trim (bool) trim the offline proof and print the trimmed proof to the console - experimental: performs DRUP trimming to reduce the set of hypotheses and inferences relevant to derive the empty clause. - JS support for Arrays, thanks to Walden Yan - More portable memory allocation, thanks to Nuno Lopes (avoid custom handling to calculate memory usage) - clause logging and proofs: many open-ended directions. Many directions and functionality features remain in an open-ended state, subject to fixes, improvements, and contributions. We list a few of them here: - comprehensive efficient self-validators for arithmetic, and other theories - an efficient proof checker when several theory solvers cooperate in a propagation or conflict. The theory combination case is currently delegated to the smt solver. The proper setup for integrating theory lemmas is in principle not complicated, but the implementation requires some changes. - external efficient proof validators (based on certified tool chains) can be integrated over the API. - dampening repeated clauses: A side-effect of conflict resolution is to log theory lemmas. It often happens that the theory lemma becomes the conflict clause, that is then logged as rup. Thus, two clauses are logged. - support for online trim so that proofs generated using clause logging can be used for SPACER - SPACER also would benefit from more robust proof hints for arithmetic lemmas (bounds and implied equalities are sometimes not logged correctly) - integration into axiom profiling through online and/or offline interfaces. - an online interface attaches a callback with a running solver. This is available. - an offline interface saves a clause proof to a file (currently just supported for sat.euf) and then reads the file in a separate process The separate process attaches a callback on inferred clauses. This is currently not available but a relatively small feature. - more detailed proof hints for the legacy solver clause logger. Other than quantifier instantiations, no detailed information is retained for theory clauses. - integration of pre-processing proofs with logging proofs. There is currently no supported bridge to create a end-to-end proof objects. - experimental API for accessing E-graphs. Exposed over Python. This API should be considered temporary and subject to be changed depending on use cases or removed. The functions are `Z3_solver_congruence_root`, `Z3_solver_congruence_next`. Version 4.11.2 ============== - add error handling to fromString method in JavaScript - fix regression in default parameters for CDCL, thanks to Nuno Lopes - fix model evaluation bugs for as-array nested under functions (data-type constructors) - add rewrite simplifications for datatypes with a single constructor - add "Global Guidance" capability to SPACER, thanks to Arie Gurfinkel and Hari Gorvind. The commit logs related to Global Guidance contain detailed information. - change proof logging format for the new core to use SMTLIB commands. The format was so far an extension of DRAT used by SAT solvers, but not well compatible with SMT format that is extensible. The resulting format is a mild extension of SMTLIB with three extra commands assume, learn, del. They track input clauses, generated clauses and deleted clauses. They are optionally augmented by proof hints. Two proof hints are used in the current version: "rup" and "farkas". "rup" is used whent the generated clause can be justified by reverse unit propagation. "farkas" is used when the clause can be justified by a combination of Farkas cutting planes. There is a built-in proof checker for the format. Quantifier instantiations are also tracked as proof hints. Other proof hints are to be added as the feature set is tested and developed. The fallback, buit-in, self-checker uses z3 to check that the generated clause is a consequence. Note that this is generally insufficient as generated clauses are in principle required to only be satisfiability preserving. Proof checking and tranformation operations is overall open ended. The log for the first commit introducing this change contains further information on the format. - fix to re-entrancy bug in user propagator (thanks to Clemens Eisenhofer). - handle _toExpr for quantified formulas in JS bindings @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.17 2022/09/25 11:01:34 he Exp $ d3 1 @ 1.17 log @math/z3: make this build on NetBSD/macppc 9.99.99. Fixes two issues: * is only available on amd64 and i386 (I think...) * The scanner depends on signed chars a number of places. Sprinkle "signed" a minimal set of places to make this explicit, to deal with powerpc where "char" == "unsigned char". Bump PKGREVISION. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.16 2022/05/24 18:51:53 jaapb Exp $ d4 1 a4 1 PKGREVISION= 4 d7 1 a7 2 .include "options.mk" @ 1.16 log @Recursive revbump associated with update of ocaml. Also change of mk/ocaml.mk to lang/ocaml/ocaml.mk. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.15 2021/03/08 08:13:03 jaapb Exp $ d4 1 a4 1 PKGREVISION= 3 @ 1.15 log @Recursive revbump associated with update of lang/ocaml @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.14 2019/04/25 07:33:06 maya Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.14 log @PKGREVISION bump for anything using python without a PYPKGPREFIX. This is a semi-manual PKGREVISION bump. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.13 2018/12/18 06:46:39 kamil Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.13 log @z3: Upgrade to 4.8.3 Eliminate merged patches. Improve java support. Patch by Michal Gorny. Upstream changelog ================== 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 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. 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. 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. 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 Official release Z3 4.6.0. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2018/11/12 16:10:24 jaapb Exp $ d4 1 a4 1 @ 1.12 log @Revbumps associated with update of lang/ocaml. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2018/07/19 15:15:27 jaapb Exp $ a4 1 PKGREVISION= 4 @ 1.11 log @Recursive revbump associated with the update of lang/ocaml to 4.07. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2018/04/13 13:55:35 jaapb Exp $ d5 1 a5 1 PKGREVISION= 3 @ 1.10 log @Revbump associated with the upgrade of lang/ocaml (this is the upgrade from 4.06 to 4.06.1) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2018/03/13 21:20:34 khorben Exp $ d5 1 a5 1 PKGREVISION= 2 @ 1.9 log @Re-introduce support for NetBSD in src/util/scoped_timer.cpp I forgot to patch this part in the latest update; sorry. This has now been submitted upstream as well. Originally from dholland@@. Compile-tested on NetBSD/amd64. Bump PKGREVISION. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2018/03/13 00:31:16 khorben Exp $ d5 1 a5 1 PKGREVISION= 1 @ 1.8 log @Update math/z3 to version 4.5.0 From the release notes: New features: - New theories of strings and sequences. - Incremental consequence finder for finite domains. - CMake build system (thanks @@delcypher). - Updated and improved OCaml API (thanks @@martin-neuhaeusser). - Updated and improved Java API (thanks @@cheshire). - New resource limit facilities to avoid non-deterministic timeout behaviour. - New bit-vector simplification and ackermannization tactics (thanks @@MikolasJanota, @@nunoplopes). - QSAT: a new solver for quantified arithmetic problems. See: Bjorner, Janota: Playing with Quantified Satisfaction, LPAR 2016. A multitude of bugs has been fixed. I am about to commit a separate package for the Python bindings. Coordinated with dholland@@ @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2018/02/27 08:34:16 wiz Exp $ d5 1 @ 1.7 log @z3: forbid python 3.x First complains about indentation problems, then about reading non-ASCII bytes. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2018/01/10 16:53:12 jaapb Exp $ d3 1 a3 9 DISTNAME= z3-4.4.1 GITHUB_TAG= ${DISTNAME} PKGREVISION= 5 CATEGORIES= math MASTER_SITES= ${MASTER_SITE_GITHUB:=Z3Prover/} PATCHFILES+= z3-jumbo-patch-20151123.gz SITES.z3-jumbo-patch-20151123.gz=\ http://www.NetBSD.org/~dholland/patchkits/z3/ PATCH_DIST_STRIP= -p1 a4 2 MAINTAINER= dholland@@NetBSD.org HOMEPAGE= https://github.com/Z3Prover/z3/ a5 12 LICENSE= mit WRKSRC= ${WRKDIR}/z3-${DISTNAME} HAS_CONFIGURE= yes USE_LANGUAGES= c c++ BUILD_DIRS= build PY_PATCHPLIST= yes PYTHON_VERSIONS_ACCEPTED= 27 CONFIGURE_ENV+= PYTHON=${PYTHONBIN} CONFIGURE_ARGS+= --destdir=${DESTDIR} --prefix=${PREFIX} a8 1 .include "../../lang/python/extension.mk" @ 1.6 log @Recursive revbump associated with the update to OCaml 4.06. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2017/09/08 09:51:24 jaapb Exp $ d24 2 @ 1.5 log @Recursive revbump associated with update of ocaml to 4.05 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2017/07/11 14:19:20 jaapb Exp $ d5 1 a5 1 PKGREVISION= 4 @ 1.4 log @Revbump associated with ocaml-4.04.2 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2016/12/30 11:17:00 jaapb Exp $ d5 1 a5 1 PKGREVISION= 3 @ 1.3 log @Recursive revbump associated with ocaml update to 4.04. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2016/05/05 11:45:40 jaapb Exp $ d5 1 a5 1 PKGREVISION= 2 @ 1.2 log @Recursive revbump associated with ocaml update. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2015/11/24 05:45:58 dholland Exp $ d5 1 a5 1 PKGREVISION= 1 @ 1.1 log @Package the Z3 theorem prover / SMT solver from Microsoft Research. @ text @d1 1 a1 1 # $NetBSD$ d5 1 @