Liana Hadarean [Thu, 15 Nov 2012 20:57:22 +0000 (20:57 +0000)]
forgot to uncomment setLogicInternal for THEORY_BV
Liana Hadarean [Thu, 15 Nov 2012 20:52:09 +0000 (20:52 +0000)]
changed logic options so that justification is turned on for QF_ABV and QF_UFBV as well
Morgan Deters [Thu, 15 Nov 2012 18:12:40 +0000 (18:12 +0000)]
d_incomplete is context-dependent; we shouldn't be saving its value and restoring after a flipDecision().
(this commit was certified error- and warning-free by the test-and-commit script.)
Clark Barrett [Thu, 15 Nov 2012 15:03:53 +0000 (15:03 +0000)]
fuzz15 should have been fuzz14
Tim King [Thu, 15 Nov 2012 02:15:22 +0000 (02:15 +0000)]
Fix for bug 447.
Clark Barrett [Thu, 15 Nov 2012 02:14:42 +0000 (02:14 +0000)]
Fixed another AUFBV model bug. BV equality subtheory needed to do something
similar to arrays - limit the set of terms reported to those relevant in the
current context. Also removed collectModelInfo from sharedTermsDatabase -
doesn't seem to be needed any more.
Tim King [Thu, 15 Nov 2012 02:02:47 +0000 (02:02 +0000)]
Fixing comments in print_lambda.cvc.
Tim King [Wed, 14 Nov 2012 23:49:07 +0000 (23:49 +0000)]
Fix for bug 407. mkAnonymousFunction() in the parser no longer uses ':'. CVC printer now properly prints LAMBDAs. Model builing now gives bound variables names that can be parsed bypresentation language.
Andrew Reynolds [Wed, 14 Nov 2012 22:58:53 +0000 (22:58 +0000)]
replaced all static member data from rewrite rule triggers, added infrastructure for recognizing quantifier macros
Tim King [Wed, 14 Nov 2012 22:48:06 +0000 (22:48 +0000)]
Fixed a typo in r4576
Tim King [Wed, 14 Nov 2012 22:45:46 +0000 (22:45 +0000)]
Beautifying smt_engine.cpp.
Tim King [Wed, 14 Nov 2012 22:43:57 +0000 (22:43 +0000)]
Fix to bug449. Adds shared constants to the set of DeltaRationals that must be in the final total order.
Clark Barrett [Wed, 14 Nov 2012 21:54:25 +0000 (21:54 +0000)]
bug fixes to models, array rewriter with previously failing testcases
Kshitij Bansal [Wed, 14 Nov 2012 20:59:00 +0000 (20:59 +0000)]
Quantifiers enabled with portfolio, closing bug 423.
Kshitij Bansal [Wed, 14 Nov 2012 00:29:50 +0000 (00:29 +0000)]
fix a race problem. due to interrupt mechanism minisat returned true instead of undef.
Clark Barrett [Tue, 13 Nov 2012 22:51:27 +0000 (22:51 +0000)]
More bugfixes for models
Tim King [Tue, 13 Nov 2012 21:48:33 +0000 (21:48 +0000)]
SmtEngine::checkModel() should only be called if the result is sat or unknown because of incompleteness. Other unknown results are not safe to build models for, timeout, interrupted, etc.
Andrew Reynolds [Tue, 13 Nov 2012 21:16:26 +0000 (21:16 +0000)]
refactoring of quantifiers rewriter based on code review from yesterday, refactoring code out of instantiators in preparation for quantifiers equality engine
Liana Hadarean [Tue, 13 Nov 2012 20:38:40 +0000 (20:38 +0000)]
fixed failed bv regressions by refactoring out some rewrite rules from smt_engine.cpp
Liana Hadarean [Tue, 13 Nov 2012 04:49:34 +0000 (04:49 +0000)]
added support for division by zero for bit-vector division operators
Clark Barrett [Tue, 13 Nov 2012 02:47:09 +0000 (02:47 +0000)]
Relaxing too-strict assertion
Clark Barrett [Tue, 13 Nov 2012 02:28:05 +0000 (02:28 +0000)]
Fixed an array rewriting bug found by fuzzer
Clark Barrett [Tue, 13 Nov 2012 01:24:53 +0000 (01:24 +0000)]
Testcases for fixed bugs
Clark Barrett [Tue, 13 Nov 2012 01:24:27 +0000 (01:24 +0000)]
Fixed bug in array constant normalization found by fuzzer.
Tim King [Mon, 12 Nov 2012 23:50:29 +0000 (23:50 +0000)]
Improved error reporting for improperly using non-linear division in linear arithmetic.
Tim King [Mon, 12 Nov 2012 22:54:35 +0000 (22:54 +0000)]
Delta is now generated in arithmetic to keep consistent the total order of DeltaRational values for lowerbounds, upperbounds, assignments and disequalities. Throws LogicException when a non-linear term is asserted and the the LogicInfo isLinear() disagrees.
Liana Hadarean [Mon, 12 Nov 2012 19:38:47 +0000 (19:38 +0000)]
changed BitVector::unsignedRem to match the behavior of the bit-blasted circuit for division by 0; temporary fix for bug440
Morgan Deters [Mon, 12 Nov 2012 18:36:45 +0000 (18:36 +0000)]
Fix for bug 444, dealing with the placing of set-logic in dumping modes.
CVC4 now produces equivalent output when dumping the SMT1 and SMT2 attachments to that bug report.
This also fixes a memory leak in the new-variable-notification mechanism.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Mon, 12 Nov 2012 18:34:32 +0000 (18:34 +0000)]
* Fix language bindings: various issues
** remove a number of warnings in bindings generation
** give appropriate names for operator-overloading
** make sure Java language bindings are built with -fno-strict-aliasing, to ensure the optimizer doesn't produce bad code
* Also remove BitVector::equals(), which wasn't used and was inconsistently implemented (operator==() is still there).
(this commit was certified error- and warning-free by the test-and-commit script.)
Andrew Reynolds [Mon, 12 Nov 2012 16:46:51 +0000 (16:46 +0000)]
minor bug fixes for quantifiers, added sort inference module (not ready to be used yet), added new totality lemma option for uf strong solver
Tim King [Sun, 11 Nov 2012 00:28:05 +0000 (00:28 +0000)]
Fixes for the arithmetic normal form and rewriter to handle arbitrary constants for total functions.
Tim King [Sat, 10 Nov 2012 23:56:46 +0000 (23:56 +0000)]
Beautifying integer_cln_imp.h
Tim King [Sat, 10 Nov 2012 23:55:34 +0000 (23:55 +0000)]
Fix to quantifier rewritting not being idempotent. See bug 441.
Tim King [Sat, 10 Nov 2012 20:27:00 +0000 (20:27 +0000)]
Removing rewriter call in SmtEngine::addFormula().
Clark Barrett [Sat, 10 Nov 2012 20:15:24 +0000 (20:15 +0000)]
Fixed missing \ in uflra/Makefile.ma
Fixed another model bug and added previously failing fuzz testcase
Tim King [Sat, 10 Nov 2012 19:01:49 +0000 (19:01 +0000)]
Fix for bug 439. Delta computation now includes disequality information.
Morgan Deters [Sat, 10 Nov 2012 17:08:54 +0000 (17:08 +0000)]
Change run-regression script to *additionally* run a second test with --check-models *if* the benchmark is sat/invalid (or is incremental, with at least one sat/invalid result).
This increases significantly the time to do a "make regress", as more tests are running.
We need to run both *with* and *without* --check-models, since that option disables certain preprocessing.
To turn off these extra tests during a make regress, you can set CVC4_REGRESSION_ARGS=--no-check-models.
To turn off the extra test for a *particular* regression benchmark, you can put this in the benchmark:
; COMMAND-LINE: --no-check-models
That might be necessary in e.g. nonlinear arithmetic benchmarks.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 10 Nov 2012 16:41:01 +0000 (16:41 +0000)]
Updates to Clark's commit r4540:
* ALL_SUPPORTED/QF_ALL_SUPPORTED don't include nonlinear
* Change "Notice" to "Warning" when produce-models turned off due to non-linear
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Sat, 10 Nov 2012 16:08:37 +0000 (16:08 +0000)]
fix typo in language bindings
Clark Barrett [Sat, 10 Nov 2012 04:34:34 +0000 (04:34 +0000)]
Finally tracked down problems in regressions and fuzz results (this also
explains why my build was giving different answers from Dejan's build).
Problem was that if you run:
cvc4 --check-models foo.smt
it would fail, but if you run
cvc4 --check-models --produce-models foo.smt
it would succeed. Even though produce-models is supposed to be automatically
set when you set check-models, it seems this was happening too late. Fixed by
removing any distinction between produce-models and check-models in the
heuristic setting code. Kind of ugly though.
Also, disable models if nonlinear arithmetic is on.
Morgan Deters [Fri, 9 Nov 2012 21:25:07 +0000 (21:25 +0000)]
TheoryEngineModelBuilder::buildModel() is only called once with fullModel=true, within a SAT context. This fixes some outstanding model bugs.
Committing also a Clark-provided assertion the Model code to ensure the call is only done once per context.
(this commit was certified error- and warning-free by the test-and-commit script.)
Kshitij Bansal [Fri, 9 Nov 2012 21:11:47 +0000 (21:11 +0000)]
export null nodes (fixes a bug in portfolio model stuff)
Tim King [Fri, 9 Nov 2012 21:05:43 +0000 (21:05 +0000)]
Test that breaks arithmetic model building due to disequality terms.
Tim King [Fri, 9 Nov 2012 19:58:00 +0000 (19:58 +0000)]
Arithmetic problem that fails --check-models due incompleteness with multiplication.
Morgan Deters [Fri, 9 Nov 2012 19:18:58 +0000 (19:18 +0000)]
Bug-fix for a crash involving improperly-thrown exceptions; also, add LogicException for errors where the user uses a feature not permitted in the current logic (e.g., a quantifier in a QF logic)
Morgan Deters [Fri, 9 Nov 2012 18:41:24 +0000 (18:41 +0000)]
In non-linear logics, rewrite DIVISION, INTS_DIVISION, and INTS_MODULUS into ITEs of the form:
IF (denom = 0) THEN divByZero(num) ELSE (DIVISION_TOTAL num denom) ENDIF
where divByZero is an uninterpreted function symbol (there's one for each of the partial operators).
In linear logics, don't do any of this.
Bitvector partial functions to come, if this is successful for Tim.
(this commit was certified error- and warning-free by the test-and-commit script.)
Morgan Deters [Fri, 9 Nov 2012 17:39:05 +0000 (17:39 +0000)]
another DISTCLEANFILES entry, for proper "make distclean" behavior (fixes "distclean" target error last night)
Clark Barrett [Fri, 9 Nov 2012 03:18:00 +0000 (03:18 +0000)]
Fix for another model assertion failure
Tim King [Thu, 8 Nov 2012 23:54:18 +0000 (23:54 +0000)]
Turns on TheoryUF when non-linear arithmetic is turned on. Adds test cases for division by 0.
Morgan Deters [Thu, 8 Nov 2012 22:16:26 +0000 (22:16 +0000)]
fix "make distcheck"
Morgan Deters [Thu, 8 Nov 2012 21:53:14 +0000 (21:53 +0000)]
Review of trunk r4525 (TypeNode::getBaseType()):
* fixed TypeNode::getBaseType() for predicate subtypes
* added Type::getBaseType() for public interface
* added unit testing
To avoid confusion, also:
* renamed PredicateType::getBaseType() to "getParentType()"
* renamed TypeNode::getSubtypeBaseType() to "getSubtypeParentType()"
(this commit was certified error- and warning-free by the test-and-commit script.)
Tim King [Thu, 8 Nov 2012 21:25:27 +0000 (21:25 +0000)]
Improved support for division by zero. This adds the *_TOTAL kinds and uninterpreted functions for division by 0.
Morgan Deters [Thu, 8 Nov 2012 21:08:58 +0000 (21:08 +0000)]
exception fix
Clark Barrett [Thu, 8 Nov 2012 12:22:06 +0000 (12:22 +0000)]
Fixed two small bugs in model generation
Clark Barrett [Thu, 8 Nov 2012 12:21:43 +0000 (12:21 +0000)]
Added getBaseType - Morgan please check
Andrew Reynolds [Thu, 8 Nov 2012 00:07:22 +0000 (00:07 +0000)]
added support for parametric datatypes in smt2 parser, includes support for 'as' qualifier
Morgan Deters [Wed, 7 Nov 2012 20:34:09 +0000 (20:34 +0000)]
* Type ascription bug fixed (resolves bug 432), but there are others I discovered (still outstanding). :-(
* Fix a documentation-building problem when building from tarballs (fixes distcheck build failure last night)
* Provide expected output for arith regression 'mod.01.smt2'
* Also, fix a compiler warning in inst_gen.cpp
(this commit was certified error- and warning-free by the test-and-commit script.)
Tim King [Wed, 7 Nov 2012 19:43:34 +0000 (19:43 +0000)]
Fix to a bug in integer mod lemmas.
Morgan Deters [Tue, 6 Nov 2012 20:24:46 +0000 (20:24 +0000)]
fix issue in compatibility layer that could segfault
Tim King [Mon, 5 Nov 2012 23:52:22 +0000 (23:52 +0000)]
Fix to the context dependent static learning code.
Morgan Deters [Mon, 5 Nov 2012 23:21:37 +0000 (23:21 +0000)]
fixes for replacement function library
Morgan Deters [Mon, 5 Nov 2012 22:53:04 +0000 (22:53 +0000)]
fixes for mac os
Morgan Deters [Mon, 5 Nov 2012 22:34:33 +0000 (22:34 +0000)]
fix for tarball building (fixes debian and distcheck problems in nightly builds)
Andrew Reynolds [Fri, 2 Nov 2012 20:54:11 +0000 (20:54 +0000)]
more minor updates to inst gen and representative selection, clean up of equality query
Andrew Reynolds [Wed, 31 Oct 2012 00:54:24 +0000 (00:54 +0000)]
cleaning up some of the equality query stuff, implemented a new representative selection strategy for quantifier instantiation
Dejan Jovanović [Tue, 30 Oct 2012 23:22:07 +0000 (23:22 +0000)]
delta of a model-building failure case
Andrew Reynolds [Mon, 29 Oct 2012 21:49:41 +0000 (21:49 +0000)]
more updates and minor bug fixes for fmf/inst-gen quantifier instantiation
Clark Barrett [Mon, 29 Oct 2012 18:25:48 +0000 (18:25 +0000)]
Tweak to options configuration for turning off minisat elimination when models are on
Clark Barrett [Mon, 29 Oct 2012 13:50:54 +0000 (13:50 +0000)]
Disable minisat elimination when models are on
Clark Barrett [Mon, 29 Oct 2012 13:50:34 +0000 (13:50 +0000)]
Disable some array optimizations when models are on
Clark Barrett [Mon, 29 Oct 2012 02:30:36 +0000 (02:30 +0000)]
auflia directory missing from regression summary - fixed
Morgan Deters [Fri, 26 Oct 2012 23:32:38 +0000 (23:32 +0000)]
Fix to subrange type enumerator, and its unit test. Resolves bug 436.
(this commit was certified error- and warning-free by the test-and-commit script.)
Andrew Reynolds [Fri, 26 Oct 2012 22:19:20 +0000 (22:19 +0000)]
bug fix for parametric datatypes, previously datatypes theory/rewriter was not recognizing parametric datatype types as being datatype types
Tim King [Fri, 26 Oct 2012 21:14:58 +0000 (21:14 +0000)]
Fix for bug 430. d_delta in PartialModel was never being computed. (Delta remained at its initial non-sensical value of -1.) There was a problem with guarding d_delta with d_deltaIsSafe in PartialModel.
Morgan Deters [Fri, 26 Oct 2012 20:49:57 +0000 (20:49 +0000)]
build options sources into distribution tarballs (in the same way that antlr grammars are pre-generated for tarballs). this speeds up user builds by not requiring them to run the mkoptions script (unless they change an options meta-file). i've tested this, but let me know if there are any problems you encounter.
Morgan Deters [Fri, 26 Oct 2012 20:31:30 +0000 (20:31 +0000)]
new boost.m4 makes boost-thread require boost-system. relax this dependence (since it doesn't appear to affect us?!), and make it non-fatal anyway, since threads aren't strictly required for all cvc4 builds. give a warning.
Morgan Deters [Fri, 26 Oct 2012 20:13:28 +0000 (20:13 +0000)]
better parametric datatype arity checking; fixes bug 433
Clark Barrett [Fri, 26 Oct 2012 19:54:06 +0000 (19:54 +0000)]
Fixed a failing datatype regression with check-models
ACSYS [Fri, 26 Oct 2012 18:15:32 +0000 (18:15 +0000)]
today's build system fix: sometimes examples weren't built with "make examples"; fixed
Andrew Reynolds [Fri, 26 Oct 2012 17:18:14 +0000 (17:18 +0000)]
fixed bug in datatypes decision procedure enforcing rewriting of incorrectly applied selector terms, this effects two regression test where TCC fails, using --disable-dt-rewrite-error-sel changes answer of both regression tests
Clark Barrett [Fri, 26 Oct 2012 02:37:38 +0000 (02:37 +0000)]
More bug fixes and more checks for models
ACSYS [Thu, 25 Oct 2012 19:56:39 +0000 (19:56 +0000)]
last build system fix for now: fix some typos affecting Mac
Morgan Deters [Thu, 25 Oct 2012 19:47:29 +0000 (19:47 +0000)]
extra quoting for special character
ACSYS [Thu, 25 Oct 2012 19:44:52 +0000 (19:44 +0000)]
more minor fixes to build system
Morgan Deters [Thu, 25 Oct 2012 16:26:24 +0000 (16:26 +0000)]
One of my changes to the build system yesterday broke the nightly build because:
1. The source tree was configured.
2. The builds directory was removed.
3. The source tree was re-configured.
Which led to a nasty dangling symlink that caused (3) to abort.
Fixed.
Andrew Reynolds [Wed, 24 Oct 2012 23:20:10 +0000 (23:20 +0000)]
fixed assertion failures in efficient e-matching
Morgan Deters [Wed, 24 Oct 2012 22:24:34 +0000 (22:24 +0000)]
Includes many fixes to build system for Solaris (thanks Tim!), and also
just in general, and some documentation adjustments.
Tim King [Wed, 24 Oct 2012 21:46:34 +0000 (21:46 +0000)]
Updated the ArithStaticLearner to be user context dependent.
Tim King [Wed, 24 Oct 2012 21:28:52 +0000 (21:28 +0000)]
Fix for systems that do not have the MAP_FILE macro defined.
Dejan Jovanović [Wed, 24 Oct 2012 19:41:33 +0000 (19:41 +0000)]
fix for bug 429
* not all asserted units were tracked in the user trail, moved the tracking into uncheckedEnqueue
Dejan Jovanović [Wed, 24 Oct 2012 19:14:01 +0000 (19:14 +0000)]
two smaller random pure LRA push-pop cases that fail
dejan@church:~/workspace/fuzz/problems$ ./check.sh arith_lra_01.smt2
z3: sat sat sat sat sat sat sat sat sat unsat sat sat sat sat sat unsat sat
cvc4: sat sat sat sat sat sat sat sat sat unsat sat sat sat sat sat unsat unsat
dejan@church:~/workspace/fuzz/problems$ ./check.sh arith_lra_02.smt2
z3: sat sat sat sat sat sat sat sat sat sat sat sat sat sat sat unsat unsat sat
cvc4: sat sat sat sat sat sat sat sat sat sat sat sat sat sat sat unsat unsat unsat
Andrew Reynolds [Wed, 24 Oct 2012 01:06:15 +0000 (01:06 +0000)]
efficient e-matching now specific to rewrite rules
Andrew Reynolds [Tue, 23 Oct 2012 23:40:29 +0000 (23:40 +0000)]
more major cleanup of quantifiers code, separating rewrite-rules-specific code from quantifiers-specific code
Andrew Reynolds [Tue, 23 Oct 2012 22:27:38 +0000 (22:27 +0000)]
fixed problem with datatypes giving incorrect explanations, now corrected and improved. this update fixes bug 428, also changes the result for 2 benchmarks where tcc in cvc3 fails (cvc4 had previously had been answering correctly by accident).
Clark Barrett [Tue, 23 Oct 2012 20:05:38 +0000 (20:05 +0000)]
More debugging info, small changes to model builder
Morgan Deters [Tue, 23 Oct 2012 20:04:18 +0000 (20:04 +0000)]
some fixes for "make examples" and "make install-examples" when invoked from tarballs (non-subversion-checkouts); should fix "INSTALL" failure we saw in last night's build email
Clark Barrett [Tue, 23 Oct 2012 20:02:56 +0000 (20:02 +0000)]
Added reads that were missing in collectModelInfo
Liana Hadarean [Tue, 23 Oct 2012 19:46:55 +0000 (19:46 +0000)]
fixed TheoryBV collectModel info to check for shared terms; this seems to fix bug424
Tim King [Tue, 23 Oct 2012 19:41:12 +0000 (19:41 +0000)]
The contrib/get-antlr-3.4 script:
- Has no outdated reference to /usr/share/java/stringtemplate.jar (as discussed on the mailing list).
- Attempts to determine if the computer is 64 or 32 bit and configure antlr appropriately.
- Warns the user about it's guess.
- Tells the user how to correct an incorrect guess.
Andrew Reynolds [Tue, 23 Oct 2012 15:28:24 +0000 (15:28 +0000)]
more updates to inst gen: fixed partial instantiations, recognize duplicate defaults for uf