summaryrefslogtreecommitdiff
path: root/contrib
AgeCommit message (Collapse)Author
2021-05-27Enable new justification heuristic by default (#6613)Andrew Reynolds
This enables the new implementation of justification heuristic by default. Fixes #5454, fixes #5785. Fixes wishues 114, 115, 149, 160.
2021-05-12Preliminary draft of changes for SMT comp 2021 (#6522)Andrew Reynolds
Covers improvements to quantifiers.
2021-04-21Goodbye CVC4, hello cvc5! (#6371)Mathias Preiner
This commits changes the build system to cvc5 and removes the remaining occurrences of CVC4. It further cleans up outdated/unused scripts in contrib/.
2021-04-12Refactor and update copyright headers. (#6316)Aina Niemetz
2021-03-31Refactor GMP and Poly dependencies (#6245)Gereon Kremer
Refactors GMP and libpoly to also use external projects and be available within cmake as proper targets.
2021-03-31Refactor dependencies for external SAT solvers (#6215)Gereon Kremer
This PR refactors how we obtain, build and use the external SAT solvers used by CVC4: CaDiCaL, CryptoMiniSat and Kissat. All three contrib scripts are removed and instead an external project is integrated into the cmake find scripts.
2021-03-31Refactor SymFPU dependency (#6218)Gereon Kremer
This PR refactors the contrib script to download SymFPU to a cmake external project.
2021-03-27Refactor ANTLR3 dependency (#6202)Gereon Kremer
This PR refactors our first, and arguably most fragile, dependency. Right now all dependencies need to be manually installed (by calling the appropriate contrib/get-X script). For optional dependencies, we additionally need to enable them when calling the configure script (or via ccmake). This PR is the first step in refactoring all dependencies to be automatically build (if required) as an external project. Note that this not only eliminates the need to call contrib scripts, but also simplifies cross compilation: as all dependencies are now built within the build folders, every build folder has its own copy which may use different toolchains.
2021-03-24Refactor our integration of LFSC (#6201)Gereon Kremer
This PR further decouples LFSC from the remaining build system, but makes it more convenient to use at the same time. The contrib/get-lfsc-checker script is now completely standalone and installs LFSC and the necessary signatures to deps/, as well as wrapper scripts to conveniently run lfscc from there and directly check cvc4 proofs. The goal would be to automatically use LFSC in our regressions as well.
2021-03-15Disable sqlite (#6145)Gereon Kremer
Cryptominisat supports writing statistics to a sqlite3 database, and automatically enabled it when it can find sqlite bindings. This disables sqlite3, as we don't need it anyway. Fixes #6131.
2021-03-10Improved handing of 'lib64' vs. 'lib' for glpk-cut-log and antlr-3.4 (#6091)Andrew V. Jones
Signed-off-by: Andrew V. Jones <andrewvaughanj@gmail.com>
2021-03-09Update copyright headers to 2021. (#6081)Aina Niemetz
2021-03-08contrib: Do not use HOST env variable for cross-compilation host target. (#6078)Mathias Preiner
On some systems HOST is set by default to the host name. This commit adds a --host option for the get-antlr-3.4 and get-gmp-dev scripts. It further simplifies the machine type check in get-antlr-3.4 and updates the GMP version to 6.2.1.
2021-03-02Add aarch64 (ARM64) cross-compile support. (#6033)Mathias Preiner
This commit adds support for cross-compiling for aarch64 platforms and simplifies cross-compilation handling for Windows. The configure script now automatically downloads and cross-compiles the required dependencies ANTLR3 and GMP when passing option --arm64 or --win64. Fixes #1479 #5769.
2020-12-04update-copyright: Preserve file permissions. (#5597)Mathias Preiner
When updating the copyright headers file permissions were not preserved. In some cases this results in losing the permission to execute scripts. This commit makes sure to preserve the file permissions for updated files.
2020-11-16Improve accuracy of resource limitation (#4763)Gereon Kremer
The main goal of the resource limitation mechanism (via `--rlimit`) is to have a deterministic limitation on runtime. The ultimate goal would be that the actual runtime grows linearly with the spent resources. To achieve this, this PR does the following: - introduce new resources spent in places that are not yet covered - find resource weights that best approximate the runtime It provides a contrib script `learn_resource_weights.py` that uses statistics from a given benchmark run and uses linear regression to find good resource weights. The script also evaluates this estimate and identifies outliers, benchmarks for which this approximation is particularly bad. This probably indicates that on such a benchmark, some part of the code takes a significant amount of time but is not yet represented by a resource. Eventually, we should use the resulting resource weights as defaults for the options like `--rewrite-step`, `--theory-check-step`, etc.
2020-11-10Pin LFSC version (#5412)Alex Ozdemir
I chose commit 61ef1dc55d2bc909656f905699b28c99ddcfc518, which is missing: any changes to the OSX build process (We're still figuring this out) change to top-level identifier shadowing (we have a few versions of the signatures floating around, and I worry that they may not all be fixed w.r.t. no re-using identifiers)
2020-11-02contrib: Remove dependency directories. (#5367)Aina Niemetz
This automatically removes dependency directories for scripts that get external dependencies instead of aborting with an error.
2020-10-06Improve OSX support by adding os detection and adapting calls for OSX. (#5023)Malte Mues
On OSX there is another libtoolize tool already available. The gnu libtoolize version installed with MacPorts or brew is called glibtoolize. This change makes it easier to run the file on OSX. Signed-off-by: Malte Mues (mail.mues@gmail.com)
2020-09-22Update copyright header script to support CMake and Python files (#5067)Mathias Preiner
This PR updates the update-copyright.pl script to also update/add copyright headers to CMake specific files. It further fixes a small typo in the header.
2020-09-04Change the unavailable ABC mercury repository for the ABC solver code base ↵Malte Mues
on GitHub (#4989) Signed-off-by: Malte Mues (mail.mues@gmail.com)
2020-09-02Migrating from using the 'glpk-cut-log' repo to using an official GPLK ↵Andrew V. Jones
release + a set of patches (#4775) This PR attempts to migrate from @timothy-king's repo for glpk-cut-log to using a set of patches against the official release that 'glpk-cut-log' was based off of (4.52). This is in preparation of trying to rework these patches to be against the latest GPLK release (4.65). If we can do this, then it makes it easier for CVC4's dependancy on GPLK to be able to follow upstream (rather than being stuck on a release that is 6.5 years old!). I have added GPLK as an option for CI, but I do not know if we actually want this. My concern with adding this to CI is that we're then not testing non-GPL builds, which doesn't seem ideal. However, before starting to rework the patches to be against 4.65, I want to make sure that things are actually working/stable against 4.52; so having at least one CI target that does use GPLK would be great. Signed-off-by: Andrew V. Jones andrew.jones@vector.com
2020-09-01CMS: Update to version 5.8.0. (#4991)Aina Niemetz
2020-08-21Remove BV equality slicer (#4928)Andrew Reynolds
This class is not used based on our coverage tests (although it appears to be possibly enabled based on non-standard runtime checking of assertions), and uses the equality engine in a highly nonstandard way that will be a burden to the new standardization of equality engine in theory solvers. FYI @aniemetz @mpreiner
2020-07-17Integration of libpoly (#4679)Gereon Kremer
This commit integrates LibPoly into CVC4. It adds `contrib/get-poly`, adds it to the configure script, cmake and places where CVC4 inspects its own build configuration. Furthermore, it adds `CVC4::RealAlgebraicNumber` (which wraps `poly::AlgebraicNumber`) including some basic unit tests and some utilities.
2020-07-10Update competition scripts (#4715)Andrew Reynolds
This PR creates a "current" sygus comp scripts, similar to what we have been doing for SMT COMP. It updates these scripts to fix the option names, as many have changed recently. This also copies the SMT COMP current scripts to 2020, since they were used in the current state. @4tXJ7f let me know if this is not the case.
2020-06-30Fix GMP compilation for win64. (#4675)Mathias Preiner
2020-06-30contrib: Update to GMP 6.2.0, compile static and shared libraries. (#4671)Mathias Preiner
2020-06-22get-authors: Add alias for nafur. (#4646)Aina Niemetz
2020-06-19Add casc j10 scripts (#4621)Andrew Reynolds
Adds scripts submitted to CASC competition. Note that this version of CVC4 submitted to CASC was modified to allow models when --sort-inference is enabled, since model output is required.
2020-06-16Simplify sygus conversion script. (#4627)Abdalrhman Mohamed
2020-06-16Update copyright headers.Aina Niemetz
2020-06-03Fix normalization of author names in contrib/get-authors. (#4553)Mathias Preiner
2020-05-25Update to CaDiCaL version 1.2.1. (#4530)Mathias Preiner
2020-05-23[SMT-COMP] Redirect non-answers to /dev/null (#4528)Andres Noetzli
Commit 00badd3a63a2fa568373d5c58553944b579d42bb changed our run script to write output other than `sat`/`unsat` to a file if `$2` is passed to it. However, it looks like StarExec does not pass that parameter to our script despite the documentation claiming that it does [0]. This commit makes our check more defensive by redirecting our unnecessary output to `/dev/null` if `STAREXEC_WALLCLOCK_LIMIT` is set. I've done a quick test run on StarExec and it looks like this does the trick. [0] https://wiki.uiowa.edu/display/stardev/User+Guide#UserGuide-SpecialVariables
2020-05-22[SMT-COMP] Use tear-down-incremental for arithmetic (#4518)Andres Noetzli
This commit changes the run-script for the incremental track to use `--tear-down-incremental=1` for all logics that involve arithmetic. The main motivation for this change is avoid issues that we have with the lemmas generated for `mod`/`div` during `ppRewrite` that cause model-soundness issues.
2020-05-22Add support for SAT solver Kissat. (#4514)Aina Niemetz
2020-05-19Add a simple script to convert sygus v1 files to v2. (#4409)Abdalrhman Mohamed
2020-05-06Update run scripts for SMT-COMP 2020 (#4454)Andres Noetzli
This commit adds additional options for the model validation track and makes sure that non-"sat"/"unsat" outputs from the sequential porfolio approaches are written to a file instead of stderr when running on StarExec.
2020-05-01SMT-COMP 2020: Enable --fp-exp for new FP logics. (#4432)Aina Niemetz
2020-04-29SMT-COMP 2020: Fix scripts to use --no-type-checking instead of ↵Aina Niemetz
--no-checking. (#4417)
2020-04-28Updates to SMT COMP script for 20 minute timeout (#4406)Andrew Reynolds
Changes run script to be consistent for 20 minute timeout. This divides most of the previous time allocation by 2, with a few exceptions (for non-linear). It adds a configuration involving --no-arith-brab to QF_NIA and reallocates some time.
2020-04-28contrib/get-gmp: Rename and update install instructions with a warning. (#4407)Aina Niemetz
2020-04-28Support the SMT-LIB Unicode string standard by default (#4378)Andrew Reynolds
This PR merges --lang=smt2.6.1 and --lang=smt2.6 (default). It makes it so that 2.6 always expects the syntax of the string standard http://smtlib.cs.uiowa.edu/theories-UnicodeStrings.shtml. I've updated the regressions so that the 2.6 benchmarks are now compliant with the standard. Some of the <=2.5 benchmarks I've updated to 2.6. Others I have left for now, in particular the ones that rely on special characters or ad-hoc escape sequences. The old formats will be supported in the release but removed shortly afterwards. This PR is a prerequisite for the release, but not necessarily SMT-COMP (which will use --lang=smt2.6.1 if needed). Notice that we still do not have parsing support for str.replace_re or str.replace_re_all. This is required to be fully compliant.
2020-04-22Allow eager bitblasting with solve bv as int in QF_NIA (#4373)Andrew Reynolds
This also updates the SMT COMP script to revert to our previous behavior. This is required for SMT COMP. It should be beneficial for satisfiable QF_NIA instances. I will revisit/test this independently.
2020-04-20Make option names related to CEGQI consistent (#4316)Andrew Reynolds
This updates option names to be consistent across uses of counterexample-guided quantifier instantiation (ceqgi), which was previously called "counterexample-based quantifier instantiation" (cbqi), and sygus. Notably, the trace "cegqi-engine" is changed to "sygus-engine" by this commit. The changes were done by these commands in the given directories: src/: for f in $(find -name '.'); do sed -i 's/options::cbqi/options::cegqi/g' $f;sed -i 's/cegqi-engine/sygus-engine/g' $f; done;sed -i 's/"cbqi/"cegqi/g' $f; done test/regress/: for f in $(find -name '.'); do sed -i 's/--cbqi/--cegqi/g' $f; done src/: and test/regress/: for f in $(find -name '.'); do sed -i 's/cegqi-si/sygus-si/g' $f; done test/regress/: for f in $(find -name '.'); do sed -i 's/no-cbqi/no-cegqi/g' $f; done test/regress/: for f in $(find -name '.'); do sed -i 's/:cbqi/:cegqi/g' $f; done And a few minor fixes afterwards. This should be merged close to the time of the next stable release.
2020-04-16antlr: Use relative path in ANTLR script. (#4324)Mathias Preiner
This will fix the CI caching issues we sometimes encountered on GH actions.
2020-04-15Change option names --default-dag-thresh and --default-expr-depth (#4309)Andrew Reynolds
2020-04-06Remove links field in all toml files (#4201)Andrew Reynolds
This includes: All options pertaining to SMTEngine are now handled at the top of setDefaults. smtlibStrict was deleted in favor of a script. statsEveryQuery enables stats by modifying a public option function. This is a slight hack but this code will likely get refactored as well soon. A few other changes: Fix a bug in SMTEngine: defineFunction should finalize options. Call setDefaults before initilizing the TheoryEngine and ProofManager. This is necessary so that the PROOF(...) macro works earlier during initialization. The next step will be to remove the links infrastructure for the options infrastructure. This will enable further detangling of our options dependencies.
2020-03-31Fix install for ANTLR contrib script and CI dependency caching. (#4196)Mathias Preiner
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback