summaryrefslogtreecommitdiff
path: root/src/util
AgeCommit message (Collapse)Author
2011-04-18Partial merge from datatypes-merge branch:Morgan Deters
1. Defines a new type "DatatypeType", a type-constant that holds a Datatype, describing an inductive data type. 2. CVC language parser supports datatypes. 3. CVC language printer now functional. 4. Minor other cleanups. No performance impact is expected outside of datatypes. I'm verifying that that is the case with a cluster job this morning.
2011-04-12another small fix to "make dist" that can lead to a misconfigured tarballMorgan Deters
2011-04-11Transitive closure module is workingClark Barrett
2011-04-10merge from replay branchMorgan Deters
2011-04-08Added util classClark Barrett
2011-04-05Memory fix for congruence closure; affects many UF benchmarks, probably AX too.Morgan Deters
2011-04-05Added options for setting the random decision frequency and random seed for ↵Tim King
the sat solver. Also added command line options for setting both.
2011-04-02minor fixesMorgan Deters
2011-04-01minor bugfixes (fixes broken dynamic-library build from last night)Morgan Deters
2011-04-01This commit is a merge from the "betterstats" branch, which:Morgan Deters
* Makes Options an "omnipresent thread-local global" (like the notion of the "current NodeManager" was already). Options::current() accesses this structure. * Removes Options from constructors and data structures everywhere (this cleans up a lot of things). * No longer uses StatisticsRegistry statically. An instance of the registry is created and linked to a NodeManager. * StatisticsRegistry::current() is similar to Options::current(), but the pointer is stowed in the NodeManager (rather than stored) * The static functions of StatisticsRegistry have been left, for backward compatibility; they now use the "current" statistics registry. * SmtEngine::getStatisticsRegistry() is a public accessor for the registry; this is needed by main() to reach in and get the registry, for flushing statistics at the end.
2011-03-30adding CVC4:: qualifier to the #define for debugging so that it can be used ↵Dejan Jovanović
outside of CVC4 namespace (like minisat)
2011-03-30Moved the constructor for Options out of the header and into the cpp. For ↵Tim King
people who fiddle with default values set by the Options constructor, this will require significantly less recompiling.
2011-03-30Added the command line flag --rewrite-arithmetic-equalities. This sets a ↵Tim King
static flag in Options that the ArithRewriter uses to determine the equality rewriting policy.
2011-03-30Add Valuation::getSatValue() so that theories can access the currentMorgan Deters
(propositional) assignment for theory atoms. Fixed Debug/Trace as discussed in bug ticket #252 and on the mailing list. This implementation leads to some compiler warnings in production builds, but these will be corrected in coming days. There appears to be a small speedup in the parser as a result of this fix: http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=1902&reference_id=1886&p=5 Cleaned up a few CD Boolean attribute things. Various small fixes to coding guidelines / test coverage. This commit: * Resolves bug 252 (tracing not disabled in production builds) * Resolves bug 254 (implement CDAttrHash<>::BitIterator::find())
2011-03-30Merged the branch sparse-tableau into trunk.Tim King
2011-03-20commit for the version of bitvectors that passes all the unit testsDejan Jovanović
2011-03-17Fix for the bug introduced in 1477. The stuff that was added to ↵Tim King
CVC4ostream::operator<< should only be executed when d_os != NULL. This was the cause of the NULL pointer dereference in debug builds.
2011-03-17push and pop manipulators for output stream so that one can indent the outputDejan Jovanović
ueful for me, maybe someone else finds it useful also
2011-03-15Merge from cudd branch. This mostly just adds support for linkingMorgan Deters
against cudd libraries, the propositional_query class (in util/), which uses cudd if it's available (and otherwise answers UNKNOWN for all queries), and the arith theory support for it (currently disabled per Tim's request, so he can clean it up). Other changes include: * contrib/debug-keys - script to print all used keys under Debug(), Trace() * test/regress/run_regression - minor fix (don't export a variable) * configure.ac - replace a comment removed by dejan's google perf commit * some minor copyright/documentation updates, and minor changes to source text to make 'clang --analyze' happy.
2011-03-10Fix bug 246 (occasional buffer overflow related to varargs in ↵Morgan Deters
assertion-failure string construction) and addition of an assert_white unit test check for the issue
2011-03-08Clean up Theory base class as per code review bug #60; also fixes to ↵Morgan Deters
CodeTimer statistic, and adding a CodeTimer to TheoryEngine::EngineOutputChannel::newFact() for investigation into (possible) slow or redundant theory registration.
2011-03-05- Made Rational::sgn() function const.Tim King
2011-03-03fix for bug #244, "Segfault if file cannot be found and --stats is on"Morgan Deters
2011-03-03resurrecting triple.h from r1023 (after which it was removed)Morgan Deters
2011-02-28CongruenceClosure module now should support nullary congruence operators ↵Morgan Deters
(now that they are allowed for the datatypes theory, as in (APPLY_CONSTRUCTOR nil) or (APPLY_CONSTRUCTOR zero)). It does this by treating such terms with zero children as non-candidates for congruence, even though they have the congruence kind APPLY_CONSTRUCTOR.
2011-02-28Review of statistics code. Added lots of documentation, and fixed an issue ↵Morgan Deters
(I think) that Tim found with TimerStat involving wild, sometimes negative, timer statistic values. (It was due to improper initialization.)
2011-02-27- Adds a path for Theory to be passed a reference to Options.Tim King
- Adds 3 choices of heuristic variable orders to use in ArithPriorityQueue. - Adds the pivot-rule command line option.
2011-02-26Commit to fix bug 241 (improper "using namespace std" in a header). This ↵Morgan Deters
caused a number of latent errors in sources and headers to come up. Those are now fixed (by adding "using" or "std::" depending on the context). Took the opportunity to bring many rewriter sources in line with coding conventions.
2010-12-16minor fixes for correct doxygen outputMorgan Deters
2010-12-14make some CC module methods private that should not have been publicMorgan Deters
2010-12-14congruence closure module now supports things other than APPLY_UF; ported ↵Morgan Deters
from "arrays" branch to trunk
2010-11-19Merge from ufprop branch, including:Morgan Deters
* Theory::staticLearning() for statically adding new T-stuff before normal preprocessing. UF's staticLearning() does transitivity of equality/iff, solving the diamonds. * more aggressive T-propagation for UF * new KEEP_STATISTIC macro to hide Theories from having to register/deregister statistics (and also has the advantage of keeping the statistic type, field name, and the 'tag' used to output the statistic in the same place---instead of scattered in the theory definition and constructor initializer list. See documentation for KEEP_STATISTIC in src/util/stats.h for more of an explanation). * more statistics for UF * restart notifications from SAT (through TheoryEngine) via Theory::notifyRestart() * StackingMap and UnionFind unit tests * build fixes/adjustments * code cleanup; minor other improvements
2010-11-19add statistics support information to --show-configMorgan Deters
2010-11-17add some stats to UF/CCMorgan Deters
2010-11-17The "UF engineering issues" release, after much profiling.Morgan Deters
* swap in backtracking data structures (that use and maintain their own undo stack) in some places instead of the usual Context-aware paradigm (MUCH faster). * cosmetic changes to UF, CC modules.
2010-11-15Pretty-printer infrastructure created (in src/printer) and SMT-LIBv2 printerMorgan Deters
implemented. This new infrastructure removes support for pretty-printing (even in the AST language) an Expr with reference count 0. Previously, this was supported in a few places internally to the expr package, for example in NodeBuilder. (Now, a NodeBuilder cannot be prettyprinted, you must extract the Node before printing it.)
2010-11-09Lemmas on demand work, push-pop, some cleanup.Dejan Jovanović
2010-11-08command-line flag to disable theory registration, also SMT-LIBv2 compliance ↵Morgan Deters
(per SMT-LIB mailing list this afternoon)
2010-11-08cleanup, documentation, SMT-LIBv2 complianceMorgan Deters
2010-11-05Moving Options fiddling to options.hChristopher L. Conway
2010-11-03Adds AverageStat to stats.h.Tim King
2010-10-31enable dependence graphs in doxygen; fix lots of doxygen warnings, fix some ↵Morgan Deters
documentation, and make it possible to "make doc" on a clean source tree (post-configure)
2010-10-24add a CVC4_UNDEFINED keyword, for intentionally undefined functions (like ↵Morgan Deters
private copy constructors and assignment, for instance) that generates better, compile-time error messages if the function is used (before, you'd have to wait until link time); also some minor cleanup
2010-10-22removing unused functionality from util; related to bug #222Morgan Deters
2010-10-22Using Options in ParserBuilder and InteractiveShellChristopher L. Conway
2010-10-22Merging main/getopt.cpp, main/usage.h, and smt/options.h inChristopher L. Conway
util/options.h,cpp
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-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-12check last result in (get-assignment); some context cleanupMorgan Deters
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback