Tim King [Fri, 18 Feb 2011 23:28:19 +0000 (23:28 +0000)]
Changes:
- ArithVar is no longer an attribute
- RowVector's destructor reduces the row count of its variables upon.
- Tableau's destructor now free its rows instead of leaking memory.
- Added ability to convert ReducedRowVectors into equivalent Nodes.
- getValue() should work again.
Tim King [Thu, 17 Feb 2011 21:30:57 +0000 (21:30 +0000)]
This commit merges the branch branches/arithmetic/quick-row-has into trunk. quick-row-has has an optimization to make checking if a variable is in a row faster.
Tim King [Thu, 17 Feb 2011 18:22:16 +0000 (18:22 +0000)]
This commit is the promised clean up after removing row ejection.
Tim King [Thu, 17 Feb 2011 18:00:30 +0000 (18:00 +0000)]
Removed ActivityMonitor from arithmetic. This was only used for row ejection, and is now superfluous.
Tim King [Thu, 17 Feb 2011 17:46:31 +0000 (17:46 +0000)]
Row ejection is now completely disabled. Another commit cleaning this one up will follow shortly.
Tim King [Thu, 17 Feb 2011 17:41:15 +0000 (17:41 +0000)]
Removed vestigial normal form notes file from src/theory/arith/Makefile.am. Should have been removed earlier.
Dejan Jovanović [Thu, 17 Feb 2011 05:27:48 +0000 (05:27 +0000)]
some unit tests to work on slicing
Tim King [Thu, 17 Feb 2011 01:10:38 +0000 (01:10 +0000)]
I replaced the pattern "x = x + y;" with "x += y;" in a few places in DeltaRational. This addresses a point that came up in the code review.
Tim King [Thu, 17 Feb 2011 01:02:06 +0000 (01:02 +0000)]
Updates based on the group code review of arithmetic on 2011-02-15. The only substantive change is that UnatePropagator no longer uses attributes. The rest is comments and other beatification.
Tim King [Thu, 17 Feb 2011 00:55:11 +0000 (00:55 +0000)]
Deleting depricated files.
Dejan Jovanović [Thu, 17 Feb 2011 00:29:26 +0000 (00:29 +0000)]
getting ready for slicing bitvectors
Tim King [Wed, 16 Feb 2011 23:23:04 +0000 (23:23 +0000)]
Overview of the changes:
- Preparing to remove row ejection from the code base!
- Checks for conflicts immediately after a pivot to avoid potentially wasteful search.
- Added arithvar_set.h. This replaces ArithVarSet that was previously in the Tableau, and ArithVarDenseSet.
- Removes variables that have no preregistered bounds during presolve().
- Theory::isLeafOf() currently returns true for atoms. (I was unaware.) I modified Variable::isMember() to account for this exclude atoms.
- Added statistics all over the place.
This commit effects both boolean search and simplex search so expect running times to go all over the place. The time differences should be roughly as follows:
http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=1486&reference_id=1447&p=10&category=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,29
Dejan Jovanović [Wed, 16 Feb 2011 01:26:26 +0000 (01:26 +0000)]
updates for the rewriter, added some statistics
Tim King [Mon, 14 Feb 2011 02:47:01 +0000 (02:47 +0000)]
Reverses the order of the d_possiblyInconsistent queue. (It is that old termination bug again. *le sigh*)
Tim King [Sun, 13 Feb 2011 21:19:20 +0000 (21:19 +0000)]
3 heuristics were added to arithmetic. A heuristic for detecting an encoding of min added to static learning in LRA. A heuristic added for when the true branch and false branch are both constants (also in static learning). A heuristic for checking whether any variables begin in conflict before pivoting.
Dejan Jovanović [Wed, 5 Jan 2011 19:12:54 +0000 (19:12 +0000)]
fix for build errors
Dejan Jovanović [Wed, 5 Jan 2011 03:21:35 +0000 (03:21 +0000)]
Commit for the theory engine and rewriter changes. Changes are substantial and not yet finalized but I need to put it in to work further with the theory writers. Please check the files that you 'own'. Any comments or discussion is welcome. Further details will be coming in a follow up email later.
Morgan Deters [Fri, 17 Dec 2010 23:09:15 +0000 (23:09 +0000)]
tls.h, rational.h, and integer.h are only re-generated if changed. this obviates the need for a full rebuild just because you re-./configured.
Morgan Deters [Thu, 16 Dec 2010 00:36:53 +0000 (00:36 +0000)]
minor fixes for correct doxygen output
Morgan Deters [Tue, 14 Dec 2010 21:27:38 +0000 (21:27 +0000)]
make some CC module methods private that should not have been public
Morgan Deters [Tue, 14 Dec 2010 21:07:46 +0000 (21:07 +0000)]
congruence closure module now supports things other than APPLY_UF; ported from "arrays" branch to trunk
Morgan Deters [Tue, 14 Dec 2010 19:37:35 +0000 (19:37 +0000)]
permit PARAMETERIZED operators to be zero-ary
Morgan Deters [Tue, 14 Dec 2010 01:04:00 +0000 (01:04 +0000)]
fix to static learning application in UF, resolves bug# 239
Dejan Jovanović [Wed, 24 Nov 2010 18:50:54 +0000 (18:50 +0000)]
Changin the get() semantics to a CDQeue-sque semantics.
Morgan Deters [Fri, 19 Nov 2010 01:37:55 +0000 (01:37 +0000)]
Merge from ufprop branch, including:
* 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
Morgan Deters [Fri, 19 Nov 2010 00:12:17 +0000 (00:12 +0000)]
add statistics support information to --show-config
Morgan Deters [Thu, 18 Nov 2010 03:57:52 +0000 (03:57 +0000)]
small changes to documentation; also, '\''make doc'\'' doesn't build dot graphs (but nightly build system will produce them)
Morgan Deters [Wed, 17 Nov 2010 07:22:35 +0000 (07:22 +0000)]
fix improper CongruenceClosureWhite test by merging from a uf branch; fixes the nightly test failure
Morgan Deters [Wed, 17 Nov 2010 02:45:13 +0000 (02:45 +0000)]
add some stats to UF/CC
Morgan Deters [Wed, 17 Nov 2010 01:39:37 +0000 (01:39 +0000)]
The "UF engineering issues" release, after much profiling.
* 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.
Tim King [Tue, 16 Nov 2010 21:11:11 +0000 (21:11 +0000)]
Added Theory::presolve().
Morgan Deters [Tue, 16 Nov 2010 19:18:19 +0000 (19:18 +0000)]
SmtEngine now fails with a ModalException if --incremental is not enabled
but a push/pop or multiple query is attempted (previously it could give
incorrect answers)
Also, fix some multi-query and push-pop tests that had wrong answers, and
support a new "% COMMAND-LINE: " gesture in regression tests so that a
test can pass additional, specific command line flags it wants to run
with (here, --incremental).
Also fix mkbuilddir script for when it's called from contrib/switch-config.
Morgan Deters [Tue, 16 Nov 2010 00:20:30 +0000 (00:20 +0000)]
fix function signatures
Morgan Deters [Mon, 15 Nov 2010 23:58:41 +0000 (23:58 +0000)]
cleanup from today's commits: delegate as-yet-unimplemented prettyprinters in a better way; fix arith Makefile
Tim King [Mon, 15 Nov 2010 23:51:38 +0000 (23:51 +0000)]
Changes to Solver and PropEngine to support lemmasOnDemand during solve but not yet in d_checkSat.
Morgan Deters [Mon, 15 Nov 2010 22:57:14 +0000 (22:57 +0000)]
Pretty-printer infrastructure created (in src/printer) and SMT-LIBv2 printer
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.)
Tim King [Mon, 15 Nov 2010 21:15:45 +0000 (21:15 +0000)]
This commit merges the arith-prop-opt branch into the main trunk. This was done by way of the intermediate branch arith-prop-tmp. Both arith-prop-opt and arith-prop-tmp will now be phased out.
Morgan Deters [Mon, 15 Nov 2010 20:24:35 +0000 (20:24 +0000)]
minor tweaks to last commit, testing infrastructure
Morgan Deters [Mon, 15 Nov 2010 20:08:17 +0000 (20:08 +0000)]
fix some things with the build system (make dist, make install, make check)
Dejan Jovanović [Fri, 12 Nov 2010 04:39:54 +0000 (04:39 +0000)]
Some bug fixes in the SAT for lemmas, and an experiment with a more complete (wr propagation) splitter in arithmetic.
Morgan Deters [Thu, 11 Nov 2010 04:45:29 +0000 (04:45 +0000)]
make addsourcedir executable
Dejan Jovanović [Tue, 9 Nov 2010 21:57:06 +0000 (21:57 +0000)]
Lemmas on demand work, push-pop, some cleanup.
Morgan Deters [Mon, 8 Nov 2010 23:37:36 +0000 (23:37 +0000)]
command-line flag to disable theory registration, also SMT-LIBv2 compliance (per SMT-LIB mailing list this afternoon)
Morgan Deters [Mon, 8 Nov 2010 23:15:08 +0000 (23:15 +0000)]
cleanup, documentation, SMT-LIBv2 compliance
Morgan Deters [Mon, 8 Nov 2010 03:27:48 +0000 (03:27 +0000)]
fix out-of-date version/copyright for minisats
Christopher L. Conway [Fri, 5 Nov 2010 17:43:52 +0000 (17:43 +0000)]
Moving Options fiddling to options.h
Morgan Deters [Thu, 4 Nov 2010 21:01:31 +0000 (21:01 +0000)]
competition mode implies --no-checking
Tim King [Thu, 4 Nov 2010 16:30:25 +0000 (16:30 +0000)]
Moving the post_mortem.py script out of contrib and into the cvc4 scripts directory.
Tim King [Thu, 4 Nov 2010 16:28:02 +0000 (16:28 +0000)]
Updates post_mortem.py script to be able to handle certain kinds of crashes and new statistics.
Tim King [Thu, 4 Nov 2010 16:26:40 +0000 (16:26 +0000)]
This commit adds the ejected and un-ejected statistics.
Tim King [Wed, 3 Nov 2010 18:46:46 +0000 (18:46 +0000)]
Adds size() to RowVector.
Tim King [Wed, 3 Nov 2010 18:42:28 +0000 (18:42 +0000)]
Adds statistics for the number of Uservariables and Slack variables used by arithmetic.
Tim King [Wed, 3 Nov 2010 01:07:09 +0000 (01:07 +0000)]
Adds AverageStat to stats.h.
Morgan Deters [Sun, 31 Oct 2010 23:57:50 +0000 (23:57 +0000)]
small fix to debug segfaults
Morgan Deters [Sun, 31 Oct 2010 15:26:19 +0000 (15:26 +0000)]
enable dependence graphs in doxygen; fix lots of doxygen warnings, fix some documentation, and make it possible to "make doc" on a clean source tree (post-configure)
Morgan Deters [Sun, 31 Oct 2010 15:22:38 +0000 (15:22 +0000)]
maximize stack limit, handle SEGV signals on an alternate signal stack, and try to diagnose stack overflow
Tim King [Sat, 30 Oct 2010 19:18:36 +0000 (19:18 +0000)]
Adds a hueristic from Alberto's thesis. For a fixed window the row count is used to select which non-basic variable is a row in made basic.
Tim King [Fri, 29 Oct 2010 21:10:46 +0000 (21:10 +0000)]
Fix for a problem caused by using a != instead of == in generateConflictBelow(). Resolves a bug introduced in -r1063.
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)