cvc5.git
13 years agomake some CC module methods private that should not have been public
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

13 years agocongruence closure module now supports things other than APPLY_UF; ported from "array...
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

13 years agopermit PARAMETERIZED operators to be zero-ary
Morgan Deters [Tue, 14 Dec 2010 19:37:35 +0000 (19:37 +0000)]
permit PARAMETERIZED operators to be zero-ary

13 years agofix to static learning application in UF, resolves bug# 239
Morgan Deters [Tue, 14 Dec 2010 01:04:00 +0000 (01:04 +0000)]
fix to static learning application in UF, resolves bug# 239

14 years agoChangin the get() semantics to a CDQeue-sque semantics.
Dejan Jovanović [Wed, 24 Nov 2010 18:50:54 +0000 (18:50 +0000)]
Changin the get() semantics to a CDQeue-sque semantics.

14 years agoMerge from ufprop branch, including:
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

14 years agoadd statistics support information to --show-config
Morgan Deters [Fri, 19 Nov 2010 00:12:17 +0000 (00:12 +0000)]
add statistics support information to --show-config

14 years agosmall changes to documentation; also, '\''make doc'\'' doesn't build dot graphs ...
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)

14 years agofix improper CongruenceClosureWhite test by merging from a uf branch; fixes the night...
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

14 years agoadd some stats to UF/CC
Morgan Deters [Wed, 17 Nov 2010 02:45:13 +0000 (02:45 +0000)]
add some stats to UF/CC

14 years agoThe "UF engineering issues" release, after much profiling.
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.

14 years agoAdded Theory::presolve().
Tim King [Tue, 16 Nov 2010 21:11:11 +0000 (21:11 +0000)]
Added Theory::presolve().

14 years agoSmtEngine now fails with a ModalException if --incremental is not enabled
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.

14 years agofix function signatures
Morgan Deters [Tue, 16 Nov 2010 00:20:30 +0000 (00:20 +0000)]
fix function signatures

14 years agocleanup from today's commits: delegate as-yet-unimplemented prettyprinters in a bette...
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

14 years agoChanges to Solver and PropEngine to support lemmasOnDemand during solve but not yet...
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.

14 years agoPretty-printer infrastructure created (in src/printer) and SMT-LIBv2 printer
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.)

14 years agoThis commit merges the arith-prop-opt branch into the main trunk. This was done by...
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.

14 years agominor tweaks to last commit, testing infrastructure
Morgan Deters [Mon, 15 Nov 2010 20:24:35 +0000 (20:24 +0000)]
minor tweaks to last commit, testing infrastructure

14 years agofix some things with the build system (make dist, make install, make check)
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)

14 years agoSome bug fixes in the SAT for lemmas, and an experiment with a more complete (wr...
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.

14 years agomake addsourcedir executable
Morgan Deters [Thu, 11 Nov 2010 04:45:29 +0000 (04:45 +0000)]
make addsourcedir executable

14 years agoLemmas on demand work, push-pop, some cleanup.
Dejan Jovanović [Tue, 9 Nov 2010 21:57:06 +0000 (21:57 +0000)]
Lemmas on demand work, push-pop, some cleanup.

14 years agocommand-line flag to disable theory registration, also SMT-LIBv2 compliance (per...
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)

14 years agocleanup, documentation, SMT-LIBv2 compliance
Morgan Deters [Mon, 8 Nov 2010 23:15:08 +0000 (23:15 +0000)]
cleanup, documentation, SMT-LIBv2 compliance

14 years agofix out-of-date version/copyright for minisats
Morgan Deters [Mon, 8 Nov 2010 03:27:48 +0000 (03:27 +0000)]
fix out-of-date version/copyright for minisats

14 years agoMoving Options fiddling to options.h
Christopher L. Conway [Fri, 5 Nov 2010 17:43:52 +0000 (17:43 +0000)]
Moving Options fiddling to options.h

14 years agocompetition mode implies --no-checking
Morgan Deters [Thu, 4 Nov 2010 21:01:31 +0000 (21:01 +0000)]
competition mode implies --no-checking

14 years agoMoving the post_mortem.py script out of contrib and into the cvc4 scripts directory.
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.

14 years agoUpdates post_mortem.py script to be able to handle certain kinds of crashes and new...
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.

14 years agoThis commit adds the ejected and un-ejected statistics.
Tim King [Thu, 4 Nov 2010 16:26:40 +0000 (16:26 +0000)]
This commit adds the ejected and un-ejected statistics.

14 years agoAdds size() to RowVector.
Tim King [Wed, 3 Nov 2010 18:46:46 +0000 (18:46 +0000)]
Adds size() to RowVector.

14 years agoAdds statistics for the number of Uservariables and Slack variables used by arithmetic.
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.

14 years agoAdds AverageStat to stats.h.
Tim King [Wed, 3 Nov 2010 01:07:09 +0000 (01:07 +0000)]
Adds AverageStat to stats.h.

14 years agosmall fix to debug segfaults
Morgan Deters [Sun, 31 Oct 2010 23:57:50 +0000 (23:57 +0000)]
small fix to debug segfaults

14 years agoenable dependence graphs in doxygen; fix lots of doxygen warnings, fix some documenta...
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)

14 years agomaximize stack limit, handle SEGV signals on an alternate signal stack, and try to...
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

14 years agoAdds a hueristic from Alberto's thesis. For a fixed window the row count is used...
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.

14 years agoFix for a problem caused by using a != instead of == in generateConflictBelow()....
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.

14 years agoportability updates to build system
Morgan Deters [Fri, 29 Oct 2010 21:08:41 +0000 (21:08 +0000)]
portability updates to build system

14 years agoAdds a very small test that triggers a bug. The bug is from the commit for -r1063.
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.

14 years agominor fixes as a result of review of Chris's getType() rewrite; also fix some macros...
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

14 years agoFixes RowVector::has().
Tim King [Fri, 29 Oct 2010 15:51:25 +0000 (15:51 +0000)]
Fixes RowVector::has().

14 years agoFactors out the QF_LRA decision procedure from TheoryArith and puts this into its...
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).

14 years agoThe Row implementation has no been replaced by RowVector and ReducedRowVector. A...
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.

14 years agoChanging NodeBuilder::debugCheckType() to maybeCheckType()
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

14 years agoDisabling bottom-up algorithm in NodeManager::getType() when type checking
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

14 years agofix confusing CXXTEST configure message, indicating success at finding cxxtest when...
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.

14 years agoSmall change to documentation in NodeManager::getType
Christopher L. Conway [Wed, 27 Oct 2010 22:53:09 +0000 (22:53 +0000)]
Small change to documentation in NodeManager::getType

14 years agoSlightly more efficient version of getType
Christopher L. Conway [Wed, 27 Oct 2010 22:53:03 +0000 (22:53 +0000)]
Slightly more efficient version of getType

14 years agomake dist-building more pleasant (put .tar.gz in builds/ directory)
Morgan Deters [Wed, 27 Oct 2010 20:13:31 +0000 (20:13 +0000)]
make dist-building more pleasant (put .tar.gz in builds/ directory)

14 years agoChanging dependency info in README
Christopher L. Conway [Wed, 27 Oct 2010 20:10:16 +0000 (20:10 +0000)]
Changing dependency info in README

14 years agoModifying getType to use a non-recursive algorithm (Fixes: #228)
Christopher L. Conway [Wed, 27 Oct 2010 20:10:12 +0000 (20:10 +0000)]
Modifying getType to use a non-recursive algorithm (Fixes: #228)

14 years agofix test Makefile
Morgan Deters [Wed, 27 Oct 2010 06:02:04 +0000 (06:02 +0000)]
fix test Makefile

14 years ago"make dist" fixes; a distribution tarball can now build and pass tests. "make distche...
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

14 years agosupport focus on a particular subpackage (e.g. "expr")
Morgan Deters [Wed, 27 Oct 2010 05:29:39 +0000 (05:29 +0000)]
support focus on a particular subpackage (e.g. "expr")

14 years agointer-package dependence graph generation (in dot format)
Morgan Deters [Wed, 27 Oct 2010 05:02:29 +0000 (05:02 +0000)]
inter-package dependence graph generation (in dot format)

14 years agoGetValueCommand now gives a TUPLE as output, with the first operand the input express...
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)

14 years agoCleaning up some header files
Christopher L. Conway [Tue, 26 Oct 2010 18:17:13 +0000 (18:17 +0000)]
Cleaning up some header files

14 years agoAdding dependency info to README
Christopher L. Conway [Tue, 26 Oct 2010 15:25:47 +0000 (15:25 +0000)]
Adding dependency info to README

14 years agofor static linking of driver binary, list libmain.a first (fixes link errors in last...
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)

14 years agomissing case in expr output; resolves bug 226
Morgan Deters [Mon, 25 Oct 2010 15:25:50 +0000 (15:25 +0000)]
missing case in expr output; resolves bug 226

14 years agoAdding unit test for InteractiveShell
Christopher L. Conway [Sun, 24 Oct 2010 16:37:00 +0000 (16:37 +0000)]
Adding unit test for InteractiveShell

14 years agoadd a CVC4_UNDEFINED keyword, for intentionally undefined functions (like private...
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

14 years agoRemoved slack.h, and arith_activity.h. Replaced IsBasicManager with the more general...
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.

14 years agoAdding Parser::setInput and using it in InteractiveShell (Fixes: #225)
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

14 years agoremoving unused functionality from util; related to bug #222
Morgan Deters [Fri, 22 Oct 2010 23:19:14 +0000 (23:19 +0000)]
removing unused functionality from util; related to bug #222

14 years agofix valgrind-reported errors in parser builder; a non-SMT parser was always used...
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

14 years agoSaving state between lines in interactive mode (Fixes: #223)
Christopher L. Conway [Fri, 22 Oct 2010 22:50:44 +0000 (22:50 +0000)]
Saving state between lines in interactive mode (Fixes: #223)

14 years agoUsing Options in ParserBuilder and InteractiveShell
Christopher L. Conway [Fri, 22 Oct 2010 22:50:39 +0000 (22:50 +0000)]
Using Options in ParserBuilder and InteractiveShell

14 years agoMerging main/getopt.cpp, main/usage.h, and smt/options.h in
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

14 years agoCode cleanup for TheoryArith.
Tim King [Fri, 22 Oct 2010 20:22:39 +0000 (20:22 +0000)]
Code cleanup for TheoryArith.

14 years agocomment out the "interactive" check in SmtEngine::getValue() for now (resolves bug...
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

14 years agoFixes to getValue for TheoryArith.
Tim King [Fri, 22 Oct 2010 01:28:40 +0000 (01:28 +0000)]
Fixes to getValue for TheoryArith.

14 years ago* Option --no-type-checking now disables type checks in SmtEngine
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

14 years agoChanging --no-early-type-checking to --no-type-checking
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)

14 years agoEnabling semantic checks in ParserBuilder
Christopher L. Conway [Wed, 20 Oct 2010 21:49:22 +0000 (21:49 +0000)]
Enabling semantic checks in ParserBuilder

14 years agoAdding detection of TTY vs. piped input for interactive mode
Christopher L. Conway [Wed, 20 Oct 2010 21:49:10 +0000 (21:49 +0000)]
Adding detection of TTY vs. piped input for interactive mode

14 years agoFixing minor whitespace bug in the parser
Christopher L. Conway [Wed, 20 Oct 2010 20:41:10 +0000 (20:41 +0000)]
Fixing minor whitespace bug in the parser

14 years agoAdding support for interactive mode
Christopher L. Conway [Wed, 20 Oct 2010 20:41:03 +0000 (20:41 +0000)]
Adding support for interactive mode

14 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)

14 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.

14 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.

14 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.

14 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.

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

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

14 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

14 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

14 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

14 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.

14 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

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

14 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

14 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

14 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

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

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

14 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.

14 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!)