summaryrefslogtreecommitdiff
path: root/test/regress
AgeCommit message (Collapse)Author
2010-11-09Lemmas on demand work, push-pop, some cleanup.Dejan Jovanović
2010-10-29Adds a very small test that triggers a bug. The bug is from the commit for ↵Tim King
-r1063.
2010-10-20fix bug #220 (assertion fails if no query/check-sat); add bug220.smt2 and ↵Morgan Deters
bug217.smt2 as regressions; fix to build system to only run regressions (not units) if you "make -C test regress", for example (this matches behavior elsewhere)
2010-10-13Added test/regress/regress1/arith and populated it with some fast SMT LIB ↵Tim King
problems.
2010-10-12hooked up "we are incomplete" flag after conversation with Tim (a theory ↵Morgan Deters
notifies the theory engine through its output channel); some cleanup; add a regression for bug #216
2010-10-12Merge from cc-memout branch. Here are the main pointsMorgan Deters
* Add ContextMemoryAllocator<T> allocator type, conforming to STL allocator requirements. * Extend the CDList<> template to take an allocator (defaults to std::allocator<T>). * Add a specialized version of the CDList<> template (in src/context/cdlist_context_memory.h) that allocates a list in segments, in context memory. * Add "forward" headers -- cdlist_forward.h, cdmap_forward.h, and cdset_forward.h. Use these in public headers, and other places where you don't need the full header (just the forward-declaration). These types justify their own header (instead of just forward-declaring yourself), because they are complex templated types, with default template parameters, specializations, etc. * theory_engine.h no longer depends on individual theory headers. (Instead it forward-declares Theory implementations.) This is especially important now that theory .cpp files depend on TheoryEngine (to implement Theory::getValue()). Previously, any modification to any theory header file required *all* theories, and the engine, to be completely rebuilt. * Support memory cleanup for nontrivial CONSTANT kinds. This resolves an issue with arithmetic where memory leaked for each distinct Rational or Integer that was wrapped in a Node.
2010-10-10additional model gen and SMT-LIBv2 compliance work: (get-assignment) now ↵Morgan Deters
supported; work on Result type (biggest noticeable change is that CVC4 now outputs lowercase "sat" and "unsat"), Options class moved to src/smt, to allow for future work on runtime configuration via (set-option) command
2010-10-08* (define-fun...) now has proper type checking in non-debug buildsMorgan Deters
(resolves bug #212) * also closed some other type checking loopholes in SmtEngine * small fixes to define-sort (resolves bug #214) * infrastructural support for printing expressions in languages other than the internal representation language using an IO manipulator, e.g.: cout << Expr::setlanguage(language::output::LANG_SMTLIB_V2) << expr; main() sets the output language for all streams to correspond to the input language * support delaying type checking in debug builds, so that one can debug the type checker itself (before it was difficult, because debug builds did all the type checking on Node creation!): new command-line flag --no-early-type-checking (only makes sense for debug builds) * disallowed copy-construction of ExprManager and NodeManager, and made other constructors explicit; previously it was easy to unintentionally create duplicate managers, with really weird results (i.e., disappearing attributes!)
2010-10-07oops, reverting a change to a regression test that had intentionally caused ↵Morgan Deters
a typechecking violation
2010-10-07type checking for define-fun in production builds; related to (and might ↵Morgan Deters
resolve) bug 212
2010-10-07SMT-LIBv2 (define-fun...) command now functional; does eager expansion at ↵Morgan Deters
preprocessing time
2010-10-04fix gdb issues (at least for static builds); resolves bug 194Morgan Deters
2010-10-02branches/arith-indexed-variables merged into the main trunk.Tim King
2010-09-28fix predicate bug in UF; code cleanup in theory.cppMorgan Deters
2010-09-24basic union find for bitvectorsDejan Jovanović
2010-09-21Rm'ing Makefile.in'sChristopher L. Conway
2010-09-20hooking up the bitvector testsDejan Jovanović
2010-09-20bitvector rewriting for the core theory and testcasesDejan Jovanović
2010-09-16Bug fix to CVC4::theory::arith::VarList as well as some superficial changes. ↵Tim King
test/regress/regress0/arith/arith.03.cvc now passes and is turned on by default. Tiny documentation fix for the arithmetic normal form.
2010-09-14* added test/regress/regress0/arith for easy arithmetic regress tests.Tim King
2010-09-02recategorize eq_diamond14 as a regress2 test (instead of regress0)Morgan Deters
2010-09-02* add TimerStat statistic typeMorgan Deters
* add Stats black-box unit test * new make target: "make units" now runs unit tests only * revised make target: "make regress" now runs regressions only * configure.ac: pull in librt for clock_gettime()
2010-08-20turn off extra-checking (which does extra theory-rewriter checking); it was ↵Morgan Deters
enabled by mistake in the last commit
2010-08-19UF theory bug fixes, code cleanup, and extra debugging output.Morgan Deters
Enabled new UF theory by default. Added some UF regressions. Some work on the whole equality-over-bool-removed-in-favor-of-IFF thing. (Congruence closure module and other things have to handle IFF as a special case of equality, etc..) Added pre-rewriting to TheoryBool which rewrites: * (IFF true x) => x * (IFF false x) => (NOT x) * (IFF x true) => x * (IFF x false) => (NOT x) * (IFF x x) => true * (IFF x (NOT x)) => false * (IFF (NOT x) x) => false * (ITE true x y) => x * (ITE false x y) => y * (ITE cond x x) => x Added post-rewriting that does all of the above, plus normalize IFF and ITE: * (IFF x y) => (IFF y x), if y < x * (ITE (NOT cond) x y) => (ITE cond y x) (Note: ITEs survive the removal-of-ITEs pass only if they are Boolean-valued.) A little more debugging output from CNF stream, context pushes/pops, ITE removal. Some more documentation. Fixed some typos.
2010-08-18more tests, configuration for UFMorgan Deters
2010-08-17Merge from "cc" branch:Morgan Deters
CongruenceClosure implementation; CongruenceClosure white-box test. New UF theory implementation based on new CC module. This one supports predicates. The two UF implementations exist in parallel (they can be selected at runtime via the new command line option "--uf"). Added type infrastructure for TUPLE. Fixes to unit tests that failed in 16-August-2010 regressions. Needed to instantiate TheoryEngine with an Options structure, and explicitly call ->shutdown() on it before destruction (like the SMTEngine does). Fixed test makefiles to (1) perform all tests even in the presence of failures, (2) give proper summaries of subdirectory tests (e.g. regress0/uf and regress0/precedence) Other minor changes.
2010-07-28Forcing a type check on Node construction in debug mode (Fixes: #188)Christopher L. Conway
NOTE: mkNode/mkExpr/parsing functions can now throw type checking exceptions
2010-07-22Added test file for fuzzsmt bug, bug187.smt2.Tim King
2010-07-07Shared term manager tested and workingClark Barrett
It is currently tracking all asserted equalities for simplicity. Might want to check if this is a performance hit
2010-07-07Making plus-mult.cvc test a bit more torturous (as enabled by r744)Christopher L. Conway
2010-07-07Fixing test plus-mult.cvc by making it linear (Fixes: #184)Christopher L. Conway
2010-07-07chris and i committed the same fix; reverting the (now duplicated) fixMorgan Deters
2010-07-07Disabling failing testsChristopher L. Conway
2010-07-07add exit status to regression that was failingMorgan Deters
2010-07-07Adding tests for precedence of arithmetic in CVC inputsChristopher L. Conway
2010-07-06Adding Array types to SMT2 parserChristopher L. Conway
2010-07-06add regressions from bug reportsMorgan Deters
2010-07-04assigning benchmark statusesMorgan Deters
2010-07-04don't do extra-checking for all regressions; that's probably a bad defaultMorgan Deters
2010-07-04With "-d extra-checking", rewrites are now checked (afterMorgan Deters
post-rewrite, another full rewrite is performed and the results compared). Also added another response code to rewriters. Theories return a CVC4::theory::RewriteResponse from preRewrite() and postRewrite(). This class has nice subclasses to make the theory rewriters somewhat self-documenting in termination behavior. They look like tail-recursive rewriting calls, but they're not; they are instantiations of the RewriteResponse result code, which carries the Node being returned: // Flags the node as DONE pre- or post-rewriting, though this is // ignored if n belongs to another theory. // // NOTE this just changed name from RewritingComplete(), which // didn't match RewriteAgain(). // return RewriteComplete(n); // Flags the node as needing another pre-rewrite (if returned from a // preRewrite()) or post-rewrite (if returned from a postRewrite()). // return RewriteAgain(n); // Flags the node as needing another FULL rewrite. This is the same // as RewriteAgain() if returned from preRewrite(). If it's returned // from postRewrite(), however, this causes a full preRewrite() and // postRewrite() of the Node and all its children (though the cache is // still in effect, which might elide some rewriting calls). // // This would have been another fix for bug #168. Its use should be // discouraged in practice, but there are places where it will // probably be necessary, where a theory rewrites a Node into // something in another theory about which it knows nothing. // A common case is where the returned Node is expressed as a // conjuction or disjunction of EQUALs, or a negation of EQUAL, // where the EQUAL is across terms in another theory, and that EQUAL // subterm should be seen by the owning theory. // return FullRewriteNeeded(n);
2010-07-04make dist && make distcheck functional, other fixesMorgan Deters
2010-07-02* Added white-box TheoryEngine test that tests the rewriterMorgan Deters
* Added regression documentation to test/regress/README * Added ability to print types of vars in expr printouts with iomanipulator Node::printtypes(true)... for example, Warning() << Node::printtypes(true) << n << std::endl; * Types-printing can be specified on the command line with --print-expr-types * Improved type handling facilities and theoryOf(). For now, SORT_TYPE moved from builtin theory to UF theory to match old behavior. * Additional gdb debug functionality. Now we have: debugPrintNode(Node) debugPrintRawNode(Node) debugPrintTNode(TNode) debugPrintRawTNode(TNode) debugPrintTypeNode(TypeNode) debugPrintRawTypeNode(TypeNode) debugPrintNodeValue(NodeValue*) debugPrintRawNodeValue(NodeValue*) they all print a {Node,TNode,NodeValue*} from the debugger. The "Raw" versions print a very low-level AST-like form. The regular versions do the same as operator<<, but force full printing on (no depth-limiting). * Other trivial fixes
2010-06-30Support for failing .smt and .smt2 regressions (and other examples withMorgan Deters
additional output). If the benchmark file has '% EXPECT: ' gestures, like for cvc regressions, that is used (after being stripped out so that the cvc4 smt parser never sees these special lines). However, this can be a pain, since then you can't run the regression manually on the command line (since it fails to parse). So if there is another file in the same directory as $benchmark called $benchmark.expect, that is scanned for '% EXPECT: ' etc., and the benchmark file is used verbatim.
2010-06-30* theory "tree" rewriting implemented and worksMorgan Deters
* added TheoryArith::preRewrite() to test and demonstrate the use of pre-rewriting. * array types and type checking now supported * array type checking now supported * theoryOf() dispatching properly to arrays now * theories now required to implement a (simple) identify() function that returns a string identifying them for debugging/user output purposes * added "builtin" theory to hold all built-in kinds and their type rules and rewriting (currently only exploding distinct) * fixed production build failure (regarding NodeSetDepth) * removed an errant "using namespace std" in util/bitvector.h (and made associated trivial fixes elsewhere) * fixes to make unexpected exceptions more verbose in debug builds * fixes to make multiple, cascading assertion fails simpler * minor other fixes to comments etc.
2010-06-17fix some minor annoyances in the regression test Makefiles; add some ↵Morgan Deters
documentation
2010-06-14Started work on array theoryClark Barrett
2010-06-04Enabling RDL/IDL in SMT v1 and adding some simple testsChristopher L. Conway
2010-06-03Fixes 2 issues with assignments. The first is constructing an initial ↵Tim King
assignment for slack variables once solving has begun. (They cannot just be 0.) The second has to do with how assignments are backttacked. Assignments are now tracked all of the time, and are frozen once they are known to be consistent, i.e. after a successful updateInconsistentVars(). Also added a fuzz test that shows both of these problems to the regressions.
2010-06-02more VERBOSE test failuresMorgan Deters
2010-05-29Adding a couple of example from fuzzsmt to regress1.Tim King
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback