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.
Morgan Deters [Tue, 21 Sep 2010 21:37:30 +0000 (21:37 +0000)]
svn:ignore properties for new bv stuff
Morgan Deters [Tue, 21 Sep 2010 21:36:22 +0000 (21:36 +0000)]
some code cleanup, documentation, review of "kinded-iterator" code, and addition of a unit test
Dejan Jovanović [Tue, 21 Sep 2010 17:33:06 +0000 (17:33 +0000)]
iterators for tim, begin<PLUS>() and end<PLUS>() should give him what he wants
Christopher L. Conway [Tue, 21 Sep 2010 16:36:48 +0000 (16:36 +0000)]
Rm'ing Makefile.in's
Christopher L. Conway [Tue, 21 Sep 2010 16:36:42 +0000 (16:36 +0000)]
Moving automatic type check to NodeBuilder (Fixes: #199)
Dejan Jovanović [Mon, 20 Sep 2010 16:47:38 +0000 (16:47 +0000)]
hooking up the bitvector tests
Dejan Jovanović [Mon, 20 Sep 2010 01:08:32 +0000 (01:08 +0000)]
bitvector rewriting for the core theory and testcases
Tim King [Thu, 16 Sep 2010 21:16:59 +0000 (21:16 +0000)]
Bug fix to CVC4::theory::arith::VarList as well as some superficial changes. test/regress/regress0/arith/arith.03.cvc now passes and is turned on by default. Tiny documentation fix for the arithmetic normal form.
Tim King [Tue, 14 Sep 2010 19:37:31 +0000 (19:37 +0000)]
* added test/regress/regress0/arith for easy arithmetic regress tests.
Morgan Deters [Tue, 14 Sep 2010 03:22:51 +0000 (03:22 +0000)]
ensure uf/congruence closure debugging stuff isn't called in production builds
Morgan Deters [Mon, 13 Sep 2010 23:35:30 +0000 (23:35 +0000)]
make Node iterators more STL-friendly, resolves bug #196
Morgan Deters [Mon, 13 Sep 2010 23:34:47 +0000 (23:34 +0000)]
build system consistency in target names for unit test targets
Morgan Deters [Mon, 13 Sep 2010 22:13:36 +0000 (22:13 +0000)]
statistics are now printed on timeout (SIGXCPU) and SIGINT if --stats is given
Morgan Deters [Mon, 13 Sep 2010 17:27:15 +0000 (17:27 +0000)]
link TAGS file into builds/ directory, when built. Resolves bug #195
Tim King [Mon, 13 Sep 2010 16:08:21 +0000 (16:08 +0000)]
* New normal form for arithmetic is in place.
* 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.)
Morgan Deters [Thu, 2 Sep 2010 09:05:26 +0000 (09:05 +0000)]
"Leftist NodeBuilders" are now supported.
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.
Morgan Deters [Thu, 2 Sep 2010 08:24:12 +0000 (08:24 +0000)]
recategorize eq_diamond14 as a regress2 test (instead of regress0)
Morgan Deters [Thu, 2 Sep 2010 08:16:28 +0000 (08:16 +0000)]
fix an error in TimerStat
Morgan Deters [Thu, 2 Sep 2010 07:32:00 +0000 (07:32 +0000)]
neglected build system update from r848 (last commit)
Morgan Deters [Thu, 2 Sep 2010 07:31:04 +0000 (07:31 +0000)]
* add TimerStat statistic type
* 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()
Morgan Deters [Wed, 1 Sep 2010 22:24:55 +0000 (22:24 +0000)]
"make check" now places binaries in the proper place before doing the checks; this closes bug 46 finally, though the major annoyances related to this bug already had been fixed long ago
Morgan Deters [Wed, 1 Sep 2010 22:20:43 +0000 (22:20 +0000)]
reflect in build strings that -gmp is now the default and -cln is an option
Morgan Deters [Wed, 1 Sep 2010 21:02:07 +0000 (21:02 +0000)]
added documentation, closes bug 97
Christopher L. Conway [Tue, 24 Aug 2010 17:09:40 +0000 (17:09 +0000)]
Making GMP default, CLN opt-in with --with-cln
Dejan Jovanović [Fri, 20 Aug 2010 18:23:53 +0000 (18:23 +0000)]
updating the minisat restart parameters after running some experiments
Morgan Deters [Fri, 20 Aug 2010 00:00:09 +0000 (00:00 +0000)]
turn off extra-checking (which does extra theory-rewriter checking); it was enabled by mistake in the last commit
Morgan Deters [Thu, 19 Aug 2010 23:49:58 +0000 (23:49 +0000)]
UF theory bug fixes, code cleanup, and extra debugging output.
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.
Morgan Deters [Wed, 18 Aug 2010 03:59:26 +0000 (03:59 +0000)]
more tests, configuration for UF
Morgan Deters [Tue, 17 Aug 2010 22:24:26 +0000 (22:24 +0000)]
Merge from "cc" branch:
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.
Morgan Deters [Tue, 17 Aug 2010 05:06:09 +0000 (05:06 +0000)]
Add "no trash" CDMap elements, so that CDMap elements can themselves
be allocated in context memory. CDMap black-box test extended.
Morgan Deters [Tue, 17 Aug 2010 05:05:54 +0000 (05:05 +0000)]
Change TheoryEngine to use pointers to theories instead of
calling them directly. In tests this doesn't appear to
lead to slowdown.
Morgan Deters [Mon, 16 Aug 2010 22:07:05 +0000 (22:07 +0000)]
add zlib checks to configure (new minisat requires it?)
Dejan Jovanović [Mon, 16 Aug 2010 21:49:42 +0000 (21:49 +0000)]
Fixing failures in minisat
Dejan Jovanović [Sun, 15 Aug 2010 21:35:42 +0000 (21:35 +0000)]
Dejan Jovanović [Sun, 15 Aug 2010 21:25:21 +0000 (21:25 +0000)]
Dejan Jovanović [Fri, 13 Aug 2010 17:47:56 +0000 (17:47 +0000)]
renaming minisat .C to .cc
Dejan Jovanović [Fri, 13 Aug 2010 17:27:12 +0000 (17:27 +0000)]
Adding the changes to the original copy
Christopher L. Conway [Fri, 13 Aug 2010 17:22:46 +0000 (17:22 +0000)]
Importing MiniSat2 070721 into trunk
Christopher L. Conway [Fri, 13 Aug 2010 17:21:24 +0000 (17:21 +0000)]
Removing newer version of MiniSat for Dejan's preferred import
Christopher L. Conway [Fri, 13 Aug 2010 17:20:19 +0000 (17:20 +0000)]
Importing MiniSat2 2.2.0 into trunk
Christopher L. Conway [Fri, 13 Aug 2010 17:19:28 +0000 (17:19 +0000)]
Removing old version of MiniSat for proper vendor import
Christopher L. Conway [Thu, 29 Jul 2010 18:33:33 +0000 (18:33 +0000)]
Adding configuration_private.h to allow inlining of configuration checks
Morgan Deters [Thu, 29 Jul 2010 16:52:14 +0000 (16:52 +0000)]
fix TheoryEngineWhite, add documentation; related to bug #188
Christopher L. Conway [Wed, 28 Jul 2010 23:04:44 +0000 (23:04 +0000)]
Adding TypeCheckingException to throws clause in SMT parsers
Christopher L. Conway [Wed, 28 Jul 2010 22:57:36 +0000 (22:57 +0000)]
Forcing a type check on Node construction in debug mode (Fixes: #188)
NOTE: mkNode/mkExpr/parsing functions can now throw type checking exceptions
Morgan Deters [Wed, 28 Jul 2010 02:57:22 +0000 (02:57 +0000)]
fixed theory engine white test for new (old) theoryOf() behavior (re: bug 188)
Christopher L. Conway [Tue, 27 Jul 2010 20:55:10 +0000 (20:55 +0000)]
Moving EQ->IFF handling from TheoryEngine to parser/type checker
Christopher L. Conway [Tue, 27 Jul 2010 20:54:33 +0000 (20:54 +0000)]
Adding optional 'check' parameter to getType() methods
Morgan Deters [Thu, 22 Jul 2010 21:55:28 +0000 (21:55 +0000)]
incorporate a fix from smtcomp2010 version for handling CNF of (= bool 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.
Tim King [Thu, 22 Jul 2010 20:24:27 +0000 (20:24 +0000)]
Added test file for fuzzsmt bug, bug187.smt2.
Morgan Deters [Sat, 10 Jul 2010 05:46:41 +0000 (05:46 +0000)]
add >, <=, and >= comparisons for Exprs and Nodes
Dejan Jovanović [Sat, 10 Jul 2010 04:32:03 +0000 (04:32 +0000)]
Fix for the type in sat propagation.
Dejan Jovanović [Fri, 9 Jul 2010 15:47:24 +0000 (15:47 +0000)]
the tableaux optimization
Christopher L. Conway [Thu, 8 Jul 2010 20:29:20 +0000 (20:29 +0000)]
Moving cluster-qf_lra-full to scripts project
Christopher L. Conway [Thu, 8 Jul 2010 20:28:36 +0000 (20:28 +0000)]
Moving cluster-qf_lra-benchmark to scripts project
Christopher L. Conway [Thu, 8 Jul 2010 19:12:41 +0000 (19:12 +0000)]
Adding missing operators in SMT2 parser: UMINUS, DIVISION, GEQ, LEQ
Christopher L. Conway [Thu, 8 Jul 2010 19:12:32 +0000 (19:12 +0000)]
Fixing Array type in SMT v1.2
Tim King [Thu, 8 Jul 2010 17:25:12 +0000 (17:25 +0000)]
I am adding my smt-crunch scripts to source control. Others may find them useful. To use them, log into goedel, sudo su acsys-user, and run ./cluster-script PATH_TO_EXECUTABLE. Be sure to change the email address in the script before using it. Improvements are of course welcome.
Morgan Deters [Thu, 8 Jul 2010 04:33:10 +0000 (04:33 +0000)]
context work to support cdmaps with elements allocated in context memory
Tim King [Thu, 8 Jul 2010 01:24:34 +0000 (01:24 +0000)]
Updates to the post_mortem.py script.
Clark Barrett [Wed, 7 Jul 2010 21:55:11 +0000 (21:55 +0000)]
Shared term manager tested and working
It is currently tracking all asserted equalities for simplicity.
Might want to check if this is a performance hit
Christopher L. Conway [Wed, 7 Jul 2010 16:25:36 +0000 (16:25 +0000)]
Making plus-mult.cvc test a bit more torturous (as enabled by r744)
Tim King [Wed, 7 Jul 2010 16:23:22 +0000 (16:23 +0000)]
Fixes arith rewriter to allow for division by a constant. It previously only allowed for a constant divided by a constant.
Christopher L. Conway [Wed, 7 Jul 2010 16:02:10 +0000 (16:02 +0000)]
Fixing test plus-mult.cvc by making it linear (Fixes: #184)
Morgan Deters [Wed, 7 Jul 2010 05:39:04 +0000 (05:39 +0000)]
minor changes to cdmap/cdset interface for detection of duplicate inserts
Morgan Deters [Wed, 7 Jul 2010 05:38:01 +0000 (05:38 +0000)]
chris and i committed the same fix; reverting the (now duplicated) fix
Clark Barrett [Wed, 7 Jul 2010 02:26:38 +0000 (02:26 +0000)]
Updated headers
Clark Barrett [Wed, 7 Jul 2010 02:18:42 +0000 (02:18 +0000)]
Added shared term manager. Basic mechanism for identifying shared terms is
working. Still need to implement theory-specific shared term propagation.
Christopher L. Conway [Wed, 7 Jul 2010 02:02:08 +0000 (02:02 +0000)]
Disabling failing tests
Morgan Deters [Wed, 7 Jul 2010 01:12:40 +0000 (01:12 +0000)]
add exit status to regression that was failing
Morgan Deters [Wed, 7 Jul 2010 00:57:48 +0000 (00:57 +0000)]
some build system changes reverted after the CLN build system work a few days ago, these are now fixed: competition configurations build with -O9 (as they used to); they are static-binary by default and shared libs are not built; also the default autoconf compiler flags "-g -O2" is removed from builds
Morgan Deters [Wed, 7 Jul 2010 00:36:20 +0000 (00:36 +0000)]
competition submission should be fully static
Morgan Deters [Wed, 7 Jul 2010 00:11:05 +0000 (00:11 +0000)]
fixed submission target
Morgan Deters [Wed, 7 Jul 2010 00:04:41 +0000 (00:04 +0000)]
things for competition upload: new "make submission" target
Christopher L. Conway [Wed, 7 Jul 2010 00:01:13 +0000 (00:01 +0000)]
Adding tests for precedence of arithmetic in CVC inputs
Christopher L. Conway [Wed, 7 Jul 2010 00:01:03 +0000 (00:01 +0000)]
Adding config.reconfig to .gitignore
Tim King [Tue, 6 Jul 2010 23:48:49 +0000 (23:48 +0000)]
Fixed exit status for competition mode.
Morgan Deters [Tue, 6 Jul 2010 20:19:34 +0000 (20:19 +0000)]
Don't eagerly collect zombies. This should speed up things for competition but might flush out some memory issues. Passes all regressions so far..
Morgan Deters [Tue, 6 Jul 2010 19:36:59 +0000 (19:36 +0000)]
add Configuration::isCompetitionBuild() and some main driver fixes
Morgan Deters [Tue, 6 Jul 2010 19:32:50 +0000 (19:32 +0000)]
fix crash on command line parsing
Clark Barrett [Tue, 6 Jul 2010 18:37:06 +0000 (18:37 +0000)]
Moved registration to theory engine
Christopher L. Conway [Tue, 6 Jul 2010 17:10:53 +0000 (17:10 +0000)]
Adding Array types to SMT2 parser
Christopher L. Conway [Tue, 6 Jul 2010 16:21:27 +0000 (16:21 +0000)]
Adding arithmetic symbols to CVC parser (Fixes: #176)
Morgan Deters [Tue, 6 Jul 2010 15:52:10 +0000 (15:52 +0000)]
merge from CC work: pieces of the parser need to be declared to throw AssertionException, and language enum should have stream insertion op
Morgan Deters [Tue, 6 Jul 2010 04:00:42 +0000 (04:00 +0000)]
Fixes for doubled-statistics (bug 171), a fix to muzzled builds and some minor code
cleanup found while searching for additional cases. Closes bug 171.
Morgan Deters [Tue, 6 Jul 2010 00:44:14 +0000 (00:44 +0000)]
add regressions from bug reports
Morgan Deters [Mon, 5 Jul 2010 23:02:05 +0000 (23:02 +0000)]
better exception wording, assertion-handling in multiple-exception case; resolves bug 175. also newer URL for config/pkg.m4
Morgan Deters [Mon, 5 Jul 2010 23:01:36 +0000 (23:01 +0000)]
better exception wording, assertion-handling in multiple-exception case; resolves bug 175. also newer URL for config/pkg.m4
Morgan Deters [Mon, 5 Jul 2010 21:47:05 +0000 (21:47 +0000)]
workaround for strange CIMS installation of automake; resolves bug 172: autogen fails on CIMS machines