Andrew Reynolds [Tue, 16 Oct 2012 21:59:50 +0000 (21:59 +0000)]
more cleanup of quantifiers code
Andrew Reynolds [Tue, 16 Oct 2012 17:10:47 +0000 (17:10 +0000)]
first draft of new inst gen method (still with bugs), some cleanup of quantifiers code
Morgan Deters [Sun, 14 Oct 2012 00:08:52 +0000 (00:08 +0000)]
fix #line number warnings (sorry!)
Clark Barrett [Fri, 12 Oct 2012 21:36:06 +0000 (21:36 +0000)]
Added assertions and tracing code for collectModelInfo phase
Clark Barrett [Fri, 12 Oct 2012 12:38:54 +0000 (12:38 +0000)]
Latest changes to model code
Morgan Deters [Thu, 11 Oct 2012 21:17:12 +0000 (21:17 +0000)]
Fix bug 421, again, and add a second, independent test case for the same
with --check-models (which caused the same bug, for a different reason,
due to some unintended interaction between the checkModel() function and
the UserContext, which rolled back the Model object. (Groan...)
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 11 Oct 2012 17:32:45 +0000 (17:32 +0000)]
minor changes in wording for "cvc4 --version", and point to the COPYING file for full info
Morgan Deters [Thu, 11 Oct 2012 17:06:16 +0000 (17:06 +0000)]
Standardizing copyright notice. Touches **ALL** sources, guys, sorry.. it's
just the header comments at the top, though. Don't update to this rev if
you don't have time for a complete rebuild, and exclude this rev if you
want to see what's new across a range of commits.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 11 Oct 2012 13:19:09 +0000 (13:19 +0000)]
Fix wording on GPL in legal notices; also remove an unnecessary source dependence.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 11 Oct 2012 12:15:59 +0000 (12:15 +0000)]
compliance note
Morgan Deters [Wed, 10 Oct 2012 21:20:40 +0000 (21:20 +0000)]
Abstract values for SMT-LIB.
Also fix bug 421 relating to incrementality and models.
(this commit was certified error- and warning-free by the test-and-commit script.)
Andrew Reynolds [Wed, 10 Oct 2012 19:24:37 +0000 (19:24 +0000)]
cleanup up some static data members in the quantifiers code
Dejan Jovanović [Wed, 10 Oct 2012 19:07:16 +0000 (19:07 +0000)]
fixing the cvc bv parser and typechecker
Kshitij Bansal [Tue, 9 Oct 2012 22:24:35 +0000 (22:24 +0000)]
typo
Kshitij Bansal [Tue, 9 Oct 2012 22:23:32 +0000 (22:23 +0000)]
bugfix: isQuantified, bugfix: flush
Andrew Reynolds [Tue, 9 Oct 2012 21:59:58 +0000 (21:59 +0000)]
fixed datatypes rewriter to detect clashes between non-datatype subfields. cleaned up model code, TheoryModel::getValue is now const.
Morgan Deters [Tue, 9 Oct 2012 20:22:01 +0000 (20:22 +0000)]
* make Model class private (as discussed at meeting today)
* fix minor issue with s-expr parsing in CVC and SMT grammars
* other minor things
(this commit was certified error- and warning-free by the test-and-commit script.)
Liana Hadarean [Tue, 9 Oct 2012 20:05:46 +0000 (20:05 +0000)]
fixed bv rewriter to evaluate bvurem over constants
Clark Barrett [Tue, 9 Oct 2012 19:22:17 +0000 (19:22 +0000)]
More fixes to model code
Andrew Reynolds [Tue, 9 Oct 2012 17:44:02 +0000 (17:44 +0000)]
made datatypes rewrite incorrect selectors to ground term. this feature can be turned off by --disable-dt-rewrite-error-sel. changed regression answer to reflect new default behavior.
Morgan Deters [Tue, 9 Oct 2012 16:54:02 +0000 (16:54 +0000)]
usability: remove --no-interactive from --smtlib option
Dejan Jovanović [Tue, 9 Oct 2012 14:23:19 +0000 (14:23 +0000)]
fix for bug 415
Morgan Deters [Tue, 9 Oct 2012 13:22:28 +0000 (13:22 +0000)]
* Add assertion in TheoryModel code to ensure we don't get inconsistent
substitutions for solved variables. Related to bug 418 (and might
resolve it).
* Respect phase-locking in Minisat (one phase-saving site was unguarded).
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Tue, 9 Oct 2012 11:58:08 +0000 (11:58 +0000)]
fix beta reduction in both preRewrite() *and* postRewrite(), related to bug 417. oops. also fix spelling on "rewritting" test
Morgan Deters [Tue, 9 Oct 2012 04:53:43 +0000 (04:53 +0000)]
some documentation fixes
Dejan Jovanović [Tue, 9 Oct 2012 00:22:33 +0000 (00:22 +0000)]
adding mergePredicates method to the equality engine to be able to
assert equalities betweeen predicates
Morgan Deters [Mon, 8 Oct 2012 22:51:08 +0000 (22:51 +0000)]
* Models' SubstitutionMaps are now attached to the user context
(rather than SAT context)
* Enable part of CVC3 system test (resolves bug 375)
* Fix infinite recursion in beta reduction code (resolves bug 417)
* Some model-building assertions have been added
* Other minor changes
(this commit was certified error- and warning-free by the test-and-commit script.)
Liana Hadarean [Mon, 8 Oct 2012 20:51:03 +0000 (20:51 +0000)]
added reduced bv model failing test case
Clark Barrett [Mon, 8 Oct 2012 20:19:13 +0000 (20:19 +0000)]
Fixed problem in assertEqualityEngine: predicates that are not false are no
longer assumed to be true
Morgan Deters [Mon, 8 Oct 2012 19:31:01 +0000 (19:31 +0000)]
small fix for compat JNI library installation
Morgan Deters [Mon, 8 Oct 2012 16:00:58 +0000 (16:00 +0000)]
fix SMT-LIBv2 compliance mode for bitvectors (was completely broken; didn't allow use of any BV ops
Morgan Deters [Sat, 6 Oct 2012 20:13:17 +0000 (20:13 +0000)]
turn off cudd by default in configure script
Morgan Deters [Sat, 6 Oct 2012 20:09:26 +0000 (20:09 +0000)]
* more complete support for --dump assertions:{pre,post}-PREPROCESSING-PASS
* more minor cleanup/doc
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 6 Oct 2012 18:53:27 +0000 (18:53 +0000)]
* Clean up some options documentation
* Remove defunct --no-theory-registration option
* Point people to Wiki tutorial
* Modernize the cut-release script
* Misc cleanup, documentation
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 6 Oct 2012 17:27:51 +0000 (17:27 +0000)]
* Some documentation about building compatibility and language bindings
* Better errors/warnings when SWIG isn't installed (resolves bug 373)
* Allow compatibility bindings to be built when SWIG isn't available
Morgan Deters [Sat, 6 Oct 2012 05:27:33 +0000 (05:27 +0000)]
* Include a few bug testcases for resolved bugs.
* Fix error message if you POP beyond the bottom user stack frame.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 6 Oct 2012 04:05:19 +0000 (04:05 +0000)]
* Fix some regressions' expected outputs.
* Ensure Rewriter::init() is called before ::rewrite().
The array type enumerator recently gave us an end-run around
::init(). TheoryEngine no longer calls these, they're done
via static initialization.
* Respect scope for declare-sort/declare-fun/define-sort/define-fun... (resolves bug 412).
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 5 Oct 2012 23:16:21 +0000 (23:16 +0000)]
fix \file
Morgan Deters [Fri, 5 Oct 2012 22:46:27 +0000 (22:46 +0000)]
Bug-related:
* ITE removal fixed to be context-dependent (on UserContext).
Resolves incrementality bugs 376 and 396 (which had given wrong answers).
* some bugfixes for incrementality that Dejan found (fixes bug 394)
* fix for bug in SmtEngine::getValue() where definitions weren't respected
(partially resolves bug 411, but get-model is still broken).
* change status of microwave21.ec.minimized.smt2 (it's actually unsat, but
was labeled sat); re-enable it for "make regress"
Also:
* --check-model doesn't fail if quantified assertions don't simplify away.
* fix some examples, and the Java system test, for the disappearance of the
BoolExpr class
* add copy constructor to array type enumerator (the type enumerator
framework requires copy ctors, and the automatically-generated copy ctor
was copying pointers that were then deleted, leaving dangling pointers in
the copy and causing segfaults)
* --dump=assertions now implies --dump=skolems
* --dump=assertions:pre-<PASS> and --dump=assertions:post-<PASS> now allow
you to dump before/after a particular preprocessing pass. E.g.,
--dump=assertions:pre-ite-removal or --dump=assertions:post-static-learning.
"--dump=assertions" by itself is after all preprocessing, just before CNF
conversion.
* minor fixes to dumping output
* include Model in language bindings
Minor refactoring/misc:
* fix compiler warning in src/theory/model.cpp
* remove unnecessary SmtEngine::printModel().
* mkoptions script doesn't give progress output if stdout isn't a terminal
(e.g., if it's written to a log, or piped through less(1), or whatever).
* add some type enumerator unit tests
* de-emphasize --parse-only and --preprocess-only (they aren't really "common"
options)
* fix some exception throw() specifications in SmtEngine
* minor documentation clarifications
Dejan Jovanović [Fri, 5 Oct 2012 22:07:16 +0000 (22:07 +0000)]
BoolExpr removed and replaced with Expr
Morgan Deters [Thu, 4 Oct 2012 20:48:13 +0000 (20:48 +0000)]
disable model-generation by default in cvc3 compatibility layer. should fix system test failure (bug 414).
Clark Barrett [Thu, 4 Oct 2012 17:45:56 +0000 (17:45 +0000)]
Implemented array type enumerator, more fixes for models
Morgan Deters [Thu, 4 Oct 2012 17:43:21 +0000 (17:43 +0000)]
IllegalArgumentException in java needs to be named "CVC4IllegalArgumentException" to avoid a name clash with java.lang.IllegalArgumentException, which isn't easily avoided, due to swig-autogenerated code that uses it unqualified. X-(
Andrew Reynolds [Wed, 3 Oct 2012 23:04:08 +0000 (23:04 +0000)]
minor fix for mbqi in finite model finding
Liana Hadarean [Wed, 3 Oct 2012 22:38:37 +0000 (22:38 +0000)]
implemented collectModelInfo for TheoryBV
Morgan Deters [Wed, 3 Oct 2012 22:12:11 +0000 (22:12 +0000)]
updates to contrib scripts to match docs
Morgan Deters [Wed, 3 Oct 2012 21:41:15 +0000 (21:41 +0000)]
better documentation, allow examples to be installed, etc
Clark Barrett [Wed, 3 Oct 2012 21:28:11 +0000 (21:28 +0000)]
New model code, mostly workin
Morgan Deters [Wed, 3 Oct 2012 21:27:11 +0000 (21:27 +0000)]
new README and INSTALL files
Liana Hadarean [Wed, 3 Oct 2012 19:41:45 +0000 (19:41 +0000)]
added support for interrupting TheoryBV
Kshitij Bansal [Wed, 3 Oct 2012 19:05:32 +0000 (19:05 +0000)]
--wait-to-join / --no-wait-to-join option
workaround option till we fix bug 409. for now, I have kept --wait-to-join to
be default (old behavior). We could technically make --no-wait-to-join the
default when using non-incremental mode, but still possible for problems at
exit I think
(this commit was certified error- and warning-free by the test-and-commit script.)
Dejan Jovanović [Wed, 3 Oct 2012 17:59:33 +0000 (17:59 +0000)]
adding ::getBooleanVariables to the PropEngine
you can get the Boolean variables in the TheoryEngine now by using d_propEngine->getBooleanVariables
Morgan Deters [Tue, 2 Oct 2012 22:13:12 +0000 (22:13 +0000)]
* re-enable some Z3 extended commands:
declare-const
declare-funs
declare-preds
define
simplify
* don't output --help on bad options, just invite user to try --help
* Datatypes from SMT2 parser now name the tester is-cons (e.g.)
* unknown results produce models, --check-model doesn't fail hard for
incorrect unknown models. removed the assert that kept arithmetic
from producing models if it saw nonlinear
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Tue, 2 Oct 2012 02:57:59 +0000 (02:57 +0000)]
workaround for a nasty CLN bug
Kshitij Bansal [Mon, 1 Oct 2012 22:11:26 +0000 (22:11 +0000)]
"Fix" (disable) portfolio when using quantifiers
Other changes:
* fix compile error in smt_engine in debug builds
* add getLogicInfo in smt_engine
* remove "empty-channel" and "disable-lemma-sharing" debug tags
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Mon, 1 Oct 2012 21:10:26 +0000 (21:10 +0000)]
make sure to mark LogicInfo as CVC4_PUBLIC
Morgan Deters [Mon, 1 Oct 2012 21:10:04 +0000 (21:10 +0000)]
fix for dejan: term ITEs now dumped correctly
Andrew Reynolds [Mon, 1 Oct 2012 19:55:15 +0000 (19:55 +0000)]
initial draft of skolemization during pre-processing, made simple cliques the default option for uf strong solver
Morgan Deters [Sun, 30 Sep 2012 23:20:49 +0000 (23:20 +0000)]
minor changes to arithmetic assertions involving nonlinearity and models (related to bug 405)
Morgan Deters [Sun, 30 Sep 2012 23:16:49 +0000 (23:16 +0000)]
minor fixes to pickler (hopefully fixes Debian build from last night)
Morgan Deters [Sun, 30 Sep 2012 22:29:57 +0000 (22:29 +0000)]
release notes
Tim King [Sat, 29 Sep 2012 20:42:16 +0000 (20:42 +0000)]
Calling the setIncompleteness() flag on all full checks once a non-linear term has been seen.
Morgan Deters [Sat, 29 Sep 2012 17:48:46 +0000 (17:48 +0000)]
Fix a few segfaults in driver.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 29 Sep 2012 16:19:01 +0000 (16:19 +0000)]
draft RELEASE-NOTES file, and minor release stuff
Morgan Deters [Sat, 29 Sep 2012 13:53:01 +0000 (13:53 +0000)]
fixes to "make distclean" and C compatibility bindings; should fix the broken builds last night
Morgan Deters [Sat, 29 Sep 2012 13:52:53 +0000 (13:52 +0000)]
fixes to "make distclean" and C compatibility bindings; should fix the broken builds last night
Tim King [Sat, 29 Sep 2012 07:19:28 +0000 (07:19 +0000)]
This commit add interpretation by lemma for INTS_DIVISION, INTS_MODULUS, and DIVISION. Improves support for non-linear monomials in getEqualityStatus(). Fixes bug 405.
Kshitij Bansal [Fri, 28 Sep 2012 22:46:09 +0000 (22:46 +0000)]
Some fixes to portfolio
* respect output lang
* fix export variable for BOUND_VARIABLE
* support export of SUBRANGE_TYPE
* statistic for lastWinner, other minor stat changes
* fix running of multiple threads on checsat/query
* changes of Assert -> assert which became private
* fix some destruction time order issues
* fix Pickler with AssertionException going private
Fixed by not fixing:
* portfolio+datatypes does not work
- added ExportUnsupportedException to more places, switches
to sequential
(still TODO / decide : not switch silently, but print error)
> note: this exception now needs to be (and is) defined in expr.h
Known issues:
* problems in portfolio+quantifiers
- at least some problems appear to be because of static variables
(will be later "fixed" like the datatypes)
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 28 Sep 2012 22:31:12 +0000 (22:31 +0000)]
fix distribution of cvc4_assert.i
Morgan Deters [Fri, 28 Sep 2012 20:34:00 +0000 (20:34 +0000)]
fixes for compatibility (i.e., CVC3) Java bindings
Morgan Deters [Fri, 28 Sep 2012 20:14:40 +0000 (20:14 +0000)]
rename Assert.h/Assert.cpp to cvc4_assert.h/cvc4_assert.cpp -- we need to make it unambiguous for case-insensitive filesystems like on Mac. Fixes Mac builds
Morgan Deters [Fri, 28 Sep 2012 19:20:02 +0000 (19:20 +0000)]
some fixes to build system
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 28 Sep 2012 18:22:29 +0000 (18:22 +0000)]
fix production-build linking error
Morgan Deters [Fri, 28 Sep 2012 17:29:01 +0000 (17:29 +0000)]
Public interface review items:
* Internal uses of CheckArgument changed to AssertArgument/AlwaysAssertArgument()
* Make util/Assert.h cvc4_private instead of public, so AssertionException and friends are now internal-only
* CheckArgument() throws non-AssertionException
* things outside the core library (parsers, driver) use regular C-style assert,
or a public exception type.
* auto-generated documentation for Smt options and internal options
Also, a small fix to SMT-LIBv1 QF_ABV and QF_AUFBV definitions, which were nonstandard.
Morgan Deters [Fri, 28 Sep 2012 16:46:13 +0000 (16:46 +0000)]
* fix compatibility library naming for SMT-LIBv1
* change name of JNI library to "libcvc4jni", which works better with Java's
System.loadLibrary().
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 27 Sep 2012 22:04:38 +0000 (22:04 +0000)]
* Rename SMT parts (printer, parser) to SMT1
* Change --lang smt to mean SMT-LIBv2
* --lang smt1 now means SMT-LIBv1
* SMT-LIBv2 parser now gives helpful error if input looks like v1
* SMT-LIBv1 parser now gives helpful error if input looks like v2
* CVC presentation language parser now gives helpful error if input
looks like either SMT-LIB v1 or v2
* Other associated changes
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 27 Sep 2012 20:11:59 +0000 (20:11 +0000)]
finally, a portable solution
Morgan Deters [Thu, 27 Sep 2012 20:10:00 +0000 (20:10 +0000)]
fix for non-Mac
Morgan Deters [Thu, 27 Sep 2012 20:07:21 +0000 (20:07 +0000)]
speed up mkoptions script (esp. on Macs)
Morgan Deters [Thu, 27 Sep 2012 18:41:20 +0000 (18:41 +0000)]
better progress indicator for mkoptions
Morgan Deters [Wed, 26 Sep 2012 22:22:09 +0000 (22:22 +0000)]
disable building of cvc3_george system-test object (which isn't used yet anyway, and required ~10 minutes to build with -O3).
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Wed, 26 Sep 2012 22:00:19 +0000 (22:00 +0000)]
Finish off SEXPR kind work.
(this commit was certified error- and warning-free by the test-and-commit script.)
Andrew Reynolds [Wed, 26 Sep 2012 21:44:22 +0000 (21:44 +0000)]
updates to model generation : do not modify equality engine during getValue, other minor changes, still problems with constants not being specified for some eq classes
Morgan Deters [Wed, 26 Sep 2012 18:51:48 +0000 (18:51 +0000)]
Fix a handful of things for Mac, and Java bindings.
Also add a "mac-build" script that sets up prerequisites for Mac.
Morgan Deters [Wed, 26 Sep 2012 16:42:40 +0000 (16:42 +0000)]
bug #398 test (bug was resolved last night), and a script to download all bug attachments from bugzilla and put them in the tree
Morgan Deters [Wed, 26 Sep 2012 03:50:57 +0000 (03:50 +0000)]
Fix type checking for define-funs (resolves bug 398).
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Wed, 26 Sep 2012 03:07:01 +0000 (03:07 +0000)]
The Tuesday Afternoon Catch-All Commit (TACAC):
* --early-exit and --no-early-exit command line options (the former is default for all builds except debug builds)
* New SEXPR kind for doing lists of things (we previously used TUPLEs for this purpose, but TUPLEs will be used in future by the datatypes theory, and so cannot have function symbols in them, etc.).
* SMT-LIB compliant output for (set-option :produce-unsat-cores true) and (get-unsat-core)
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Tue, 25 Sep 2012 20:32:18 +0000 (20:32 +0000)]
fix
Morgan Deters [Tue, 25 Sep 2012 18:57:48 +0000 (18:57 +0000)]
fix some Mac issues
Morgan Deters [Tue, 25 Sep 2012 15:16:41 +0000 (15:16 +0000)]
some buggy examples for incrementality, and make bug326 run as part of make regress, because the bug was fixed.
Also make QuantifiersModule's destructor virtual (it has virtual members).
(this commit was certified error- and warning-free by the test-and-commit script.)
Dejan Jovanović [Mon, 24 Sep 2012 20:55:58 +0000 (20:55 +0000)]
some api changes
Morgan Deters [Mon, 24 Sep 2012 18:37:22 +0000 (18:37 +0000)]
Fix the memout issue seen in recent nightly regressions (was due to a
Statistics-printing problem, limited to certain benchmarks).
Mark some unlabeled header files "cvc4_private.h".
Other minor cleanup.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 22 Sep 2012 21:10:51 +0000 (21:10 +0000)]
Separate public-facing and internal-facing interfaces to Statistics.
The external interface (e.g., what's answered by ExprManager::getStatistics() and SmtEngine::getStatistics()) is a snapshot of the current statistics (rather than a reference to the actual StatisticsRegistry).
The StatisticsRegistry is now internal-only. However, it's built as a convenience library so that the parser and driver can use it too (by re-linking against it).
This is part of the ongoing effort to clean up the public interface.
(this commit was certified error- and warning-free by the test-and-commit script.)
Dejan Jovanović [Sat, 22 Sep 2012 14:34:52 +0000 (14:34 +0000)]
another fix for the equality class iterator
Morgan Deters [Fri, 21 Sep 2012 21:09:18 +0000 (21:09 +0000)]
Fixes for datatype dumping and printing. Add a new test case for dumping.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 21 Sep 2012 20:34:19 +0000 (20:34 +0000)]
SMT-LIBv2 compliance updates:
* chainability of =, <, <=, >, >= via the new CHAINABLE kind and
TheoryBuiltin rewriter support (resolves bug #383)
* with --smtlib2, force interactive mode off by default
Also:
* fix a few bugs causing crashes
* better "alias" processing for options
* configure-time fixes to readline detection
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 21 Sep 2012 10:24:08 +0000 (10:24 +0000)]
better verbosity support (so it's sensible when the library is used via the API)
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Thu, 20 Sep 2012 18:59:26 +0000 (18:59 +0000)]
map C++ exceptions to Java exceptions correctly when they are thrown, and give a build error for Java component if it is misconfigured
Morgan Deters [Thu, 20 Sep 2012 13:36:12 +0000 (13:36 +0000)]
some bugfixes that come as a result of debugging some CASCADE/C stuff..
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Wed, 19 Sep 2012 21:21:00 +0000 (21:21 +0000)]
General subscriber infrastructure for NodeManager, as discussed in the
meeting last week. The SmtEngine now subscribes to NodeManager events,
does appropriate dumping of variable declarations, and notifies the Model
class.
The way to create a skolem is now:
nodeManager->mkSkolem("myvar_$$", TypeNode, "is a variable created by the theory of Foo")
The first argument is the name of the skolem, and the (optional) "$$" is a
placeholder for the node id (to get a unique name). Without a "$$", a "_$$"
is automatically appended to the given name.
The second argument is the type.
The (optional, but recommended) third argument is a comment, used by the
dump infrastructure to indicate what the variable is for / who owns it.
An optional fourth argument (not shown) allows you to specify flags that
control the behavior (e.g., don't do notification, and/or don't make a
unique name). Look at the documentation for details on these.
In particular, the above means you can't just do a mkSkolem(boolType) for
example---you have to specify a name and (hopefully also,
but it's optional) a comment. This leads to easier debugging than the
anonymous skolems before, since we'll be able to track where the skolems
came from.
Much of the Model and Dump stuff, as well as some Command stuff, is cleaned up
by this commit. Some remains to be cleaned up.
(this commit was certified error- and warning-free by the test-and-commit script.)