summaryrefslogtreecommitdiff
path: root/test/unit
AgeCommit message (Collapse)Author
2021-04-12Refactor and update copyright headers. (#6316)Aina Niemetz
2021-04-09Rename CVC4_ macros to CVC5_. (#6327)Aina Niemetz
2021-04-09Rename CVC4__ header guards to CVC5__. (#6326)Aina Niemetz
2021-04-08Add identifiers for sources of incompleteness (#6311)Andrew Reynolds
This PR classifies all internal kinds of incompleteness as identifiers. It makes it so TheoryEngine records an identifier when its incomplete flag is set. The next step will be to possibly communicate this value to the user.
2021-04-07Replace calls to NodeManager::mkSkolem with SkolemManager::mkDummySkolem (#6291)Andrew Reynolds
This is in preparation for refactoring skolem creation throughout the code base to improve proofs and migrate Theory::expandDefinitions to Rewriter::expandDefinitions. This PR also eliminates some unused code in TheoryArithPrivate. Followup PRs will start formalizing/eliminating calls to mkDummySkolem.
2021-04-06Remove template argument from `NodeBuilder` (#6290)Andres Noetzli
Currently, NodeBuilder takes a single template argument: An integer that determines the expected number of arguments. This argument is used to determine the size of the d_inlineNvChildSpace array. This array is used to construct nodes inline. The advantage of this is that we don't have to allocate a NodeValue on the heap for the node under construction until we are sure that the node is new. While templating the array size may save some stack space (or avoid a heap allocation if we statically know that we a fixed number of children and that number is greater than 10), it complicates the code and leads to longer compile times. Thus, this commit removes the template argument and moves some of the NodeBuilder code to a source file for faster compilation. CPU build time before change (debug build): 2429.68s CPU build time after change (debug build): 2228.44s Signed-off-by: Andres Noetzli noetzli@amazon.com
2021-04-05New C++ Api: Rename and move headers. (#6292)Aina Niemetz
2021-04-05[proof-new] Registering proof checkers uniformly from the SMT solver (#6275)Haniel Barbosa
Each theory has its own proof checker, responsible for checking the rules pertaining to that theory. The main proof checker uses these specialized checkers. Previously the main proof checker (of the proof node manager used across the SMT solver) was connected to these theory proof checkers during initialization of the theory. This commit adds an interface to the theories for retrieving its proof checker (analogous to how one retrieves the rewriter of a theory) which is used by a new method in the theory engine to register a theory proof checker to a given proof checker according to a theory id. This is in preparation for the new unsat cores based on proofs.
2021-04-05Optimizer for BitVectors (#6213)Yancheng Ou
Adds support for BitVector optimization, which is done via offline binary search. Units tests included. Also mildly refactors the optimizer architecture.
2021-04-03Disable substring component contains in strip endpoints (#6266)Andrew Reynolds
Fixes the first benchmark from #6203.
2021-04-01Fix type rule for to_real (#6257)Andrew Reynolds
This fixes the type rule for to_real to match SMT-LIB: its argument must be an integer. This required fixing the TPTP parser which has a more relaxed semantics for to_real / to_rat. This also fixes Solver::isReal, which should return false if we are the integer type. Fixes #6208.
2021-04-01Refactor CLN dependency & Cleanup (#6251)Gereon Kremer
This PR migrates CLN to a new Find script and adds the possibility to install CLN if not found in the system. Also, it does a bit of cleanup.
2021-04-01Rename namespace CVC5 to cvc5. (#6258)Aina Niemetz
2021-03-31Rename namespace CVC4 to CVC5. (#6249)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 SymFPU dependency (#6218)Gereon Kremer
This PR refactors the contrib script to download SymFPU to a cmake external project.
2021-03-30Give a better error when sygus grammar rules contain free variables. (#6199)Abdalrhman Mohamed
2021-03-29Add external project to install gtest (#6229)Gereon Kremer
This PR enables us to build gtest ourselves if it is not already installed.
2021-03-29Modular bv2int part 1 (#6212)yoni206
This PR introduces the header file for a more modular bv-to-int module, that will be called from the preprocessing pass bv-to-int, and possibly from the bit-vector solver after preprocessing. The header file is basically a copy of the bv_to_int.h header file from preprocessing, with some adjustments to increase modularity. In addition to the header file we also introduce an empty unit test that #includes the header, in order to identify compilation errors. The unit test will be populated in subsequent PRs, that will also include implementations.
2021-03-25Do not use Configuration class in API black tests. (#6205)Mathias Preiner
2021-03-23Removing unused build options and deprecated proof compile flag (#6195)Haniel Barbosa
2021-03-22 Function types are always first-class (#6167)Andrew Reynolds
This eliminates one of the dependencies of TypeNode on options. In particular, this makes it so that function types are always considered first-class. This change makes it so that higher-order types can always be constructed; logic exceptions should occur if they are used in constraints.
2021-03-19BitVector: Change setBit to set the bit in place. (#6176)Aina Niemetz
Creating BitVectors (and deleting them) is in general expensive because of the underlying multi-precision Integer. If possible, unnecessary constructions and desctructions of BitVectors should be avoided. The most common use case for `setBit` is that for an existing BitVector, a given bit should be set to a certain value. Not doing this in place generates unnecessary constructions and destructions of BitVectors.
2021-03-17Rename test/unit/expr to test/unit/node. (#6156)Aina Niemetz
This is in preparation for renaming src/expr to src/node.
2021-03-17Rename fixtures in test/unit/context to conform to naming scheme. (#6158)Aina Niemetz
Naming scheme is `Test<directory><Black|White><name>`.
2021-03-17Rename fixtures in test/unit/base to conform to naming scheme. (#6157)Aina Niemetz
Naming scheme is `Test<directory><Black|White><name>`.
2021-03-15Replace HistogramStat by IntegralHistogramStat (#6126)Gereon Kremer
This PR uses IntegralHistogramStat instead of HistogramStat when appropriate, that is everywhere.
2021-03-12Add more unit tests for api::Sort. (#6122)Aina Niemetz
2021-03-11Make linear arithmetic use its inference manager (#5934)Gereon Kremer
This PR refactors the linear arithmetic solver to properly use its inference manager, instead of directly sending lemmas to the output channel. To do this, it introduces new InferenceIds for the various linear lemmas.
2021-03-11First refactoring of statistics classes (#6105)Gereon Kremer
This PR does a first round of refactoring on the statistics, in particular the Stat class and derived classes. It significantly shrinks the class hierarchy, modernizes some code (e.g. use std::chrono instead of clock_gettime), removes unused features (e.g. nesting of statistics) and does some general cleanup and consolidation. Subsequent PRs are planned to change the ownership model (right now every module owns the Stat object) which makes the whole register / unregister mechanism obsolete.
2021-03-11Delete Expr layer. (#6117)Aina Niemetz
2021-03-11Refactor Node::getOperator() to fix compiler warning. (#6110)Aina Niemetz
2021-03-10Move ExprManager::isNAryKind to NodeManager. (#6107)Aina Niemetz
This also renames metakind::getLowerBoundForKind and metakind::getUpperBoundForKind for consistency. Note that the NodeManager class needs to be reordered to comply to our style guidelines. This PR does not reorder but introduces a public block at the top (where the rest of the public interface of the class should go eventually).
2021-03-10cmake: Fix optimization level for debug builds. (#6097)Mathias Preiner
Further cleans up some unused variables and moves the configuration of best to configure.sh.
2021-03-10test: Fix missing std::. (#6096)Mathias Preiner
2021-03-09Update copyright headers to 2021. (#6081)Aina Niemetz
2021-03-05Remove partial UDIV/UREM operators. (#6069)Mathias Preiner
This commit removes the partial UDIV/UREM operator handling. BITVECTOR_UDIV and BITVECTOR_UREM are now total.
2021-03-05Set logic in interpolation unit test. (#6067)yoni206
The logic QF_LIA was not set in the api interpolation test. Setting it brings the solving time from ~37s to ~2s. Also, a comment is fixed.
2021-03-05Initial implementation of an optimization solver with unit tests. (#5849)mcjuneho
2021-03-05google test: Remove obsolete Expr test fixtures. (#6060)Aina Niemetz
2021-03-05google test: Remove dependency on ExprManager in type_cardinality_black. (#6061)Aina Niemetz
2021-03-04Fix nightlies. (#6052)Aina Niemetz
2021-03-04Fix nightlies. (#6048)Aina Niemetz
2021-03-04context_black: Clean up classes. (#6046)Aina Niemetz
This cleans up the MyContext* classes defined for the tests according to the code style guidelines. It further converts non-fixed width integer types to fixed-width types. This was missed in #5587.
2021-03-04New C++ API: Clean up usage of internal Result. (#6043)Aina Niemetz
This disables the temporarily available internals of Result. It further changes the interface for getUnknownExplanation, which now returns an enum value instead of a string.
2021-03-03New C++ API: Clean up usage of internal types in Op. (#6045)Aina Niemetz
This disables the temporarily available internals of Op.
2021-03-03More cleanup of includes to reduce compilation times (#6037)Gereon Kremer
Similar to #6031, this PR implements suggestions from iwyu to reduce the number of includes in header files by introducing forward declarations and moving includes to source files.
2021-03-03Remove uses of SExpr class. (#6035)Abdalrhman Mohamed
This PR is a step towards removing SExpr class. It replaces SExpr with std::string for set-info and set-option commands.
2021-03-03Add tuple projection operator (#5904)mudathirmahgoub
This PR adds tuple projection operator to the theory of data types. It Also adds helper functions for selecting elements from a tuple.
2021-03-02Remove obsolete dependency on CxxTest. (#6038)Aina Niemetz
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback