Morgan Deters [Fri, 30 Sep 2011 03:33:56 +0000 (03:33 +0000)]
more push/pop infrastructure, some SAT stuff
Morgan Deters [Fri, 30 Sep 2011 02:29:00 +0000 (02:29 +0000)]
fixes to incremental simplification, cnf routines, other stuff in preparation of user push/pop in SAT solver
Morgan Deters [Thu, 29 Sep 2011 18:38:00 +0000 (18:38 +0000)]
compatibility work, documentation
Morgan Deters [Thu, 29 Sep 2011 06:40:27 +0000 (06:40 +0000)]
build system fixes
Morgan Deters [Thu, 29 Sep 2011 05:15:30 +0000 (05:15 +0000)]
Some base infrastructure for user push/pop; a few bugfixes to user push/pop and model gen also.
I also expect this commit to fix bug #273.
No performance change is expected on regressions with this commit, see
http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2871&reference_id=2863
Morgan Deters [Thu, 29 Sep 2011 02:24:28 +0000 (02:24 +0000)]
some test fixes
Morgan Deters [Wed, 28 Sep 2011 23:57:12 +0000 (23:57 +0000)]
another make dist fix for java compat bindings
Morgan Deters [Wed, 28 Sep 2011 23:53:57 +0000 (23:53 +0000)]
variety of visibility fixes (should clean up some of the many warnings on MacOS-production-dynamic builds)
Morgan Deters [Wed, 28 Sep 2011 22:38:31 +0000 (22:38 +0000)]
CVC4::Integer was not marked CVC4_PUBLIC, causing dynamic link errors on MacOS in production builds. Fixed.
Morgan Deters [Wed, 28 Sep 2011 22:32:05 +0000 (22:32 +0000)]
fixes for make dist ; make install
Morgan Deters [Wed, 28 Sep 2011 19:46:53 +0000 (19:46 +0000)]
better fix for #281, also fix issue with command line options not existing on older g++en, like Apple's 4.2 on Snow Leopard.
Morgan Deters [Wed, 28 Sep 2011 18:46:29 +0000 (18:46 +0000)]
Regular expressions in shell scripts on MacOS are inconsistent... again. :-( Fixing a problem with Debug_tags and Trace_tags, closes bug #281
Morgan Deters [Wed, 28 Sep 2011 00:45:46 +0000 (00:45 +0000)]
removed "typename" keyword (fix to bug 280)
Morgan Deters [Tue, 27 Sep 2011 00:34:30 +0000 (00:34 +0000)]
more interface work; adding legacy C interface
Morgan Deters [Sun, 25 Sep 2011 08:18:45 +0000 (08:18 +0000)]
first crack at compatibility java interface (not built by default)
Morgan Deters [Sat, 24 Sep 2011 18:04:08 +0000 (18:04 +0000)]
Fix to building and linking for unit tests. (This should fix the segfaulting units in optimized-dynamic. The problem was that the code incorrectly determined the address of one of the thread-scoped global variables, and I think it's because the same library was linked twice into the unit test in two different ways, confusing the runtime support code.)
Morgan Deters [Fri, 23 Sep 2011 23:37:42 +0000 (23:37 +0000)]
interface cleanup, java bindings work
Morgan Deters [Wed, 21 Sep 2011 05:02:58 +0000 (05:02 +0000)]
Java binding now working. Some interface types still need some work (e.g. iterators aren't functional). Also, output isn't very flexible yet, as I told SWIG to ignore all the operator<<'s.
Morgan Deters [Wed, 21 Sep 2011 03:26:13 +0000 (03:26 +0000)]
considerable bindings interface work, some improvements to build
Morgan Deters [Tue, 20 Sep 2011 17:45:00 +0000 (17:45 +0000)]
fix build
Morgan Deters [Tue, 20 Sep 2011 14:58:30 +0000 (14:58 +0000)]
Merge from "swig" branch: language binding for Java is compiling and linking. Enable with --enable-language-bindings=java
Morgan Deters [Sun, 18 Sep 2011 21:13:34 +0000 (21:13 +0000)]
cleaned up the mechanism for library versioning
Morgan Deters [Sat, 17 Sep 2011 01:57:27 +0000 (01:57 +0000)]
--show-debug-tags and --show-trace-tags now supported by Configuration API; also, the information is only recompiled and relinked when it has changed, avoiding unnecessary relinking
Morgan Deters [Fri, 16 Sep 2011 21:54:21 +0000 (21:54 +0000)]
dump define-funs correctly with "--dump declarations", whether the function is defined via API or through input language
Morgan Deters [Fri, 16 Sep 2011 21:52:25 +0000 (21:52 +0000)]
include example theory (former "UF-Tim") that's included in the dist but not built for the library
Morgan Deters [Fri, 16 Sep 2011 21:36:07 +0000 (21:36 +0000)]
final(?) documentation fixes
Morgan Deters [Fri, 16 Sep 2011 21:32:37 +0000 (21:32 +0000)]
fix up more documentation
Morgan Deters [Fri, 16 Sep 2011 21:30:27 +0000 (21:30 +0000)]
some minor fixes to the cvc3 compatibility library and test case
Morgan Deters [Fri, 16 Sep 2011 20:53:36 +0000 (20:53 +0000)]
new, improved doxygen config file
Morgan Deters [Fri, 16 Sep 2011 20:53:19 +0000 (20:53 +0000)]
fix serious issue with copyright-updating script
Morgan Deters [Fri, 16 Sep 2011 20:53:00 +0000 (20:53 +0000)]
fix numerous documentation issues; doxygen complains much less, now
Morgan Deters [Fri, 16 Sep 2011 20:49:58 +0000 (20:49 +0000)]
fix an oversight in the language printers
Morgan Deters [Fri, 16 Sep 2011 20:19:25 +0000 (20:19 +0000)]
fix debian build without breaking anything (i hope)
Dejan Jovanović [Thu, 15 Sep 2011 21:48:42 +0000 (21:48 +0000)]
tim's fixes for context-dependent pre-registration
Dejan Jovanović [Thu, 15 Sep 2011 18:17:11 +0000 (18:17 +0000)]
adding --show-debug-tags to list all available debug tracing tags
Dejan Jovanović [Thu, 15 Sep 2011 06:53:33 +0000 (06:53 +0000)]
additional stuff for sharing,
Dejan Jovanović [Wed, 7 Sep 2011 16:25:15 +0000 (16:25 +0000)]
fixes for uf/equality engine from the quantifiers branch. mainly backtracking issues.
Morgan Deters [Sat, 3 Sep 2011 18:31:24 +0000 (18:31 +0000)]
this should fix the build; doxygen documentation now gets built in srcdir/doc/doxygen
Morgan Deters [Sat, 3 Sep 2011 18:13:04 +0000 (18:13 +0000)]
Disable a warning to address bug 277. (This doesn't really resolve the issue, but the warning isn't dangerous here. See the bugzilla comments.)
Dejan Jovanović [Sat, 3 Sep 2011 00:42:34 +0000 (00:42 +0000)]
removing an assert i forgot to remove that andy found
Morgan Deters [Fri, 2 Sep 2011 20:41:08 +0000 (20:41 +0000)]
Merge from my post-smtcomp branch. Includes:
Dumping infrastructure. Can dump preprocessed queries and clauses. Can
also dump queries (for testing with another solver) to see if any conflicts
are missed, T-propagations are missed, all lemmas are T-valid, etc. For a
full list of options see --dump=help.
CUDD building much cleaner.
Documentation and assertion fixes.
Printer improvements, printing of commands in language-defined way, etc.
Typechecker stuff in expr package now autogenerated, no need to manually
edit the expr package when adding a new theory.
CVC3 compatibility layer (builds as libcompat).
SWIG detection and language binding support (infrastructure).
Support for some Z3 extended commands (like datatypes) in SMT-LIBv2 mode
(when not in compliance mode).
Copyright and file headers regenerated.
Morgan Deters [Fri, 2 Sep 2011 19:23:18 +0000 (19:23 +0000)]
Ensure that assignment gestures through CDMap iterators like:
(*myCDMap.find(foo)).second = bar;
fail with a compile-time error (rather than being silently ignored, like
they had been).
Resolves bug #276.
Morgan Deters [Fri, 2 Sep 2011 17:56:43 +0000 (17:56 +0000)]
Partial merge of integers work; this is simple B&B and some pseudoboolean
infrastructure, and takes care not to affect CVC4's performance on LRA
benchmarks.
Dejan Jovanović [Fri, 2 Sep 2011 12:39:23 +0000 (12:39 +0000)]
* Changing pre-registration to be context dependent -- it is called from the SAT solver on every backtrack
* Updated UF to handle the context dependent pre-registration
* Additionally some small changes in order to satisfy warnings of the eclipse code analysis tool
Dejan Jovanović [Tue, 30 Aug 2011 02:19:58 +0000 (02:19 +0000)]
Fixin the SAT solver for Andy. Even if a SAT lemma is added, a FULL-CHECK will be reissued. Some unexpected slowdowns, but not too much.
Dejan Jovanović [Sat, 27 Aug 2011 00:33:22 +0000 (00:33 +0000)]
Removing Theory::registerTerm() as discussed in the meeting. Now pre-register is called on all the theory terms and the foreign-terms also. This means, if x: REAL and f:REAL, that in f(x) >= 0, arithmetic gets pre-register call with x, f(x) and f(x) >= 0, while UF gets pre-register call with x, f(x).
Dejan Jovanović [Thu, 25 Aug 2011 18:36:46 +0000 (18:36 +0000)]
Fixing the broken unit tests
Dejan Jovanović [Wed, 24 Aug 2011 21:03:19 +0000 (21:03 +0000)]
Simplification of the preregister and register throught a NodeVisitor class. The theoryOf is not all in one place, theory::theoryOf. The uninterpreted sorts belong to the builtin theory and are dispatched to the apropriate theory (QF_UF, QF_AX) through theoryOf based on the setting in the Theory class.
Dejan Jovanović [Tue, 23 Aug 2011 23:43:01 +0000 (23:43 +0000)]
some uf cleanup
Dejan Jovanović [Wed, 17 Aug 2011 15:20:19 +0000 (15:20 +0000)]
new implementation of lemmas on demand
comparison <http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2673&&p=5&reference_id=2637>
Morgan Deters [Tue, 12 Jul 2011 22:46:57 +0000 (22:46 +0000)]
forgot to reflect naming change in makefile. fixed
Morgan Deters [Tue, 12 Jul 2011 22:42:15 +0000 (22:42 +0000)]
fix bug 272, array unsoundness, and some array cleanup
Morgan Deters [Mon, 11 Jul 2011 23:14:25 +0000 (23:14 +0000)]
remove some array regressions from "make check" so nightly regressions run
Morgan Deters [Mon, 11 Jul 2011 20:42:39 +0000 (20:42 +0000)]
status of examples
Morgan Deters [Mon, 11 Jul 2011 20:41:28 +0000 (20:41 +0000)]
new array bugs ?
Morgan Deters [Mon, 11 Jul 2011 20:06:20 +0000 (20:06 +0000)]
fixing out of place typename (error on g++ 4.4.3-4ubuntu5)
Morgan Deters [Mon, 11 Jul 2011 20:00:47 +0000 (20:00 +0000)]
submission script
Clark Barrett [Mon, 11 Jul 2011 20:00:29 +0000 (20:00 +0000)]
Adding static_fact_manager
Clark Barrett [Mon, 11 Jul 2011 19:53:44 +0000 (19:53 +0000)]
Clark's work on array theory - can now solve all QF_AX problems
Morgan Deters [Mon, 11 Jul 2011 19:34:01 +0000 (19:34 +0000)]
fix some confusing debug output (bogus counter)
Morgan Deters [Mon, 11 Jul 2011 18:50:44 +0000 (18:50 +0000)]
mark the new minimized benchmark as unsat
Morgan Deters [Mon, 11 Jul 2011 18:48:16 +0000 (18:48 +0000)]
if running in QF_AX, equalities over terms of uninterpreted sort go to arrays, as well as pre-registration of free constants of uninterpreted sort, etc..
Morgan Deters [Mon, 11 Jul 2011 16:53:50 +0000 (16:53 +0000)]
minimized example
Morgan Deters [Mon, 11 Jul 2011 16:38:38 +0000 (16:38 +0000)]
array benchmarks
Dejan Jovanović [Mon, 11 Jul 2011 12:45:16 +0000 (12:45 +0000)]
adding disequality propagation
relevant comparison http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2602&reference_id=2590&p=5
Morgan Deters [Mon, 11 Jul 2011 03:33:14 +0000 (03:33 +0000)]
merge from symmetry branch
Clark Barrett [Sun, 10 Jul 2011 19:41:04 +0000 (19:41 +0000)]
Reverting mistaken check-in
Dejan Jovanović [Sun, 10 Jul 2011 17:23:29 +0000 (17:23 +0000)]
changing the sat solver remove clauses constants
with these we get closer to yices on uf and it seems better on lra
vs yices uf http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2590&category=&p=5&reference_id=1471
vs trunk on lra http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2591&category=&p=5&reference_id=2576
Clark Barrett [Sun, 10 Jul 2011 16:57:38 +0000 (16:57 +0000)]
Fixed bug in default solve - wasn't returning when it was supposed to
Dejan Jovanović [Sun, 10 Jul 2011 12:48:42 +0000 (12:48 +0000)]
another typo
Dejan Jovanović [Sun, 10 Jul 2011 12:32:13 +0000 (12:32 +0000)]
yet another uf bug fix, hopefully the last
Dejan Jovanović [Sun, 10 Jul 2011 12:05:47 +0000 (12:05 +0000)]
another bugfix for uf
Dejan Jovanović [Sat, 9 Jul 2011 05:40:21 +0000 (05:40 +0000)]
some immediate bug fixes
Morgan Deters [Sat, 9 Jul 2011 03:11:58 +0000 (03:11 +0000)]
fix submission makefile
Morgan Deters [Sat, 9 Jul 2011 02:35:19 +0000 (02:35 +0000)]
minor fixups
Dejan Jovanović [Sat, 9 Jul 2011 01:38:48 +0000 (01:38 +0000)]
surprize surprize
Dejan Jovanović [Thu, 7 Jul 2011 14:03:14 +0000 (14:03 +0000)]
removing duplicate clauses in ite cnf conversion
Morgan Deters [Thu, 7 Jul 2011 05:31:13 +0000 (05:31 +0000)]
cudd-building prefs with --with-cudd / --without-cudd
Dejan Jovanović [Wed, 6 Jul 2011 23:42:04 +0000 (23:42 +0000)]
Fixing two bugs:
1) arithmetic should check for subterms when solving equations, for instance x = if b then x + 1 else x -1 is not a valid substitution
2) a memory problem in minisat - explanations are constructed during conflict analysis, so the clause database might resize and relocate, which invalidates any references to clauses
Dejan Jovanović [Tue, 5 Jul 2011 17:56:45 +0000 (17:56 +0000)]
missing test case
Dejan Jovanović [Tue, 5 Jul 2011 16:21:50 +0000 (16:21 +0000)]
updated preprocessing and rewriting input equalities into inequalities for LRA
Morgan Deters [Thu, 30 Jun 2011 21:03:52 +0000 (21:03 +0000)]
Allow (- x) for unary minus in SMT-LIBv1, in addition to the standard (~ x),
when --strict-parsing is off (which it is by default). The danoint benchmarks
have such monsters.
Tim King [Thu, 30 Jun 2011 19:06:57 +0000 (19:06 +0000)]
Changed the defaults for arithPivotThreshold and arithPropagateMaxLength to 16. Enabled arithmetic propagation and variable removal by default. Changed the command line arguments for both propagation and variable removal allow for disabling these.
Tim King [Thu, 30 Jun 2011 18:40:29 +0000 (18:40 +0000)]
Merging the playground branch upto r1957 into trunk.
Morgan Deters [Thu, 30 Jun 2011 06:06:30 +0000 (06:06 +0000)]
only use theory registration if (1) a theory requests it, or (2) if there's more than one "real" theory (not BUILTIN or BOOL) active
Morgan Deters [Thu, 30 Jun 2011 03:56:58 +0000 (03:56 +0000)]
some things I had laying around in a directory but never got committed; minor fix-ups to documentation and some node stuff
Tim King [Wed, 29 Jun 2011 19:32:04 +0000 (19:32 +0000)]
Fixed spelling mistake and documentation for --enable-variable-removal.
Morgan Deters [Sat, 18 Jun 2011 02:44:41 +0000 (02:44 +0000)]
Some fixes inspired by Fedora 15:
* compilation fixes for GCC 4.6.x
+ ptrdiff_t is now in std::
* fix some make rules that are ok in Make 3.81 but broke in Make 3.82
* look for cxxtestgen.py as well as cxxtestgen.pl, and look for cxxtest headers in /usr/include
Morgan Deters [Mon, 6 Jun 2011 22:12:21 +0000 (22:12 +0000)]
compilation fix for x86 (from previous commit)
Morgan Deters [Mon, 6 Jun 2011 21:37:23 +0000 (21:37 +0000)]
Fix for Mac OS breakage (x86 didn't crash, but probably would, eventually, on some problems---valgrind gave many complaints): the problem was that calloc() (in the Backtracker) wasn't allocating enough space for the type located at the resulting address. Resolves bug #263.
Also, some debugging improvements.
Andrew Reynolds [Fri, 3 Jun 2011 19:56:12 +0000 (19:56 +0000)]
fixed various bugs related to ambiguous parametric datatype constructors, parametric datatype versions of paper benchmarks are now working
Morgan Deters [Fri, 3 Jun 2011 05:30:54 +0000 (05:30 +0000)]
datatypes work
Morgan Deters [Thu, 2 Jun 2011 22:17:56 +0000 (22:17 +0000)]
minor fix to build system for system tests
Andrew Reynolds [Thu, 2 Jun 2011 15:23:16 +0000 (15:23 +0000)]
added (temporary) support for ensuring that all ambiguously typed constructor nodes created internally are given a type ascription
Morgan Deters [Wed, 1 Jun 2011 01:13:21 +0000 (01:13 +0000)]
minor fix, and better output for type errors
Morgan Deters [Wed, 1 Jun 2011 00:49:37 +0000 (00:49 +0000)]
type ascriptions (casts) for parameterized datatypes, e.g. "nil :: list[INT]
Tim King [Tue, 31 May 2011 01:06:16 +0000 (01:06 +0000)]
This commit contains the code for allowing arbitrary equalities in the theory of arithmetic.
* This code has been partially tested. (My testing situation is currently not so great.) The code for testing not preregistering equalities can be compile time enabled by setting the boolean turnOffEqualityPreRegister. Don't be shocked by slowdowns or failures. This does pass make regress as well as a fresh checkout does. (The Mac version has issues.)
* I need to disable the permanent row removal heuristic by default. We need to discuss why this needs to happen. We should probably detect pure QF_LRA/QF_RDL problems and enable this when this can safely be done.
* I have disabled the arithmetic rewrite equality flag. This code needs to be added to the parser.
* For all of the above changes, I have annotated the code with the key word BREADCRUMB.
* I have renamed ArithUnatePropagator to ArithAtomDatabase.
Morgan Deters [Sat, 28 May 2011 06:44:07 +0000 (06:44 +0000)]
fix unit test linking issue
Morgan Deters [Sat, 28 May 2011 05:51:01 +0000 (05:51 +0000)]
include subversion information used for each build in the --show-config output and as a banner in --interactive mode; intended to resolve confusion in cases where you don't know where a CVC4 binary came from
Morgan Deters [Thu, 26 May 2011 05:04:34 +0000 (05:04 +0000)]
apply arithmetic static learner's miplibtrick in a consistent order (for easier replication of experiment)