cvc5.git
13 years agofix bug #220 (assertion fails if no query/check-sat); add bug220.smt2 and bug217...
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)

13 years agoFixed computation of infinitesimals for arithmetic model generation.
Tim King [Thu, 14 Oct 2010 18:26:42 +0000 (18:26 +0000)]
Fixed computation of infinitesimals for arithmetic model generation.

13 years agoRemoved vector<Monomial> monos from Polynomial. Now using expr::NodeSelfIterator.
Tim King [Wed, 13 Oct 2010 01:17:24 +0000 (01:17 +0000)]
Removed vector<Monomial> monos from Polynomial.  Now using expr::NodeSelfIterator.

13 years agoAdded test/regress/regress1/arith and populated it with some fast SMT LIB problems.
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.

13 years agowith --stats, statistics are dumped for memouts and (normal) exceptions.
Morgan Deters [Tue, 12 Oct 2010 22:08:54 +0000 (22:08 +0000)]
with --stats, statistics are dumped for memouts and (normal) exceptions.

13 years agoIDENTITY has been removed.
Tim King [Tue, 12 Oct 2010 22:04:58 +0000 (22:04 +0000)]
IDENTITY has been removed.

13 years agominor unit test fix-ups
Morgan Deters [Tue, 12 Oct 2010 22:03:24 +0000 (22:03 +0000)]
minor unit test fix-ups

13 years agofix debugPrintNode(), debugPrintTNode(), debugPrintNodeValue(), debugPrintTypeNode...
Morgan Deters [Tue, 12 Oct 2010 21:59:40 +0000 (21:59 +0000)]
fix debugPrintNode(), debugPrintTNode(), debugPrintNodeValue(), debugPrintTypeNode() -- thanks Tim for pointing this out

13 years agofix some leaks in parser, add debug code to node manager to find more
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

13 years agohooked up "we are incomplete" flag after conversation with Tim (a theory notifies...
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

13 years agoMerge from cc-memout branch. Here are the main points
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.

13 years agocheck last result in (get-assignment); some context cleanup
Morgan Deters [Tue, 12 Oct 2010 14:09:54 +0000 (14:09 +0000)]
check last result in (get-assignment); some context cleanup

13 years agouse "forward" headers
Morgan Deters [Mon, 11 Oct 2010 07:09:04 +0000 (07:09 +0000)]
use "forward" headers

13 years agoadditional model gen and SMT-LIBv2 compliance work: (get-assignment) now supported...
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

13 years agoreverting some changes to parser from last commit
Morgan Deters [Sat, 9 Oct 2010 10:10:47 +0000 (10:10 +0000)]
reverting some changes to parser from last commit

13 years agosupport for SMT-LIBv2 :named attributes, and attributes in general; zero-ary define...
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

13 years agofix to unit tests
Morgan Deters [Sat, 9 Oct 2010 06:16:29 +0000 (06:16 +0000)]
fix to unit tests

13 years agobug fixes to model gen
Morgan Deters [Sat, 9 Oct 2010 06:13:17 +0000 (06:13 +0000)]
bug fixes to model gen

13 years agoModel generation for arith, boolean, and uf theories via
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.

13 years ago* (define-fun...) now has proper type checking in non-debug builds
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!)

13 years agosupport (set-info) on status, source, category, difficulty, smt-lib-version, and...
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

13 years agooops, reverting a change to a regression test that had intentionally caused a typeche...
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

13 years agotype checking for define-fun in production builds; related to (and might resolve...
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

13 years agoNodeSelfIterator implementation and unit test (resolves bug #204); also fix ParserBla...
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

13 years agoSmall tableau optimization.
Tim King [Thu, 7 Oct 2010 18:47:42 +0000 (18:47 +0000)]
Small tableau optimization.

13 years agoSMT-LIBv2 (define-fun...) command now functional; does eager expansion at preprocessi...
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

13 years agodeclare-sort, define-sort working but not thoroughly tested; define-fun half working...
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)

13 years agoparser and core support for SMT-LIBv2 commands get-info, set-option, get-option,...
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...

13 years agofix gdb issues (at least for static builds); resolves bug 194
Morgan Deters [Mon, 4 Oct 2010 22:23:53 +0000 (22:23 +0000)]
fix gdb issues (at least for static builds); resolves bug 194

13 years agofix regular expressions in build system
Morgan Deters [Mon, 4 Oct 2010 09:31:11 +0000 (09:31 +0000)]
fix regular expressions in build system

13 years agofixing CLN builds, which had broken the build tonight; will re-run regression script
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

13 years agore-add a dependency to fix compile warnings
Morgan Deters [Mon, 4 Oct 2010 05:50:19 +0000 (05:50 +0000)]
re-add a dependency to fix compile warnings

13 years agoremove/shuffle some #include dependencies; fix some documentation; apply coding standards
Morgan Deters [Mon, 4 Oct 2010 04:20:19 +0000 (04:20 +0000)]
remove/shuffle some #include dependencies; fix some documentation; apply coding standards

13 years agoFix to bug 211. ArithVar is now typedefed to uint32_t.
Tim King [Mon, 4 Oct 2010 01:19:43 +0000 (01:19 +0000)]
Fix to bug 211. ArithVar is now typedefed to uint32_t.

13 years agofile header documentation regenerated with contributors names; no code modified in...
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

13 years agorevert a workaround fix to CDMap that was committed as part of the arith-indexed...
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

13 years agodump statistics on abnormal output: unexpected exceptions, SEGV, ILL, memout...
Morgan Deters [Sat, 2 Oct 2010 22:14:44 +0000 (22:14 +0000)]
dump statistics on abnormal output: unexpected exceptions, SEGV, ILL, memout...

13 years agobranches/arith-indexed-variables merged into the main trunk.
Tim King [Sat, 2 Oct 2010 05:52:51 +0000 (05:52 +0000)]
branches/arith-indexed-variables merged into the main trunk.

13 years agore-add no-deprecated to C sources; update some file-level documentation; first look...
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

13 years agolast update broke the parser inadvertently, fixing...
Morgan Deters [Fri, 1 Oct 2010 22:05:05 +0000 (22:05 +0000)]
last update broke the parser inadvertently, fixing...

13 years agoreplacement implementation for clock_gettime() on mac os x, build portability (resolv...
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

13 years agofixed a number of problems with mac os x builds. build now works on mac os x if...
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)

13 years agofix predicate bug in UF; code cleanup in theory.cpp
Morgan Deters [Tue, 28 Sep 2010 22:44:00 +0000 (22:44 +0000)]
fix predicate bug in UF; code cleanup in theory.cpp

13 years agonode iterator work
Morgan Deters [Tue, 28 Sep 2010 20:57:25 +0000 (20:57 +0000)]
node iterator work

13 years agofix pre-registration of operator, previously committed; clean up theory engine code...
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

13 years agofix unit test for kinded iterators in Node/TNode
Morgan Deters [Tue, 28 Sep 2010 20:25:47 +0000 (20:25 +0000)]
fix unit test for kinded iterators in Node/TNode

13 years agofix TLS support for platforms (e.g. Mac OS X) where __thread storage class doesn...
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

13 years agocomment fix as per this morning's meeting; also, don't theory-rewrite operators ...
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)

13 years agoadd workaround for systems (i.e., Mac OS X) that don't support __thread; also configu...
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

13 years ago- This update adds DynamicArray<T>. This is a bare bones heap allocated array that...
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().

13 years agoequality triggers for the equality engine
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

13 years agoroll back an unintended change with r900
Morgan Deters [Fri, 24 Sep 2010 21:28:34 +0000 (21:28 +0000)]
roll back an unintended change with r900

13 years agoFix build system for Mac OS X builds (resolves bug #203)
Morgan Deters [Fri, 24 Sep 2010 21:20:33 +0000 (21:20 +0000)]
Fix build system for Mac OS X builds (resolves bug #203)

13 years agobasic union find for bitvectors
Dejan Jovanović [Fri, 24 Sep 2010 15:03:28 +0000 (15:03 +0000)]
basic union find for bitvectors

13 years agoFixing NodeBuilderBlack
Christopher L. Conway [Wed, 22 Sep 2010 20:22:16 +0000 (20:22 +0000)]
Fixing NodeBuilderBlack

13 years agoRm'ing automatic type check in NodeBuilder for vars/constants
Christopher L. Conway [Tue, 21 Sep 2010 23:25:11 +0000 (23:25 +0000)]
Rm'ing automatic type check in NodeBuilder for vars/constants

13 years agoremove assertion in TNode destructor and ensure all TNode methods check rc > 0 (resol...
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

13 years agofix statistics-registry-related memory leaks
Morgan Deters [Tue, 21 Sep 2010 21:51:25 +0000 (21:51 +0000)]
fix statistics-registry-related memory leaks

13 years agopart of review (bug #197): coding conventions, file-level documentation, re-ran updat...
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.

13 years agosvn:ignore properties for new bv stuff
Morgan Deters [Tue, 21 Sep 2010 21:37:30 +0000 (21:37 +0000)]
svn:ignore properties for new bv stuff

13 years agosome code cleanup, documentation, review of "kinded-iterator" code, and addition...
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

13 years agoiterators for tim, begin<PLUS>() and end<PLUS>() should give him what he wants
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

13 years agoRm'ing Makefile.in's
Christopher L. Conway [Tue, 21 Sep 2010 16:36:48 +0000 (16:36 +0000)]
Rm'ing Makefile.in's

13 years agoMoving automatic type check to NodeBuilder (Fixes: #199)
Christopher L. Conway [Tue, 21 Sep 2010 16:36:42 +0000 (16:36 +0000)]
Moving automatic type check to NodeBuilder (Fixes: #199)

13 years agohooking up the bitvector tests
Dejan Jovanović [Mon, 20 Sep 2010 16:47:38 +0000 (16:47 +0000)]
hooking up the bitvector tests

13 years agobitvector rewriting for the core theory and testcases
Dejan Jovanović [Mon, 20 Sep 2010 01:08:32 +0000 (01:08 +0000)]
bitvector rewriting for the core theory and testcases

13 years agoBug fix to CVC4::theory::arith::VarList as well as some superficial changes. test...
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.

13 years ago* added test/regress/regress0/arith for easy arithmetic regress tests.
Tim King [Tue, 14 Sep 2010 19:37:31 +0000 (19:37 +0000)]
* added test/regress/regress0/arith for easy arithmetic regress tests.

13 years agoensure uf/congruence closure debugging stuff isn't called in production builds
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

13 years agomake Node iterators more STL-friendly, resolves bug #196
Morgan Deters [Mon, 13 Sep 2010 23:35:30 +0000 (23:35 +0000)]
make Node iterators more STL-friendly, resolves bug #196

13 years agobuild system consistency in target names for unit test targets
Morgan Deters [Mon, 13 Sep 2010 23:34:47 +0000 (23:34 +0000)]
build system consistency in target names for unit test targets

13 years agostatistics are now printed on timeout (SIGXCPU) and SIGINT if --stats is given
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

13 years agolink TAGS file into builds/ directory, when built. Resolves bug #195
Morgan Deters [Mon, 13 Sep 2010 17:27:15 +0000 (17:27 +0000)]
link TAGS file into builds/ directory, when built.  Resolves bug #195

13 years ago* New normal form for arithmetic is in place.
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.)

13 years ago"Leftist NodeBuilders" are now supported.
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.

13 years agorecategorize eq_diamond14 as a regress2 test (instead of regress0)
Morgan Deters [Thu, 2 Sep 2010 08:24:12 +0000 (08:24 +0000)]
recategorize eq_diamond14 as a regress2 test (instead of regress0)

13 years agofix an error in TimerStat
Morgan Deters [Thu, 2 Sep 2010 08:16:28 +0000 (08:16 +0000)]
fix an error in TimerStat

13 years agoneglected build system update from r848 (last commit)
Morgan Deters [Thu, 2 Sep 2010 07:32:00 +0000 (07:32 +0000)]
neglected build system update from r848 (last commit)

13 years ago* add TimerStat statistic type
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()

13 years ago"make check" now places binaries in the proper place before doing the checks; this...
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

13 years agoreflect in build strings that -gmp is now the default and -cln is an option
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

13 years agoadded documentation, closes bug 97
Morgan Deters [Wed, 1 Sep 2010 21:02:07 +0000 (21:02 +0000)]
added documentation, closes bug 97

14 years agoMaking GMP default, CLN opt-in with --with-cln
Christopher L. Conway [Tue, 24 Aug 2010 17:09:40 +0000 (17:09 +0000)]
Making GMP default, CLN opt-in with --with-cln

14 years agoupdating the minisat restart parameters after running some experiments
Dejan Jovanović [Fri, 20 Aug 2010 18:23:53 +0000 (18:23 +0000)]
updating the minisat restart parameters after running some experiments

14 years agoturn off extra-checking (which does extra theory-rewriter checking); it was enabled...
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

14 years agoUF theory bug fixes, code cleanup, and extra debugging output.
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.

14 years agomore tests, configuration for UF
Morgan Deters [Wed, 18 Aug 2010 03:59:26 +0000 (03:59 +0000)]
more tests, configuration for UF

14 years agoMerge from "cc" branch:
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.

14 years agoAdd "no trash" CDMap elements, so that CDMap elements can themselves
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.

14 years agoChange TheoryEngine to use pointers to theories instead of
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.

14 years agoadd zlib checks to configure (new minisat requires it?)
Morgan Deters [Mon, 16 Aug 2010 22:07:05 +0000 (22:07 +0000)]
add zlib checks to configure (new minisat requires it?)

14 years agoFixing failures in minisat
Dejan Jovanović [Mon, 16 Aug 2010 21:49:42 +0000 (21:49 +0000)]
Fixing failures in minisat

14 years ago(no commit message)
Dejan Jovanović [Sun, 15 Aug 2010 21:35:42 +0000 (21:35 +0000)]

14 years ago(no commit message)
Dejan Jovanović [Sun, 15 Aug 2010 21:25:21 +0000 (21:25 +0000)]

14 years agorenaming minisat .C to .cc
Dejan Jovanović [Fri, 13 Aug 2010 17:47:56 +0000 (17:47 +0000)]
renaming minisat .C to .cc

14 years agoAdding the changes to the original copy
Dejan Jovanović [Fri, 13 Aug 2010 17:27:12 +0000 (17:27 +0000)]
Adding the changes to the original copy

14 years agoImporting MiniSat2 070721 into trunk
Christopher L. Conway [Fri, 13 Aug 2010 17:22:46 +0000 (17:22 +0000)]
Importing MiniSat2 070721 into trunk

14 years agoRemoving newer version of MiniSat for Dejan's preferred import
Christopher L. Conway [Fri, 13 Aug 2010 17:21:24 +0000 (17:21 +0000)]
Removing newer version of MiniSat for Dejan's preferred import

14 years agoImporting MiniSat2 2.2.0 into trunk
Christopher L. Conway [Fri, 13 Aug 2010 17:20:19 +0000 (17:20 +0000)]
Importing MiniSat2 2.2.0 into trunk

14 years agoRemoving old version of MiniSat for proper vendor import
Christopher L. Conway [Fri, 13 Aug 2010 17:19:28 +0000 (17:19 +0000)]
Removing old version of MiniSat for proper vendor import