Morgan Deters [Fri, 29 Oct 2010 21:08:41 +0000 (21:08 +0000)]
portability updates to build system
Tim King [Fri, 29 Oct 2010 20:57:50 +0000 (20:57 +0000)]
Adds a very small test that triggers a bug. The bug is from the commit for -r1063.
Morgan Deters [Fri, 29 Oct 2010 19:44:03 +0000 (19:44 +0000)]
minor fixes as a result of review of Chris's getType() rewrite; also fix some macros to make various GCC versions happy
Tim King [Fri, 29 Oct 2010 15:51:25 +0000 (15:51 +0000)]
Fixes RowVector::has().
Tim King [Fri, 29 Oct 2010 00:45:10 +0000 (00:45 +0000)]
Factors out the QF_LRA decision procedure from TheoryArith and puts this into its own class SimplexDecisionProcedure. Implements about 1/2 of the pivoting rule from Alberto's thesis (section2.5.3).
Tim King [Thu, 28 Oct 2010 21:46:44 +0000 (21:46 +0000)]
The Row implementation has no been replaced by RowVector and ReducedRowVector. A RowVector is an array of ArithVar and Rational pairs. (This replaces a map based implementation in Row.) ReducedRowVector is a RowVector with a notion of having a basic variable. The Tableau is now a collection of ReduceRowVector's. A major difference between ReducedRowVectors and Rows is that the iterator now includes the basic variable and its coefficient (always -1). Before only nonbasic members were accessible by the iterator.
Christopher L. Conway [Thu, 28 Oct 2010 21:12:02 +0000 (21:12 +0000)]
Changing NodeBuilder::debugCheckType() to maybeCheckType()
Changing NodeManager/ExprManager constructors to take Options
Christopher L. Conway [Thu, 28 Oct 2010 20:05:32 +0000 (20:05 +0000)]
Disabling bottom-up algorithm in NodeManager::getType() when type checking
is not requested or eager type checking is enabled
Morgan Deters [Thu, 28 Oct 2010 06:20:17 +0000 (06:20 +0000)]
fix confusing CXXTEST configure message, indicating success at finding cxxtest when it wasn't found.
Christopher L. Conway [Wed, 27 Oct 2010 22:53:09 +0000 (22:53 +0000)]
Small change to documentation in NodeManager::getType
Christopher L. Conway [Wed, 27 Oct 2010 22:53:03 +0000 (22:53 +0000)]
Slightly more efficient version of getType
Morgan Deters [Wed, 27 Oct 2010 20:13:31 +0000 (20:13 +0000)]
make dist-building more pleasant (put .tar.gz in builds/ directory)
Christopher L. Conway [Wed, 27 Oct 2010 20:10:16 +0000 (20:10 +0000)]
Changing dependency info in README
Christopher L. Conway [Wed, 27 Oct 2010 20:10:12 +0000 (20:10 +0000)]
Modifying getType to use a non-recursive algorithm (Fixes: #228)
Morgan Deters [Wed, 27 Oct 2010 06:02:04 +0000 (06:02 +0000)]
fix test Makefile
Morgan Deters [Wed, 27 Oct 2010 05:48:49 +0000 (05:48 +0000)]
"make dist" fixes; a distribution tarball can now build and pass tests. "make distcheck" fails only because one of the "clean" targets needs work in test/unit
Morgan Deters [Wed, 27 Oct 2010 05:29:39 +0000 (05:29 +0000)]
support focus on a particular subpackage (e.g. "expr")
Morgan Deters [Wed, 27 Oct 2010 05:02:29 +0000 (05:02 +0000)]
inter-package dependence graph generation (in dot format)
Morgan Deters [Tue, 26 Oct 2010 19:24:09 +0000 (19:24 +0000)]
GetValueCommand now gives a TUPLE as output, with the first operand the input expression and the second the value (resolves bug 227)
Christopher L. Conway [Tue, 26 Oct 2010 18:17:13 +0000 (18:17 +0000)]
Cleaning up some header files
Christopher L. Conway [Tue, 26 Oct 2010 15:25:47 +0000 (15:25 +0000)]
Adding dependency info to README
Morgan Deters [Mon, 25 Oct 2010 15:42:56 +0000 (15:42 +0000)]
for static linking of driver binary, list libmain.a first (fixes link errors in last night's regressions)
Morgan Deters [Mon, 25 Oct 2010 15:25:50 +0000 (15:25 +0000)]
missing case in expr output; resolves bug 226
Christopher L. Conway [Sun, 24 Oct 2010 16:37:00 +0000 (16:37 +0000)]
Adding unit test for InteractiveShell
Morgan Deters [Sun, 24 Oct 2010 02:44:35 +0000 (02:44 +0000)]
add a CVC4_UNDEFINED keyword, for intentionally undefined functions (like 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
Tim King [Sat, 23 Oct 2010 21:47:47 +0000 (21:47 +0000)]
Removed slack.h, and arith_activity.h. Replaced IsBasicManager with the more general ArithVarDenseSet. Renamed NextArithRewriter to ArithRewriter.
Christopher L. Conway [Sat, 23 Oct 2010 14:49:06 +0000 (14:49 +0000)]
Adding Parser::setInput and using it in InteractiveShell (Fixes: #225)
Removing ParserBuilder::withStateFrom
Morgan Deters [Fri, 22 Oct 2010 23:19:14 +0000 (23:19 +0000)]
removing unused functionality from util; related to bug #222
Morgan Deters [Fri, 22 Oct 2010 23:17:13 +0000 (23:17 +0000)]
fix valgrind-reported errors in parser builder; a non-SMT parser was always used (rather than an Smt or Smt2) regardless of input language
Christopher L. Conway [Fri, 22 Oct 2010 22:50:44 +0000 (22:50 +0000)]
Saving state between lines in interactive mode (Fixes: #223)
Christopher L. Conway [Fri, 22 Oct 2010 22:50:39 +0000 (22:50 +0000)]
Using Options in ParserBuilder and InteractiveShell
Christopher L. Conway [Fri, 22 Oct 2010 22:50:33 +0000 (22:50 +0000)]
Merging main/getopt.cpp, main/usage.h, and smt/options.h in
util/options.h,cpp
Tim King [Fri, 22 Oct 2010 20:22:39 +0000 (20:22 +0000)]
Code cleanup for TheoryArith.
Morgan Deters [Fri, 22 Oct 2010 18:02:01 +0000 (18:02 +0000)]
comment out the "interactive" check in SmtEngine::getValue() for now (resolves bug 224), and fix a comment in NodeManager header
Tim King [Fri, 22 Oct 2010 01:28:40 +0000 (01:28 +0000)]
Fixes to getValue for TheoryArith.
Christopher L. Conway [Thu, 21 Oct 2010 22:51:30 +0000 (22:51 +0000)]
* Option --no-type-checking now disables type checks in SmtEngine
* Adding options --lazy-type-checking and --eager-type-checking
to control type checking in NodeBuilder, which can now be enabled
in production mode and disabled in debug mode
* Option --no-checking implies --no-type-checking
* Adding constructor SmtEngine(ExprManager* em) that uses default options
Christopher L. Conway [Wed, 20 Oct 2010 21:49:34 +0000 (21:49 +0000)]
Changing --no-early-type-checking to --no-type-checking
Disabling type checking when --no-checking is given (Fixes: #221)
Christopher L. Conway [Wed, 20 Oct 2010 21:49:22 +0000 (21:49 +0000)]
Enabling semantic checks in ParserBuilder
Christopher L. Conway [Wed, 20 Oct 2010 21:49:10 +0000 (21:49 +0000)]
Adding detection of TTY vs. piped input for interactive mode
Christopher L. Conway [Wed, 20 Oct 2010 20:41:10 +0000 (20:41 +0000)]
Fixing minor whitespace bug in the parser
Christopher L. Conway [Wed, 20 Oct 2010 20:41:03 +0000 (20:41 +0000)]
Adding support for interactive mode
Morgan Deters [Wed, 20 Oct 2010 04:09:50 +0000 (04:09 +0000)]
fix bug #220 (assertion fails if no query/check-sat); add bug220.smt2 and 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)
Tim King [Thu, 14 Oct 2010 18:26:42 +0000 (18:26 +0000)]
Fixed computation of infinitesimals for arithmetic model generation.
Tim King [Wed, 13 Oct 2010 01:17:24 +0000 (01:17 +0000)]
Removed vector<Monomial> monos from Polynomial. Now using expr::NodeSelfIterator.
Tim King [Wed, 13 Oct 2010 01:15:24 +0000 (01:15 +0000)]
Added test/regress/regress1/arith and populated it with some fast SMT LIB problems.
Morgan Deters [Tue, 12 Oct 2010 22:08:54 +0000 (22:08 +0000)]
with --stats, statistics are dumped for memouts and (normal) exceptions.
Tim King [Tue, 12 Oct 2010 22:04:58 +0000 (22:04 +0000)]
IDENTITY has been removed.
Morgan Deters [Tue, 12 Oct 2010 22:03:24 +0000 (22:03 +0000)]
minor unit test fix-ups
Morgan Deters [Tue, 12 Oct 2010 21:59:40 +0000 (21:59 +0000)]
fix debugPrintNode(), debugPrintTNode(), debugPrintNodeValue(), debugPrintTypeNode() -- thanks Tim for pointing this out
Morgan Deters [Tue, 12 Oct 2010 21:49:07 +0000 (21:49 +0000)]
fix some leaks in parser, add debug code to node manager to find more
Morgan Deters [Tue, 12 Oct 2010 21:10:36 +0000 (21:10 +0000)]
hooked up "we are incomplete" flag after conversation with Tim (a theory notifies the theory engine through its output channel); some cleanup; add a regression for bug #216
Morgan Deters [Tue, 12 Oct 2010 20:20:24 +0000 (20:20 +0000)]
Merge from cc-memout branch. Here are the main points
* 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.
Morgan Deters [Tue, 12 Oct 2010 14:09:54 +0000 (14:09 +0000)]
check last result in (get-assignment); some context cleanup
Morgan Deters [Mon, 11 Oct 2010 07:09:04 +0000 (07:09 +0000)]
use "forward" headers
Morgan Deters [Sun, 10 Oct 2010 22:15:38 +0000 (22:15 +0000)]
additional model gen and SMT-LIBv2 compliance work: (get-assignment) now 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
Morgan Deters [Sat, 9 Oct 2010 10:10:47 +0000 (10:10 +0000)]
reverting some changes to parser from last commit
Morgan Deters [Sat, 9 Oct 2010 09:49:35 +0000 (09:49 +0000)]
support for SMT-LIBv2 :named attributes, and attributes in general; zero-ary define-fun; several set-info, set-option, get-option, get-info improvementss
Morgan Deters [Sat, 9 Oct 2010 06:16:29 +0000 (06:16 +0000)]
fix to unit tests
Morgan Deters [Sat, 9 Oct 2010 06:13:17 +0000 (06:13 +0000)]
bug fixes to model gen
Morgan Deters [Sat, 9 Oct 2010 04:24:15 +0000 (04:24 +0000)]
Model generation for arith, boolean, and uf theories via
(get-value ...) SMT-LIBv2 command. As per SMT-LIBv2 spec,
you must pass --interactive --produce-models on the command
line (although they don't currently make us do any extra
work). Closes bug #213.
Morgan Deters [Fri, 8 Oct 2010 23:12:28 +0000 (23:12 +0000)]
* (define-fun...) now has proper type checking in non-debug builds
(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!)
Morgan Deters [Fri, 8 Oct 2010 06:25:05 +0000 (06:25 +0000)]
support (set-info) on status, source, category, difficulty, smt-lib-version, and notes; reduces extraneous "unsupported" output
Morgan Deters [Thu, 7 Oct 2010 22:58:17 +0000 (22:58 +0000)]
oops, reverting a change to a regression test that had intentionally caused a typechecking violation
Morgan Deters [Thu, 7 Oct 2010 22:54:43 +0000 (22:54 +0000)]
type checking for define-fun in production builds; related to (and might resolve) bug 212
Morgan Deters [Thu, 7 Oct 2010 21:42:51 +0000 (21:42 +0000)]
NodeSelfIterator implementation and unit test (resolves bug #204); also fix ParserBlack unit test initialization
Tim King [Thu, 7 Oct 2010 18:47:42 +0000 (18:47 +0000)]
Small tableau optimization.
Morgan Deters [Thu, 7 Oct 2010 07:16:49 +0000 (07:16 +0000)]
SMT-LIBv2 (define-fun...) command now functional; does eager expansion at preprocessing time
Morgan Deters [Wed, 6 Oct 2010 08:31:35 +0000 (08:31 +0000)]
declare-sort, define-sort working but not thoroughly tested; define-fun half working (just need to decide where to expand)
Morgan Deters [Tue, 5 Oct 2010 22:24:09 +0000 (22:24 +0000)]
parser and core support for SMT-LIBv2 commands get-info, set-option, get-option, get-assertions, get-value, define-sort, define-fun, and declare-sort with arity > 0; SmtEngine doesn't yet support most of these, but will shortly...
Morgan Deters [Mon, 4 Oct 2010 22:23:53 +0000 (22:23 +0000)]
fix gdb issues (at least for static builds); resolves bug 194
Morgan Deters [Mon, 4 Oct 2010 09:31:11 +0000 (09:31 +0000)]
fix regular expressions in build system
Morgan Deters [Mon, 4 Oct 2010 07:02:06 +0000 (07:02 +0000)]
fixing CLN builds, which had broken the build tonight; will re-run regression script
Morgan Deters [Mon, 4 Oct 2010 05:50:19 +0000 (05:50 +0000)]
re-add a dependency to fix compile warnings
Morgan Deters [Mon, 4 Oct 2010 04:20:19 +0000 (04:20 +0000)]
remove/shuffle some #include dependencies; fix some documentation; apply coding standards
Tim King [Mon, 4 Oct 2010 01:19:43 +0000 (01:19 +0000)]
Fix to bug 211. ArithVar is now typedefed to uint32_t.
Morgan Deters [Sun, 3 Oct 2010 00:06:25 +0000 (00:06 +0000)]
file header documentation regenerated with contributors names; no code modified in this commit
Morgan Deters [Sat, 2 Oct 2010 23:53:18 +0000 (23:53 +0000)]
revert a workaround fix to CDMap that was committed as part of the arith-indexed-vars merge, and fix the root cause (maybe?) in attribute.cpp: previously, items from the cdnodes attribute table weren't properly being "obliterated" from the table due to a typo
Morgan Deters [Sat, 2 Oct 2010 22:14:44 +0000 (22:14 +0000)]
dump statistics on abnormal output: unexpected exceptions, SEGV, ILL, memout...
Tim King [Sat, 2 Oct 2010 05:52:51 +0000 (05:52 +0000)]
branches/arith-indexed-variables merged into the main trunk.
Morgan Deters [Fri, 1 Oct 2010 22:25:01 +0000 (22:25 +0000)]
re-add no-deprecated to C sources; update some file-level documentation; first look at cdvector for code review
Morgan Deters [Fri, 1 Oct 2010 22:05:05 +0000 (22:05 +0000)]
last update broke the parser inadvertently, fixing...
Morgan Deters [Fri, 1 Oct 2010 21:35:31 +0000 (21:35 +0000)]
replacement implementation for clock_gettime() on mac os x, build portability (resolving mac os x issues), code cleanup, fix compiler warnings
Morgan Deters [Thu, 30 Sep 2010 21:39:14 +0000 (21:39 +0000)]
fixed a number of problems with mac os x builds. build now works on mac os x if you disable the clock_gettime check in configure.ac (resolves bug #202), but the parser is broken (new bug #208)
Morgan Deters [Tue, 28 Sep 2010 22:44:00 +0000 (22:44 +0000)]
fix predicate bug in UF; code cleanup in theory.cpp
Morgan Deters [Tue, 28 Sep 2010 20:57:25 +0000 (20:57 +0000)]
node iterator work
Morgan Deters [Tue, 28 Sep 2010 20:53:59 +0000 (20:53 +0000)]
fix pre-registration of operator, previously committed; clean up theory engine code and unit test
Morgan Deters [Tue, 28 Sep 2010 20:25:47 +0000 (20:25 +0000)]
fix unit test for kinded iterators in Node/TNode
Morgan Deters [Tue, 28 Sep 2010 20:09:33 +0000 (20:09 +0000)]
fix TLS support for platforms (e.g. Mac OS X) where __thread storage class doesn't exist, and clean up a few things in NodeManager
Morgan Deters [Tue, 28 Sep 2010 16:47:50 +0000 (16:47 +0000)]
comment fix as per this morning's meeting; also, don't theory-rewrite operators (resolves bug #198)
ACSYS [Mon, 27 Sep 2010 22:26:46 +0000 (22:26 +0000)]
add workaround for systems (i.e., Mac OS X) that don't support __thread; also configure script auto-detection of __thread support and syntax
Tim King [Mon, 27 Sep 2010 21:10:47 +0000 (21:10 +0000)]
- This update adds DynamicArray<T>. This is a bare bones heap allocated 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().
Dejan Jovanović [Fri, 24 Sep 2010 22:38:21 +0000 (22:38 +0000)]
equality triggers for the equality engine
fixed order of destruction in smt_engine
Morgan Deters [Fri, 24 Sep 2010 21:28:34 +0000 (21:28 +0000)]
roll back an unintended change with r900
Morgan Deters [Fri, 24 Sep 2010 21:20:33 +0000 (21:20 +0000)]
Fix build system for Mac OS X builds (resolves bug #203)
Dejan Jovanović [Fri, 24 Sep 2010 15:03:28 +0000 (15:03 +0000)]
basic union find for bitvectors
Christopher L. Conway [Wed, 22 Sep 2010 20:22:16 +0000 (20:22 +0000)]
Fixing NodeBuilderBlack
Christopher L. Conway [Tue, 21 Sep 2010 23:25:11 +0000 (23:25 +0000)]
Rm'ing automatic type check in NodeBuilder for vars/constants
Morgan Deters [Tue, 21 Sep 2010 22:40:50 +0000 (22:40 +0000)]
remove assertion in TNode destructor and ensure all TNode methods check rc > 0 (resolves bug #200); on NodeManager/ExprManager side, no more prepareToBeDestroyed() / inDestruction
Morgan Deters [Tue, 21 Sep 2010 21:51:25 +0000 (21:51 +0000)]
fix statistics-registry-related memory leaks
Morgan Deters [Tue, 21 Sep 2010 21:50:26 +0000 (21:50 +0000)]
part of review (bug #197): coding conventions, file-level documentation, re-ran update-copyright.pl, etc.