summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-22cmake: Move find_package to where it is actually needed.Mathias Preiner
2018-09-22cmake: Add convenience wrappers for tag generation.Mathias Preiner
2018-09-22cmake: Add library versioning for libcvc4.so.Mathias Preiner
2018-09-22cmake: Rebase with current master, add new tests/source files.Mathias Preiner
2018-09-22cmake: Use target specific includes for libcvc4.Mathias Preiner
Further, print definitions added with add_definitions(...).
2018-09-22cmake: Add missing dependency.Mathias Preiner
2018-09-22cmake: Add SWIG support + Python and Java bindings.Mathias Preiner
2018-09-22cmake: Add portfolio support.Mathias Preiner
2018-09-22cmake: Add support for CxxTest.Aina Niemetz
2018-09-22cmake: Do not set global output directories for binaries and libraries.Mathias Preiner
2018-09-22cmake: Fix some includes.Mathias Preiner
2018-09-22cmake: Add module finder for readline.Mathias Preiner
2018-09-22cmake: Generate token headers.Mathias Preiner
2018-09-22cmake: Cleanup CMakeLists.txt files, remove SHARED.Mathias Preiner
2018-09-22cmake: Add build configurations.Aina Niemetz
2018-09-22cmake: Add module finder for SymFPU.Mathias Preiner
2018-09-22cmake: Add module finder for CLN.Mathias Preiner
2018-09-22cmake: Add libsignatures for proofs.Mathias Preiner
2018-09-22cmake: Remove unused CMakeLists.txtMathias Preiner
2018-09-22cmake: Added missing dependency for src/utilAina Niemetz
2018-09-22cmake: Working build infrastructure.Mathias Preiner
TODO: cvc4autoconfig.h
2018-09-22cmake: Antlr parser generation done.Mathias Preiner
2018-09-22cmake: Generate trace and debug tagsAina Niemetz
2018-09-22cmake: .cpp generation done, .h generation not yet completeAina Niemetz
2018-09-22cmake: Added initial build infrastructure.Aina Niemetz
2018-09-19Decision strategy: incorporate arrays. (#2495)Andrew Reynolds
2018-09-19Add rewrites for str.contains + str.replace/substr (#2496)Andres Noetzli
2018-09-18Decision strategy: incorporate separation logic. (#2494)Andrew Reynolds
2018-09-18Add two rewrites for string contains character (#2492)Andrew Reynolds
2018-09-18 Refactor strings extended functions inferences (#2480)Andrew Reynolds
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.
2018-09-18New C++ API: Introduce new macro and exception for API checks. (#2486)Aina Niemetz
2018-09-18Fix issue with str.idof in evaluator (#2493)Andres Noetzli
2018-09-18Decision strategy: incorporate strings fmf. (#2485)Andrew Reynolds
2018-09-18More aggressive caching of string skolems. (#2491)Andrew Reynolds
2018-09-18Move and rename sygus solver classes (#2488)Andrew Reynolds
2018-09-18fix assertion error (#2487)Haniel Barbosa
2018-09-17Clean remaining references to getNextDecisionRequest in quantifiers. (#2484)Andrew Reynolds
2018-09-17Improvements and fixes for symmetry detection and breaking (#2459)Andrew Reynolds
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.
2018-09-17Move inst_strategy_cbqi to inst_strategy_cegqi (#2477)Andrew Reynolds
2018-09-17Decision strategy: incorporate cegis unif (#2482)Andrew Reynolds
2018-09-17 Decision strategy: incorporate bounded integers (#2481)Andrew Reynolds
2018-09-17Decision strategy: incorporate datatypes sygus solver. (#2479)Andrew Reynolds
2018-09-17More aggressive skolem caching for strings, document and clean preprocessor ↵Andrew Reynolds
(#2478)
2018-09-17Make strings model construction robust to lengths that are not propagated ↵Andrew Reynolds
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.
2018-09-17Remove broken dumping support from portfolio build (#2470)Andres Noetzli
Dumping support for portfolio builds was introduced in 84f26af22566f7c10dea45b399b944cb50b5e317 but as far as I can tell, the implementation has already been problematic in the original implementation. The current implementation has the following issues: - Dumping with a portfolio build (even when using the single threaded executable) results in a segfault. The reason is that the DumpChannel variable is declared as an `extern` and exists for the duration of the program. The problem is that it stores a `CommandSequence`, which indirectly may store nodes. When shutting down CVC4, the destructor of `DumpC` is called, which destroys the `CommandSequence`, which results in a segfault because the `NodeManager` does not exist anymore. The node manager is (indirectly) owned and destroyed by the `api::Solver` object. - Additionally, adding commands to the `CommandSequence` is not thread safe (it just calls `CommandSequence::addCommand()`, which in turn pushes back to a vector [0] (which is not thread safe [1]). A single instance of `DumpChannel` is shared among all threads (it is not declared `thread_local` [2]). - The `CommandSequence` in `DumpC` was not used in the original implementation and is still unused on master. The original commit mentions that the portfolio build stores the commands in the `CommandSequence` but not why. This commit removes the `CommandSequence` and related methods from `DumpC` to avoid the issue when destroying `DumpChannel`. It disables dumping for portfolio builds and adds a check at configure-time that not both options have been enabled simultaneously. Given that the option was not functional previously, the problematic implementation, and the fact that the dump of multiple threads wouldn't be very useful, disabling dumping for portfolio builds is unlikely to be problem. An improvement that could be made is to disable dumping support only for the pcvc4 binary and while enabling it for the single-threaded version, even when using `--with-portfolio`. However, we currently do not have the infrastructure for that (we use the same libcvc4 library for both binaries). [0] https://github.com/CVC4/CVC4/blob/c2111c86973b8a80e20a3fdf3cbd0b2ff0dc7010/src/smt/command.cpp#L756 [1] https://en.cppreference.com/w/cpp/container [2] https://github.com/CVC4/CVC4/blob/c2111c86973b8a80e20a3fdf3cbd0b2ff0dc7010/src/smt/dump.h#L117
2018-09-17Remove unnecessary tracing from preprocessing (#2472)Andres Noetzli
With the introduction of the PreprocessingPass class, tracing/dumping/time keeping is done automatically in the base class, eliminating the need for doing it manually. This commit cleans up SmtEngine, removing tracing/dumping/time keeping in preprocessing that is not needed anymore.
2018-09-17Decision strategy: incorporate UF with cardinality constraints (#2476)Andrew Reynolds
2018-09-17Decision strategy: incorporate sygus feasible and sygus stream feasible (#2462)Andrew Reynolds
2018-09-14Refactor how assertions are added to decision engine (#2396)Andres Noetzli
Before refactoring the preprocessing passes, we were using three arguments to add assertions to the decision engine. Now all that information lives in the AssertionPipeline. This commit moves the AssertionPipeline to its own file and changes the `addAssertions()` methods related to the decision engine to take an AssertionPipeline as an arguement instead of three separate ones. Additionally, the TheoryEngine now uses an AssertionPipeline for lemmas.
2018-09-14Add Skolem cache for strings, refactor length registration (#2457)Andrew Reynolds
This PR is in preparation for doing more aggressive caching of skolems (for example, in the strings preprocessor). It refactors sendLengthLemma -> registerLength, which unifies how length lemmas for skolems and other string terms are handled.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback