summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
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-12minor unit test fix-upsMorgan Deters
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-09reverting some changes to parser from last commitMorgan Deters
2010-10-09fix to unit testsMorgan Deters
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-07NodeSelfIterator implementation and unit test (resolves bug #204); also fix ↵Morgan Deters
ParserBlack unit test initialization
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-03file header documentation regenerated with contributors names; no code ↵Morgan Deters
modified in this commit
2010-10-02branches/arith-indexed-variables merged into the main trunk.Tim King
2010-10-01re-add no-deprecated to C sources; update some file-level documentation; ↵Morgan Deters
first look at cdvector for code review
2010-10-01replacement implementation for clock_gettime() on mac os x, build ↵Morgan Deters
portability (resolving mac os x issues), code cleanup, fix compiler warnings
2010-09-30fixed a number of problems with mac os x builds. build now works on mac os ↵Morgan Deters
x if you disable the clock_gettime check in configure.ac (resolves bug #202), but the parser is broken (new bug #208)
2010-09-28fix predicate bug in UF; code cleanup in theory.cppMorgan Deters
2010-09-28fix pre-registration of operator, previously committed; clean up theory ↵Morgan Deters
engine code and unit test
2010-09-28fix unit test for kinded iterators in Node/TNodeMorgan Deters
2010-09-27- This update adds DynamicArray<T>. This is a bare bones heap allocated ↵Tim King
array that dynamically can increase in size. This has functionality similar to vector<T>. The main difference is that it can be constructed in an ill-formed manner. This means that it can generalize CDList<T>. - CDVector<T> has been added. This is intended to allow for context-dependent destructive updates, while the vector size increases are permanent. Behaviorally, this is most similar to vector< CDO<T> >. The differences between the two are: only one ContextObj is registered to the Context, backtracks are done in a lazy fashion, CDVector::push_back(val) sets the value of back() at context level 0 to val where vector<CDO<T>>::push_back(val) sets back() at the current context level to val and back() at context level 0 to the default constructor T().
2010-09-24basic union find for bitvectorsDejan Jovanović
2010-09-22Fixing NodeBuilderBlackChristopher L. Conway
2010-09-21some code cleanup, documentation, review of "kinded-iterator" code, and ↵Morgan Deters
addition of a unit test
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-13make Node iterators more STL-friendly, resolves bug #196Morgan Deters
2010-09-13* New normal form for arithmetic is in place.Tim King
* src/theory/arith/normal_form.{h,cpp} contains the description for the new normal form as well as utilities for dealing with the normal form. * src/theory/arith/next_arith_rewriter.{h,cpp} contains the new rewriter. The new rewriter implements preRewrite() and postRewrite() for arithmetic. * src/theory/arith/arith_rewriter.{h,cpp} have been removed. * TheoryArith::rewrite() has been removed. * Arithmetic with the new normal form outperforms the trunk where the branch occurred (-r797) on 46% of the examples in QF_LRA. (33% have no noticeable difference.) Some important optimizations are stilling pending to the code for handling the new normal form. (Bug 196.)
2010-09-02"Leftist NodeBuilders" are now supported.Morgan Deters
That is, "nb << a << b << c << OR << d << AND" turns into (AND (OR a b c) d) The rule is: pushing a kind onto a NodeBuilder with a nonzero number of child Nodes in it, the action "collapses" it. If a kind is already associated to the NodeBuilder, it is an error. Thus: NodeBuilder<> nb(AND); nb << AND; and NodeBuilder<> nb; nb << AND << OR; are both errors (if assertions are on). In reality, though, the implementation is trickier, as the collapsing is done lazily on the following push. This complicates things a bit, but by placing an Assert(false), I found that we aren't depending on the old behavior (at least for any unit tests or regressions in the source tree). The Assert(false) is now removed and leftist NodeBuilders are in business. Fixes bug 101.
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-08-17Add "no trash" CDMap elements, so that CDMap elements can themselvesMorgan Deters
be allocated in context memory. CDMap black-box test extended.
2010-08-16Fixing failures in minisatDejan Jovanović
2010-07-29fix TheoryEngineWhite, add documentation; related to bug #188Morgan Deters
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-28fixed theory engine white test for new (old) theoryOf() behavior (re: bug 188)Morgan Deters
2010-07-27Adding optional 'check' parameter to getType() methodsChristopher L. Conway
2010-07-22incorporate a fix from smtcomp2010 version for handling CNF of (= bool ↵Morgan Deters
bool); also make theoryOf(= t1 t2) return theoryOf(t1.getType()), rather than theoryOf(t1), as the latter gives different results for (= (geq x1 x2) (leq x2 x1)) and (= a (leq x2 x1)), which is strange and causes problems. should discuss at tuesday meeting. resolves bug 187.
2010-07-22Added test file for fuzzsmt bug, bug187.smt2.Tim King
2010-07-08context work to support cdmaps with elements allocated in context memoryMorgan Deters
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback