summaryrefslogtreecommitdiff
path: root/src/util
AgeCommit message (Collapse)Author
2020-03-10Fix issue with reset-assertions. (#3988)Aina Niemetz
Calling (reset-assertions) in start mode was not handled correctly. Additionally, when calling (check-sat) after (reset-assertions) after a (check-sat) call that answered unsat, we answered unsat instead of sat. This cleans up and fixes reset-assertions) handling.
2020-03-09Convert more uses of strings to words (#3921)Andrew Reynolds
Towards theory of sequences. Also adds documentation to strncmp/rstrncmp and adds them to the Word interface.
2020-02-27Fix -Wshadow warnings in common headers (#3826)Andres Noetzli
2020-02-24Utilities for words (#3797)Andrew Reynolds
This adds a utility file for handling operations over constant "words" (this will eventually generalize string or sequence constants). This is work towards CVC4/cvc4-projects#23. Also improves documentation in regexp.h.
2020-02-20Remove unused code (#3782)Andres Noetzli
2020-02-19resource manager: Add statistic for every resource. (#3772)Mathias Preiner
This commit adds statistics for all resource steps. A resource statistic is incremented by 1 if the resource is spent (via `spendResource`). Fixes #3751.
2020-01-29Fix isLeq function in String utility (#3659)Andrew Reynolds
2020-01-10Fix printing of models of uninterpreted sorts (#3597)Andres Noetzli
2019-12-23Initial support for string reverse (#3581)Andrew Reynolds
Type rules, parsing and printing, basic rewriting including constant evaluation, reduction for string reverse (`str.rev`). Also improves support in a few places for tolower/toupper.
2019-11-18Use -Wimplicit-fallthrough (#3464)Andres Noetzli
This commit enables compiler warnings for implicit fallthroughs in switch statements that are not explicitly marked as such. The commit introduces a new macro `CVC4_FALLTHROUGH` that can be used to indicate that a fallthrough is intentional. The commit fixes existing warnings and a bug in the arithmetic rewriter for `abs` (the bug likely couldn't be triggered easily because we rewrite `abs` to an `ite` while expanding definitions). To have the new macro also available in the parser, the commit changes `src/base/check.h` to be visible to the parser (it includes `cvc4_private_library.h` now instead of `cvc4_private.h`).
2019-11-08cmake: Disable C++ GNU extensions. (#3446)Mathias Preiner
Fixes #971.
2019-10-30Unify CVC4_CHECK/CVC4_DCHECK/AlwaysAssert/Assert. (#3366)Mathias Preiner
2019-09-06Remove portfolio (#3236)Andrew Reynolds
2019-09-06Remove SMT1 parser. (#3228)Mathias Preiner
This commit removes the SMT1 parser infrastructure and adds the SMT2 translations of the SMT1 regression tests. For now this commit removes regression test regress3/pp-regfile.smt since the SMT2 translation has a file size of 887M (vs. 172K for the SMT1 version). Fixes #2948 and fixes #1313.
2019-07-31Eager conflict detection in strings based on constant prefix/suffix (#3110)Andrew Reynolds
2019-07-22Avoid move constructor of std::fstream for GCC < 5 (#3098)Andres Noetzli
GCC < 5 does not support the move constructor of `std::fstream` (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 for details). This commit wraps the `std::fstream` in an `std::unique_ptr` to work around that issue.
2019-07-01Support sygus version 2 format (#3066)Andrew Reynolds
2019-06-21Add floating-point support in the Java API (#3063)Andres Noetzli
This commit adds support for the theory of floating-point numbers in the Java API. Previously, floating-point related classes were missing in the JAR. The commit also provides an example that showcases how to work with the theory of floating-point numbers through the API.
2019-06-21Use TMPDIR environment variable for temp files (#2849)Andres Noetzli
Previously, we were just writing temporary files to `/tmp/` but this commit allows the user to use the `TMPDIR` environment variable to determine which directory the temporary file should be written to. The commit adds a helper function for this and also includes some minor cleanup of existing code.
2019-06-02Enable SymFPU assertions in production (#3036)Andres Noetzli
This commit enables SymFPU assertions in production. The reason for this is that there are some known problems with certain bit-widths, so we prefer to be conservative. The commit also updates the run scripts for SMT-COMP 2019 to use `--fp-exp` since we have those additional checks in place now.
2019-05-15Fix iterators in Java API (#3000)Andres Noetzli
Fixes #2989. SWIG 3 seems to have an issue properly resolving `T::const_iterator::value_type` if that type itself is a `typedef`. This is for example the case in the `UnsatCore` class, which `typedef`s `const_iterator` to `std::vector<Expr>::const_iterator`. As a workaround, this commit changes the `JavaIteratorAdapter` class to take two template parameters, one of which is the `value_type`. The commit also adds a compile-time assertion that `T::const_iterator::value_type` can be converted to `value_type` to avoid nasty surprises. A nice side-effect of this solution is that explicit `typemap`s are not necessary anymore, so they are removed. Additionally, the commit adds a `toString()` method for the Java API of `UnsatCore` and adds examples that show and test the iteration over the unsat core and the statistics. Iterating over `Statistics` now returns instances of `Statistic` instead of `Object[]`, which is a bit cleaner and requires less glue code.
2019-04-24Do not use __ prefix for header guards. (#2974)Mathias Preiner
Fixes 2887.
2019-03-26Update copyright headers.Aina Niemetz
2019-03-18BitVector: Allow base 10 in constructor. (#2870)Aina Niemetz
2019-02-03Add rewrite for contains + const strings replace (#2828)Andres Noetzli
2018-12-14Fixed typos.Aina Niemetz
2018-10-19Remove autotools build system. (#2639)Mathias Preiner
2018-10-19Fix util::Random for macOS builds (#2655)Andres Noetzli
2018-10-09Random: support URNG interface (#2595)Aina Niemetz
Use std::shuffle (with Random as the unified random generator) instead of std::random_shuffle for deterministic, reproducable random shuffling.
2018-09-22cmake: Only build libcvc4 and libcvc4parser as libraries.Mathias Preiner
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.
2018-09-22cmake: Move find_package to where it is actually needed.Mathias Preiner
2018-09-22cmake: Rebase with current master, add new tests/source files.Mathias Preiner
2018-09-22cmake: Cleanup CMakeLists.txt files, remove SHARED.Mathias Preiner
2018-09-22cmake: Add module finder for CLN.Mathias 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: .cpp generation done, .h generation not yet completeAina Niemetz
2018-09-22cmake: Added initial build infrastructure.Aina Niemetz
2018-09-07Replace boost::integer_traits with std::numeric_limits. (#2439)Mathias Preiner
Further, remove redundant gmp.h include in options_handler.cpp.
2018-08-26Use uniform length limit for String constants (#2381)Andres Noetzli
2018-08-15Remove unused tuple classes (#2313)Andres Noetzli
Since we are using C++11, we can replace the triple and quad classes with std::tuple.
2018-08-15Remove unused class DynamicArray (#2312)Andres Noetzli
2018-08-13Fix get-unsat-assumptions output (#2301)Andres Noetzli
Fixes #2298. The `get-unsat-assumptions` command was printing the result with square brackets and commas instead of parentheses and spaces between the assumptions.
2018-08-10Fix portfolio command executor for changes from #2240. (#2294)Aina Niemetz
2018-08-09 Fix char overflow issues in regular expression solver (#2275)Andrew Reynolds
2018-08-07Require Swig 3 (#2283)Andres Noetzli
Removes some hacks due to Swig 2's incomplete C++11 support and adds checks for version 3 at configuration time as well as in swig.h
2018-08-07Delete functions instead of using CVC4_UNDEFINED (#1794)Andres Noetzli
C++11 supports explicitly deleting functions that should not be used (explictly or implictly), e.g. copy or assignment constructors. We were previously using the CVC4_UNDEFINED macro that used a compiler-specific attribute. The C++11 feature should be more portable.
2018-08-07Make output of flushInformation and safeFlushInformation consistent. (#2280)Mathias Preiner
2018-08-03Fix printing statistics in case of signals. (#2267)Mathias Preiner
2018-07-21Optimizations and fixes for computing whether a type is finite (#2179)Andrew Reynolds
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback