cvc5.git
6 years agocmake: Disable unit tests if assertions are not enabled.
Mathias Preiner [Sat, 15 Sep 2018 07:03:27 +0000 (00:03 -0700)]
cmake: Disable unit tests if assertions are not enabled.

6 years agocmake: FindANTLR: Check if antlr3FileStreamNew is available.
Mathias Preiner [Sat, 15 Sep 2018 00:23:30 +0000 (17:23 -0700)]
cmake: FindANTLR: Check if antlr3FileStreamNew is available.

6 years agocmake: configure.sh wrapper: Fixes for sh.
Mathias Preiner [Fri, 14 Sep 2018 23:00:23 +0000 (16:00 -0700)]
cmake: configure.sh wrapper: Fixes for sh.

6 years agotravis: Switch to cmake.
Mathias Preiner [Fri, 14 Sep 2018 22:08:46 +0000 (15:08 -0700)]
travis: Switch to cmake.

6 years agocmake: Do not build examples and unit and system tests by default.
Aina Niemetz [Fri, 14 Sep 2018 21:21:35 +0000 (14:21 -0700)]
cmake: Do not build examples and unit and system tests by default.

6 years agocmake: configure.sh wrapper: Add --name option.
Mathias Preiner [Fri, 14 Sep 2018 20:33:44 +0000 (13:33 -0700)]
cmake: configure.sh wrapper: Add --name option.

6 years agocmake: examples: Configure output directory per target.
Aina Niemetz [Fri, 14 Sep 2018 18:50:07 +0000 (11:50 -0700)]
cmake: examples: Configure output directory per target.

6 years agocmake: Added java examples
Aina Niemetz [Fri, 14 Sep 2018 18:24:15 +0000 (11:24 -0700)]
cmake: Added java examples

6 years agocmake: configure.sh wrapper: Add --prefix for install directory.
Mathias Preiner [Fri, 14 Sep 2018 17:25:49 +0000 (10:25 -0700)]
cmake: configure.sh wrapper: Add --prefix for install directory.

6 years agocmake: Add some more documentation, cleanup.
Mathias Preiner [Fri, 14 Sep 2018 00:48:04 +0000 (17:48 -0700)]
cmake: Add some more documentation, cleanup.

6 years agocmake: Move helper functions to cmake/Helpers.cmake.
Mathias Preiner [Fri, 14 Sep 2018 00:03:54 +0000 (17:03 -0700)]
cmake: Move helper functions to cmake/Helpers.cmake.

6 years agocmake: Added target examples (currently .cpp examples only)
Aina Niemetz [Thu, 13 Sep 2018 00:59:57 +0000 (17:59 -0700)]
cmake: Added target examples (currently .cpp examples only)

6 years agocmake: Simplify build type configuration.
Mathias Preiner [Wed, 12 Sep 2018 20:58:41 +0000 (13:58 -0700)]
cmake: Simplify build type configuration.

6 years agocmake: Refactor and clean up build profile printing.
Aina Niemetz [Wed, 12 Sep 2018 20:02:49 +0000 (13:02 -0700)]
cmake: Refactor and clean up build profile printing.

6 years agocmake: Added target check
Aina Niemetz [Wed, 12 Sep 2018 16:15:04 +0000 (09:15 -0700)]
cmake: Added target check

Targets 'check', 'units', 'systemtests' and 'regress' are now run in
parallel with the number of available cores by default. This can be
overriden by passing ARGS=-jN.

6 years agocmake: Add make install rule.
Mathias Preiner [Wed, 12 Sep 2018 18:10:01 +0000 (11:10 -0700)]
cmake: Add make install rule.

6 years agocmake: configure.sh wrapper: Fix handling of options with arguments.
Aina Niemetz [Tue, 11 Sep 2018 22:34:48 +0000 (15:34 -0700)]
cmake: configure.sh wrapper: Fix handling of options with arguments.

6 years agocmake: Add module finder for Valgrind.
Mathias Preiner [Tue, 11 Sep 2018 17:54:20 +0000 (10:54 -0700)]
cmake: Add module finder for Valgrind.

6 years agocmake: Various CMakeLists.txt fixes/cleanup.
Mathias Preiner [Tue, 11 Sep 2018 17:30:07 +0000 (10:30 -0700)]
cmake: Various CMakeLists.txt fixes/cleanup.

6 years agocmake: Only build libcvc4 and libcvc4parser as libraries.
Mathias Preiner [Wed, 12 Sep 2018 07:08:19 +0000 (00:08 -0700)]
cmake: Only build libcvc4 and libcvc4parser as libraries.

The sources of all previous libraries are now added to libcvc4 and built as
libcvc4. This removes circular  dependencies between libcvc4 and libexpr.
Further, we now only have one parser library and don't build additional
libraries for each language.

6 years agocmake: Move find_package to where it is actually needed.
Mathias Preiner [Mon, 10 Sep 2018 18:35:14 +0000 (11:35 -0700)]
cmake: Move find_package to where it is actually needed.

6 years agocmake: configure.sh wrapper: Removed env vars help text.
Aina Niemetz [Tue, 11 Sep 2018 16:11:41 +0000 (09:11 -0700)]
cmake: configure.sh wrapper: Removed env vars help text.

6 years agocmake: configure.sh wrapper: Configurable build directory
Aina Niemetz [Mon, 10 Sep 2018 16:30:35 +0000 (09:30 -0700)]
cmake: configure.sh wrapper: Configurable build directory

6 years agocmake: configure.sh wrapper: Create build dirs for configurations
Aina Niemetz [Fri, 7 Sep 2018 23:45:42 +0000 (16:45 -0700)]
cmake: configure.sh wrapper: Create build dirs for configurations

6 years agocmake: configure.sh wrapper: done (except: configurable build dir)
Aina Niemetz [Fri, 7 Sep 2018 21:14:56 +0000 (14:14 -0700)]
cmake: configure.sh wrapper: done (except: configurable build dir)

6 years agocmake: Updated and prettified configuration printing.
Aina Niemetz [Fri, 7 Sep 2018 21:13:44 +0000 (14:13 -0700)]
cmake: Updated and prettified configuration printing.

6 years agocmake: configure.sh wrapper: option parsing
Aina Niemetz [Fri, 7 Sep 2018 00:12:15 +0000 (17:12 -0700)]
cmake: configure.sh wrapper: option parsing

6 years agocmake: Add ENABLE_DEBUG_CONTEXT_MM to enable the debug context memory manager.
Aina Niemetz [Thu, 6 Sep 2018 22:53:13 +0000 (15:53 -0700)]
cmake: Add ENABLE_DEBUG_CONTEXT_MM to enable the debug context memory manager.

6 years agocmake: Add ENABLE_BEST to enable best configuration of dependencies.
Aina Niemetz [Thu, 6 Sep 2018 22:35:55 +0000 (15:35 -0700)]
cmake: Add ENABLE_BEST to enable best configuration of dependencies.

6 years agocmake: Add Java runtime as required dependency (required for ANTLR).
Mathias Preiner [Thu, 6 Sep 2018 23:46:37 +0000 (16:46 -0700)]
cmake: Add Java runtime as required dependency (required for ANTLR).

6 years agocmake: Add convenience wrappers for tag generation.
Mathias Preiner [Thu, 6 Sep 2018 23:16:51 +0000 (16:16 -0700)]
cmake: Add convenience wrappers for tag generation.

6 years agocmake: Add library versioning for libcvc4.so.
Mathias Preiner [Thu, 6 Sep 2018 16:18:07 +0000 (09:18 -0700)]
cmake: Add library versioning for libcvc4.so.

6 years agocmake: Rebase with current master, add new tests/source files.
Mathias Preiner [Wed, 5 Sep 2018 21:00:52 +0000 (14:00 -0700)]
cmake: Rebase with current master, add new tests/source files.

6 years agocmake: Add missing checks for cvc4autoconfig.h to ConfigureCVC4.cmake.
Mathias Preiner [Tue, 4 Sep 2018 18:40:46 +0000 (11:40 -0700)]
cmake: Add missing checks for cvc4autoconfig.h to ConfigureCVC4.cmake.

6 years agocmake: Use target specific includes for libcvc4.
Mathias Preiner [Fri, 31 Aug 2018 16:11:23 +0000 (09:11 -0700)]
cmake: Use target specific includes for libcvc4.

Further, print definitions added with add_definitions(...).

6 years agocmake: Add missing dependency.
Mathias Preiner [Fri, 31 Aug 2018 16:10:50 +0000 (09:10 -0700)]
cmake: Add missing dependency.

6 years agocmake: Add support for building static binaries/libraries.
Mathias Preiner [Wed, 29 Aug 2018 17:26:10 +0000 (10:26 -0700)]
cmake: Add support for building static binaries/libraries.

6 years agocmake: Add options for specifying install directories for dependencies.
Mathias Preiner [Wed, 29 Aug 2018 15:20:31 +0000 (08:20 -0700)]
cmake: Add options for specifying install directories for dependencies.

6 years agocmake: Add module finder for GLPK-cut-log.
Mathias Preiner [Sat, 25 Aug 2018 06:14:32 +0000 (23:14 -0700)]
cmake: Add module finder for GLPK-cut-log.

6 years agocmake: Add module finder for ABC.
Mathias Preiner [Sat, 25 Aug 2018 02:27:37 +0000 (19:27 -0700)]
cmake: Add module finder for ABC.

6 years agocmake: Compile Java tests and add to ctest if Java bindings are enabled.
Mathias Preiner [Fri, 24 Aug 2018 22:11:03 +0000 (15:11 -0700)]
cmake: Compile Java tests and add to ctest if Java bindings are enabled.

6 years agocmake: Add SWIG support + Python and Java bindings.
Mathias Preiner [Fri, 24 Aug 2018 19:52:49 +0000 (12:52 -0700)]
cmake: Add SWIG support + Python and Java bindings.

6 years agocmake: Add dependencies for test targets and support for make coverage.
Aina Niemetz [Wed, 22 Aug 2018 15:46:50 +0000 (08:46 -0700)]
cmake: Add dependencies for test targets and support for make coverage.

6 years agocmake: Various portfolio/default option fixes.
Mathias Preiner [Tue, 21 Aug 2018 02:39:32 +0000 (19:39 -0700)]
cmake: Various portfolio/default option fixes.

6 years agocmake: Enable parallel execution for test targets regress, units, systemtests.
Aina Niemetz [Tue, 21 Aug 2018 01:40:27 +0000 (18:40 -0700)]
cmake: Enable parallel execution for test targets regress, units, systemtests.

6 years agocmake: Build unit tests only if -DENABLE_UNIT_TESTING=ON.
Aina Niemetz [Tue, 21 Aug 2018 01:39:10 +0000 (18:39 -0700)]
cmake: Build unit tests only if -DENABLE_UNIT_TESTING=ON.

6 years agocmake: Added system tests and target make systemtests.
Aina Niemetz [Tue, 21 Aug 2018 00:26:56 +0000 (17:26 -0700)]
cmake: Added system tests and target make systemtests.

6 years agocmake: Added regression tests and target make regress.
Aina Niemetz [Sat, 18 Aug 2018 01:25:27 +0000 (18:25 -0700)]
cmake: Added regression tests and target make regress.

6 years agocmake: Add portfolio support.
Mathias Preiner [Sat, 18 Aug 2018 01:11:26 +0000 (18:11 -0700)]
cmake: Add portfolio support.

6 years agocmake: Add ASAN support.
Mathias Preiner [Fri, 17 Aug 2018 23:59:09 +0000 (16:59 -0700)]
cmake: Add ASAN support.

6 years agocmake: Enable shared by default.
Mathias Preiner [Fri, 17 Aug 2018 23:58:27 +0000 (16:58 -0700)]
cmake: Enable shared by default.

Further, force shared builds in case of unit tests.

6 years agocmake: Disable W-suggest-override for unit tests.
Mathias Preiner [Fri, 17 Aug 2018 23:57:20 +0000 (16:57 -0700)]
cmake: Disable W-suggest-override for unit tests.

6 years agocmake: Add target units.
Aina Niemetz [Fri, 17 Aug 2018 18:37:27 +0000 (11:37 -0700)]
cmake: Add target units.

6 years agocmake: Removed obsolete CMakeLists file in test.
Aina Niemetz [Fri, 17 Aug 2018 18:12:57 +0000 (11:12 -0700)]
cmake: Removed obsolete CMakeLists file in test.

6 years agocmake: Add support for CxxTest.
Aina Niemetz [Fri, 17 Aug 2018 01:56:03 +0000 (18:56 -0700)]
cmake: Add support for CxxTest.

6 years agocmake: Filter through and disable unused HAVE_* variables from autotools.
Aina Niemetz [Thu, 16 Aug 2018 22:55:25 +0000 (15:55 -0700)]
cmake: Filter through and disable unused HAVE_* variables from autotools.

6 years agocmake: Do not set global output directories for binaries and libraries.
Mathias Preiner [Fri, 17 Aug 2018 01:07:59 +0000 (18:07 -0700)]
cmake: Do not set global output directories for binaries and libraries.

6 years agocmake: Fix some includes.
Mathias Preiner [Fri, 17 Aug 2018 00:57:55 +0000 (17:57 -0700)]
cmake: Fix some includes.

6 years agocmake: Added support for coverage and profiling.
Aina Niemetz [Wed, 15 Aug 2018 23:47:00 +0000 (16:47 -0700)]
cmake: Added support for coverage and profiling.

6 years agocmake: Added 3-valued option handling (to enable detection of user-set options).
Aina Niemetz [Wed, 15 Aug 2018 21:00:33 +0000 (14:00 -0700)]
cmake: Added 3-valued option handling (to enable detection of user-set options).

6 years agocmake: Add module finder for readline.
Mathias Preiner [Wed, 15 Aug 2018 19:53:43 +0000 (12:53 -0700)]
cmake: Add module finder for readline.

6 years agocmake: Generate token headers.
Mathias Preiner [Wed, 15 Aug 2018 00:43:17 +0000 (17:43 -0700)]
cmake: Generate token headers.

6 years agocmake: Added licensing options and warnings/errors.
Aina Niemetz [Wed, 15 Aug 2018 01:18:04 +0000 (18:18 -0700)]
cmake: Added licensing options and warnings/errors.

6 years agocmake: Cleanup CMakeLists.txt files, remove SHARED.
Mathias Preiner [Wed, 15 Aug 2018 00:32:26 +0000 (17:32 -0700)]
cmake: Cleanup CMakeLists.txt files, remove SHARED.

6 years agocmake: Add build configurations.
Aina Niemetz [Tue, 14 Aug 2018 20:22:15 +0000 (13:22 -0700)]
cmake: Add build configurations.

6 years agocmake: Fixed compiler flag macros.
Aina Niemetz [Mon, 13 Aug 2018 22:22:07 +0000 (15:22 -0700)]
cmake: Fixed compiler flag macros.

6 years agocmake: Add module finder for LFSC.
Mathias Preiner [Tue, 14 Aug 2018 00:49:47 +0000 (17:49 -0700)]
cmake: Add module finder for LFSC.

6 years agocmake: Add module finder for CaDiCaL.
Mathias Preiner [Tue, 14 Aug 2018 00:37:24 +0000 (17:37 -0700)]
cmake: Add module finder for CaDiCaL.

6 years agocmake: Add module finder for CryptoMiniSat.
Mathias Preiner [Tue, 14 Aug 2018 00:21:13 +0000 (17:21 -0700)]
cmake: Add module finder for CryptoMiniSat.

6 years agocmake: Add module finder for SymFPU.
Mathias Preiner [Mon, 13 Aug 2018 22:24:46 +0000 (15:24 -0700)]
cmake: Add module finder for SymFPU.

6 years agocmake: Add module finder for CLN.
Mathias Preiner [Mon, 13 Aug 2018 21:03:54 +0000 (14:03 -0700)]
cmake: Add module finder for CLN.

6 years agocmake: Add libsignatures for proofs.
Mathias Preiner [Mon, 13 Aug 2018 16:06:33 +0000 (09:06 -0700)]
cmake: Add libsignatures for proofs.

6 years agocmake: Remove unused CMakeLists.txt
Mathias Preiner [Mon, 13 Aug 2018 16:06:11 +0000 (09:06 -0700)]
cmake: Remove unused CMakeLists.txt

6 years agocmake: Generate cvc4autoconfig.h (options currently statically set).
Aina Niemetz [Mon, 13 Aug 2018 17:52:00 +0000 (10:52 -0700)]
cmake: Generate cvc4autoconfig.h (options currently statically set).

6 years agocmake: Added missing dependency for src/util
Aina Niemetz [Mon, 13 Aug 2018 17:50:24 +0000 (10:50 -0700)]
cmake: Added missing dependency for src/util

6 years agocmake: Working build infrastructure.
Mathias Preiner [Fri, 10 Aug 2018 23:19:43 +0000 (16:19 -0700)]
cmake: Working build infrastructure.

TODO: cvc4autoconfig.h

6 years agocmake: Antlr parser generation done.
Mathias Preiner [Fri, 10 Aug 2018 23:10:23 +0000 (16:10 -0700)]
cmake: Antlr parser generation done.

6 years agocmake: Generate trace and debug tags
Aina Niemetz [Sat, 11 Aug 2018 00:57:15 +0000 (17:57 -0700)]
cmake: Generate trace and debug tags

6 years agocmake: .cpp generation done, .h generation not yet complete
Aina Niemetz [Sat, 16 Jun 2018 02:33:04 +0000 (19:33 -0700)]
cmake: .cpp generation done, .h generation not yet complete

6 years agocmake: Added initial build infrastructure.
Aina Niemetz [Mon, 11 Sep 2017 22:49:22 +0000 (15:49 -0700)]
cmake: Added initial build infrastructure.

6 years agoDecision strategy: incorporate arrays. (#2495)
Andrew Reynolds [Wed, 19 Sep 2018 16:17:27 +0000 (11:17 -0500)]
Decision strategy: incorporate arrays. (#2495)

6 years agoAdd rewrites for str.contains + str.replace/substr (#2496)
Andres Noetzli [Wed, 19 Sep 2018 15:16:46 +0000 (08:16 -0700)]
Add rewrites for str.contains + str.replace/substr (#2496)

6 years agoDecision strategy: incorporate separation logic. (#2494)
Andrew Reynolds [Wed, 19 Sep 2018 02:26:28 +0000 (21:26 -0500)]
Decision strategy: incorporate separation logic. (#2494)

6 years agoAdd two rewrites for string contains character (#2492)
Andrew Reynolds [Wed, 19 Sep 2018 01:54:13 +0000 (20:54 -0500)]
Add two rewrites for string contains character (#2492)

6 years ago Refactor strings extended functions inferences (#2480)
Andrew Reynolds [Wed, 19 Sep 2018 01:10:59 +0000 (20:10 -0500)]
 Refactor strings extended functions inferences (#2480)

This refactors the extended function inference step of TheoryStrings. It also generalizes a data member (d_pol) so that we track extended functions that are equal to constants for any type.

This is in preparation for working on solving equations and further inferences in this style.

6 years agoNew C++ API: Introduce new macro and exception for API checks. (#2486)
Aina Niemetz [Wed, 19 Sep 2018 00:22:30 +0000 (17:22 -0700)]
New C++ API: Introduce new macro and exception for API checks. (#2486)

6 years agoFix issue with str.idof in evaluator (#2493)
Andres Noetzli [Tue, 18 Sep 2018 23:01:13 +0000 (16:01 -0700)]
Fix issue with str.idof in evaluator (#2493)

6 years agoDecision strategy: incorporate strings fmf. (#2485)
Andrew Reynolds [Tue, 18 Sep 2018 21:56:24 +0000 (16:56 -0500)]
Decision strategy: incorporate strings fmf. (#2485)

6 years agoMore aggressive caching of string skolems. (#2491)
Andrew Reynolds [Tue, 18 Sep 2018 20:38:44 +0000 (15:38 -0500)]
More aggressive caching of string skolems. (#2491)

6 years agoMove and rename sygus solver classes (#2488)
Andrew Reynolds [Tue, 18 Sep 2018 15:26:36 +0000 (10:26 -0500)]
Move and rename sygus solver classes (#2488)

6 years agofix assertion error (#2487)
Haniel Barbosa [Tue, 18 Sep 2018 13:07:21 +0000 (08:07 -0500)]
fix assertion error (#2487)

6 years agoClean remaining references to getNextDecisionRequest in quantifiers. (#2484)
Andrew Reynolds [Tue, 18 Sep 2018 01:36:36 +0000 (20:36 -0500)]
Clean remaining references to getNextDecisionRequest in quantifiers. (#2484)

6 years agoImprovements and fixes for symmetry detection and breaking (#2459)
Andrew Reynolds [Tue, 18 Sep 2018 00:51:06 +0000 (19:51 -0500)]
Improvements and fixes for symmetry detection and breaking (#2459)

This fixes a few open issues with symmetry detection algorithm. It also extends the algorithm to do:
- Alpha equivalence to recognize symmetries between quantified formulas,
- A technique to recognize a subset of variables in two terms are symmetric, e.g. from x in A ^ x in B, we find A and B are interchangeable by treating x as a fixed symbol,
- Symmetry breaking for maximal subterms instead of variables.

6 years agoMove inst_strategy_cbqi to inst_strategy_cegqi (#2477)
Andrew Reynolds [Mon, 17 Sep 2018 23:49:08 +0000 (18:49 -0500)]
Move inst_strategy_cbqi to inst_strategy_cegqi (#2477)

6 years agoDecision strategy: incorporate cegis unif (#2482)
Andrew Reynolds [Mon, 17 Sep 2018 22:32:02 +0000 (17:32 -0500)]
Decision strategy: incorporate cegis unif (#2482)

6 years ago Decision strategy: incorporate bounded integers (#2481)
Andrew Reynolds [Mon, 17 Sep 2018 21:50:19 +0000 (16:50 -0500)]
 Decision strategy: incorporate bounded integers (#2481)

6 years agoDecision strategy: incorporate datatypes sygus solver. (#2479)
Andrew Reynolds [Mon, 17 Sep 2018 21:26:00 +0000 (16:26 -0500)]
Decision strategy: incorporate datatypes sygus solver. (#2479)

6 years agoMore aggressive skolem caching for strings, document and clean preprocessor (#2478)
Andrew Reynolds [Mon, 17 Sep 2018 20:40:28 +0000 (15:40 -0500)]
More aggressive skolem caching for strings, document and clean preprocessor (#2478)

6 years agoMake strings model construction robust to lengths that are not propagated equal ...
Andrew Reynolds [Mon, 17 Sep 2018 19:38:07 +0000 (14:38 -0500)]
Make strings model construction robust to lengths that are not propagated equal (#2444)

This fixes #2429.

This was caused by arithmetic not notifying an equality between shared terms that it assigned to the same value.  See explanation in comment.

We should investigate a bit more why this is happening. I didnt think arithmetic was allowed to assign the same value to unpropagated shared length terms.  I've opened issue https://github.com/CVC4/CVC4/issues/2443 to track this.

Regardless, the strings model construction should be robust to handle this case, which this PR does.

6 years agoFollow redirects with cURL in contrib/get* scripts (#2471)
Andres Noetzli [Mon, 17 Sep 2018 19:16:07 +0000 (12:16 -0700)]
Follow redirects with cURL in contrib/get* scripts (#2471)

On systems without `wget`, we use `curl` to download dependencies.
However, we were not using the `-L` (follow redirects) option, which is
necessary to download certain dependencies, e.g. CryptoMiniSat.