Andres Nötzli [Fri, 16 Jun 2017 18:16:04 +0000 (11:16 -0700)]
Fix segfault by making unit conflict CDMaybe
This commit fixes bug 819 by making d_unitConflictId context dependent and adds a test case.
Clark Barrett [Fri, 16 Jun 2017 00:11:22 +0000 (17:11 -0700)]
Fix for bug 639.
Andres Noetzli [Thu, 15 Jun 2017 21:11:29 +0000 (14:11 -0700)]
Make comp script more robust
In certain cases, the trace executor inserts empty lines, which threw off
our competition script. This commit adds code to ignores empty lines.
ajreynol [Thu, 15 Jun 2017 17:47:43 +0000 (12:47 -0500)]
Fix for issue related to cbqi + E-matching.
ajreynol [Thu, 15 Jun 2017 16:34:15 +0000 (11:34 -0500)]
Add regression.
ajreynol [Thu, 15 Jun 2017 15:49:51 +0000 (10:49 -0500)]
Fix relevant domain for datatypes, fixes bug 824.
ajreynol [Thu, 15 Jun 2017 15:31:58 +0000 (10:31 -0500)]
Ensure uninterpreted constants do not escape datatypes, fixes bug 823. Fix cbqi for datatypes with uninterpreted sort subfields. Simplify fmc model construction.
Clark Barrett [Thu, 15 Jun 2017 02:56:56 +0000 (19:56 -0700)]
Merge pull request #167 from CVC4/fix_div
Remove UdivSelf rewrite, add UdivZero rewrite
Andres Noetzli [Wed, 14 Jun 2017 22:53:51 +0000 (15:53 -0700)]
Remove UdivSelf rewrite, add UdivZero rewrite
This fixes bug 820. The issue was that (a udiv a) got rewriten to 1, which is
not correct when a is 0 (the result is all ones in that case). Even with the
--bv-div-zero-const flag disabled, the UdivSelf rewrite was incorrect because
it was applied to BITVECTOR_UDIV_TOTAL, which is "defined to be the all-ones
bit pattern, if divisor is 0" according to src/theory/bv/kinds . The commit
adds instead an optimization that returns all ones if the divisor of a
BITVECTOR_UDIV_TOTAL is zero.
Clark Barrett [Sun, 4 Jun 2017 05:19:01 +0000 (22:19 -0700)]
Fix compile error
ajreynol [Sat, 3 Jun 2017 18:27:52 +0000 (13:27 -0500)]
Minor to smt comp script.
ajreynol [Fri, 2 Jun 2017 20:58:02 +0000 (15:58 -0500)]
Fix regression.
ajreynol [Fri, 2 Jun 2017 20:54:14 +0000 (15:54 -0500)]
Incorporate datatypes into smt comp script, add regression.
ajreynol [Thu, 1 Jun 2017 17:38:33 +0000 (12:38 -0500)]
Minor optimizations related to cbqi.
ajreynol [Wed, 31 May 2017 20:51:35 +0000 (15:51 -0500)]
Fix model construction for BV with cbqi. Minor change to defaults.
guykatzz [Wed, 31 May 2017 18:36:05 +0000 (11:36 -0700)]
A more informative error message when a theory is not yet supported by the proof infrastructure (e.g., quantifiers)
ajreynol [Wed, 31 May 2017 18:08:20 +0000 (13:08 -0500)]
Minor fix to last commit.
ajreynol [Wed, 31 May 2017 18:06:35 +0000 (13:06 -0500)]
Change to-int, div, int-div skolems from CDAttribute to stored in CDHashMap. Minor changes to smt comp script.
ajreynol [Wed, 31 May 2017 16:11:02 +0000 (11:11 -0500)]
Minor change to defaults, update smt comp script, minor changes to options in regressions.
guykatzz [Tue, 30 May 2017 16:25:54 +0000 (09:25 -0700)]
print only labeled assertions as part of the unsat core
added the option dump-unsat-cores-full for printing the entire core, as before
Clark Barrett [Sun, 28 May 2017 02:47:34 +0000 (19:47 -0700)]
Merge pull request #164 from CVC4/fix_comp
[Competition] Fix ABC, fix CryptoMiniSat req
Andres Noetzli [Sat, 27 May 2017 21:33:58 +0000 (14:33 -0700)]
[Competition] Fix ABC, fix CryptoMiniSat req
This commit fixes two issues that caused the competition configuration to fail on the cluster machines:
We used an ancient version of ABC that declared a function (factorial()
luckySimple.c) in a source file as inline but not static. This issue was fixed
in the following commit:
https://bitbucket.org/alanmi/abc/commits/
e0aa7af0d73538fb786c4dcc72745578f0068a38
The issue with non-static inline functions in source files is described in the
following Stackoverflow post:
https://stackoverflow.com/questions/
16740515/simple-c-inline-linker-error
This commit updates ABC to a much newer version (commit tagged as
abc20160717),
which fixes the issue. One of the modifications previously performed by
contrib/get-abc does not need to be necessary anymore.
CryptoMiniSat was always linked against m4ri, even though it was not getting
compiled with it (-DNOM4RI="ON" in contrib/get-cryptominisat4). This commit
removes the part of config/cryptominisat.m4 that explicitly sets the libraries
linked to and instead uses the result of CVC4_TRY_CRYPTOMINISAT_WITH (which
seems to work even though there is comment indicating otherwise). Further, it
adds -pthread to the libraries required by CryptoMiniSat because it is required
by the version of CryptoMiniSat that we use (a newer version supports disabling
that behavior, so it might be a good idea to update). Previously, this would
lead to linker errors.
Tested with the following configuration:
./configure competition --with-antlr-dir=`pwd`/antlr-3.4 ANTLR=`pwd`/antlr-3.4/bin/antlr3 --enable-static-binary --enable-gpl --with-cln --with-glpk --with-glpk-dir=`pwd`/glpk-cut-log --with-abc --with-abc-dir=`pwd`/abc/alanmi-abc-
53f39c11b58d --disable-thread-support --without-readline --disable-shared --with-cryptominisat --with-cryptominisat-dir=`pwd`/cryptominisat4
Tim King [Fri, 26 May 2017 21:51:27 +0000 (14:51 -0700)]
Checking that equalities belong to the arithmetic theory in the solve() routine.
Andres Noetzli [Wed, 24 May 2017 20:28:58 +0000 (13:28 -0700)]
Fix use-after-free with ResChains
This commit fixes an issue where the ResChain in `d_resolutionChains` gets
deleted here:
https://github.com/CVC4/CVC4/blob/master/src/proof/sat_proof_implementation.h#L729
The condition immediately after is false because the condition on line 727 is
true. Thus, `d_resolutionChains` now has a deleted entry for `id`.
When CVC4 afterwards gets the ResChain associated with `id` in
`checkResolution()`, it accesses the deleted entry:
https://github.com/CVC4/CVC4/blob/master/src/proof/sat_proof_implementation.h#L303
ajreynol [Thu, 25 May 2017 17:44:35 +0000 (12:44 -0500)]
Quote unsat core names if applicable, fixes bug 816.
ajreynol [Mon, 22 May 2017 16:00:10 +0000 (11:00 -0500)]
Initial draft of 2017 competition scripts.
ajreynol [Sat, 20 May 2017 12:52:00 +0000 (07:52 -0500)]
Fix bug 812.
Clark Barrett [Wed, 17 May 2017 23:16:04 +0000 (16:16 -0700)]
Merge pull request #155 from makaimann/conditional_coverage
Conditional coverage
Clark Barrett [Tue, 16 May 2017 22:23:41 +0000 (15:23 -0700)]
Merge pull request #161 from 4tXJ7f/fix_parser
Avoid tokenizing FP tokens in non-FP input
Clark Barrett [Tue, 16 May 2017 22:10:42 +0000 (15:10 -0700)]
Merge pull request #160 from 4tXJ7f/fix_win_build
Fix error in Windows build
Andres Noetzli [Tue, 16 May 2017 18:33:38 +0000 (11:33 -0700)]
Avoid tokenizing FP tokens in non-FP input
This commit addresses bug 807. CVC4 was parsing floating-point related tokens
such as NaN as floating-point tokens even for inputs that do not use the FP
theory, which lead to failing SMT-LIB benchmarks that declare functions named
NaN.
Andres Noetzli [Tue, 16 May 2017 18:08:30 +0000 (11:08 -0700)]
Fix error in Windows build
The Windows build was missing the `print_statistics()` function, this commit
moves the function out of the `#ifndef __WIN32__` guard.
Andrew Reynolds [Tue, 16 May 2017 00:12:08 +0000 (19:12 -0500)]
Merge pull request #156 from 4tXJ7f/fix_safe_print
Minor fix in safe_print function
Andres Noetzli [Mon, 15 May 2017 15:39:16 +0000 (08:39 -0700)]
Minor fix in safe_print function
This commit fixes two issues reported by Coverity:
- Fixes the check whether the buffer is full in safe_print_hex
- Removes dead code in safe_print for floating-point values
Additionally, it fixes an issue reported by Andy where the names of the
statistics were printed as "<unsupported>" due to calling the const char*
version instead of the std::string version of safe_print.
Finally, this fixes an issue where --segv-spin would not print the program name
because it was a const char*. The program name is now stored as a string.
NOTE: As a side effect, the last part also fixes Coverity issue
1362944, which
has been in CVC4 for a long time.
ajreynol [Mon, 15 May 2017 21:43:50 +0000 (16:43 -0500)]
Cleanup handling of division (possible fix for bugs 803, 804, 805).
Andrew Reynolds [Mon, 15 May 2017 18:10:56 +0000 (13:10 -0500)]
Merge pull request #159 from 4tXJ7f/fix_set_types
Fix type checks for relation operators
Andres Noetzli [Mon, 15 May 2017 17:09:45 +0000 (10:09 -0700)]
Fix type checks for relation operators
This commit fixes an assertion error when applying transpose or transitive
closure to a set instead of a relation. Instead it now prints a parse error.
Andrew Reynolds [Mon, 15 May 2017 16:56:43 +0000 (11:56 -0500)]
Merge pull request #158 from 4tXJ7f/fix_sets_rewriter
Fix minor bug in sets rewriter
Andres Noetzli [Mon, 15 May 2017 16:50:45 +0000 (09:50 -0700)]
Fix minor bug in sets rewriter
As reported by Coverity, one of the switches in the sets rewriter had a missing
break. This could lead to an assertion failure when rewriting the cardinality
of a transpose as in the test case included in this commit.
ajreynol [Mon, 15 May 2017 16:44:15 +0000 (11:44 -0500)]
Fix bug 806. Minor fixes to remove term formula pass.
Andrew Reynolds [Mon, 15 May 2017 15:56:22 +0000 (10:56 -0500)]
Merge pull request #157 from 4tXJ7f/fix_iterator
Fix condition in upwards closure check for sets
Andres Noetzli [Mon, 15 May 2017 15:50:21 +0000 (08:50 -0700)]
Fix condition in upwards closure check for sets
Coverity reported this mismatched iterator.
ajreynol [Mon, 15 May 2017 14:48:07 +0000 (09:48 -0500)]
Fix issue in ceg_instantiator related to types and theoryOf, fixes bug 802.
ajreynol [Mon, 15 May 2017 14:07:21 +0000 (09:07 -0500)]
Make conflict-based instantiation abort if a ground conflict is found in the master equality engine during term indexing, fixes bug 801.
Clark Barrett [Sun, 14 May 2017 03:02:24 +0000 (20:02 -0700)]
Merge pull request #154 from 4tXJ7f/fix_test
Fix out-of-bounds access in test
Andres Notzli [Sat, 13 May 2017 23:09:58 +0000 (16:09 -0700)]
Fix out-of-bounds access in test
makaimann [Fri, 12 May 2017 20:09:13 +0000 (13:09 -0700)]
Adding VPATH back in
makaimann [Fri, 12 May 2017 19:47:16 +0000 (12:47 -0700)]
Conditional coverage build
Andres Notzli [Fri, 31 Mar 2017 21:27:05 +0000 (14:27 -0700)]
Make signal handlers safer
As reported in bug 769, the signal handlers currently use unsafe
functions such as dynamic memory allocations and fprintf. This commit
fixes the issue by introducing functions for printing statistics in
signal handlers (functions with the `safe` prefix). It also avoids
copying statistics, which further avoids dynamic memory allocation. The
safe printing of statistics has some limitations (it does not support
SExprStats or printing CVC4::Result), which should not matter much in
practice. Printing statistics in a non-signal handler is not affected by
these changes as that uses a separate code path (the functions without
the `safe` prefix).
Additional changes:
- Remove ListStat as it is not used anywhere
- Add unit test for safe printing statistics
ajreynol [Wed, 10 May 2017 15:35:38 +0000 (10:35 -0500)]
Do not split on cardinality for string equivalence classes with non-constant lengths if disequalities already imply sufficient lower bound. Fixes bug 799.
ajreynol [Tue, 9 May 2017 22:16:06 +0000 (17:16 -0500)]
Change str.replace for empty string.
ajreynol [Fri, 5 May 2017 22:41:18 +0000 (17:41 -0500)]
Do not eliminate extended arithmetic symbols when finite model finding is on, add regression.
ajreynol [Fri, 5 May 2017 14:35:12 +0000 (09:35 -0500)]
Fix error message.
guykatzz [Thu, 4 May 2017 20:51:36 +0000 (13:51 -0700)]
skolemization manager may be called also when just unsatCores are on (related to bug 717)
guykatzz [Thu, 4 May 2017 18:24:41 +0000 (11:24 -0700)]
fixing bug 790: track dependencies when the unsatCores() option is on
Clark Barrett [Fri, 28 Apr 2017 22:00:01 +0000 (15:00 -0700)]
Partial fix for bug 717.
ajreynol [Fri, 28 Apr 2017 20:52:17 +0000 (15:52 -0500)]
Minor fixes
ajreynol [Fri, 28 Apr 2017 20:48:13 +0000 (15:48 -0500)]
Fix bug for real division.
ajreynol [Fri, 28 Apr 2017 16:46:53 +0000 (11:46 -0500)]
Do not eliminate non-standard arithmetic operators in recursive function definitions, add regression.
ajreynol [Mon, 24 Apr 2017 21:56:23 +0000 (16:56 -0500)]
Fixes and simplifications for fmf mbqi.
ajreynol [Mon, 24 Apr 2017 15:14:19 +0000 (10:14 -0500)]
Fix parsing selectors for nullary constructors in smtlib 2.6 format.
Andrew Reynolds [Mon, 24 Apr 2017 01:07:54 +0000 (20:07 -0500)]
Merge pull request #152 from timothy-king/delta-rational-value-cases-second-submission
Updating TheoryArithPrivate::getDeltaValue() to eagerly use the parti…
Tim King [Sun, 23 Apr 2017 20:05:10 +0000 (13:05 -0700)]
Changing spaces to tabs in Makefile.
Tim King [Thu, 13 Apr 2017 07:21:30 +0000 (00:21 -0700)]
Updating TheoryArithPrivate::getDeltaValue() to eagerly use the partial model value if exists.
Clark Barrett [Sat, 22 Apr 2017 04:45:23 +0000 (21:45 -0700)]
Merge pull request #151 from 4tXJ7f/fix_debug
Move assertion out of loop for better performance
Clark Barrett [Sat, 22 Apr 2017 04:39:53 +0000 (21:39 -0700)]
Disabled bug639.smt2 which still fails.
Clark Barrett [Fri, 21 Apr 2017 23:01:34 +0000 (16:01 -0700)]
Add test cases for bugs 639 and 681.
Clark Barrett [Fri, 21 Apr 2017 22:09:33 +0000 (15:09 -0700)]
Fix for bug 681 (now gives reasonable error message about using constant
arrays).
Andres Noetzli [Fri, 21 Apr 2017 21:39:56 +0000 (14:39 -0700)]
Move assertion out of loop for better performance
This is related to bug 508. The debug build was taking much longer than the
production build to compute the result. The issue was an assertion in a loop in
nonClausalSimplify(). By moving the assertion outside of the loop, the debug
build is now roughly an order of magnitude slower than the production build
(instead of two orders of magnitude), which seems to be roughly in line with
the difference for other benchmarks:
Debug version before change:
- Bug (minified version): 1065.6s
- regress3/friedman_n6_i4.smt: 6.9s
- regress2/uflia-error0.smt2: 6.3s
- regress2/fuzz_2.smt: 2.3s
Debug version after change:
- Bug (minified version): 131.4s
- regress3/friedman_n6_i4.smt: 6.7s
- regress2/uflia-error0.smt2: 6.2s
- regress2/fuzz_2.smt: 1.9s
Production version:
- Bug (minified version): 18.8s
- regress3/friedman_n6_i4.smt: 0.8s
- regress2/uflia-error0.smt2: 0.8s
- regress2/fuzz_2.smt: 0.2s
Clark Barrett [Fri, 21 Apr 2017 16:43:50 +0000 (09:43 -0700)]
Merge pull request #150 from 4tXJ7f/check_exceptions2
Add check for C++ exceptions to config script
ajreynol [Fri, 21 Apr 2017 14:33:26 +0000 (09:33 -0500)]
Fix new relations regressions to use sets-ext.
ajreynol [Fri, 21 Apr 2017 14:26:04 +0000 (09:26 -0500)]
Handle subtypes in sets. Bug fixes for tuples with subtypes.
Andres Notzli [Wed, 19 Apr 2017 15:46:59 +0000 (08:46 -0700)]
Add check for C++ exceptions to config script
Bug 687 was caused by the configuration not properly supporting C++
exceptions. To avoid such an incidence in the future, this commit adds a
simple check to `configure.ac` (when not cross compiling).
Andrew Reynolds [Thu, 20 Apr 2017 22:08:08 +0000 (17:08 -0500)]
Merge pull request #149 from PaulMeng/master
Support for relational operators identity and join image
ajreynol [Thu, 20 Apr 2017 19:19:51 +0000 (14:19 -0500)]
Minor fixes.
Paul Meng [Thu, 20 Apr 2017 19:04:24 +0000 (14:04 -0500)]
Support for relational operators identity and join image
ajreynol [Wed, 19 Apr 2017 21:29:01 +0000 (16:29 -0500)]
Fix mktheoryrewriter and mktheorytraits for nullaryoperator.
ajreynol [Wed, 19 Apr 2017 21:16:35 +0000 (16:16 -0500)]
Fixes for handling set universe: restrict upwards rule for universe to memberships into variable sets, do not variable eliminate sets during ppAssert.
Clark Barrett [Wed, 19 Apr 2017 03:30:42 +0000 (20:30 -0700)]
Merge pull request #147 from makaimann/coverage_fix
Coverage fix
Clark Barrett [Tue, 18 Apr 2017 23:57:40 +0000 (16:57 -0700)]
Fix for bug 639.
makaimann [Tue, 18 Apr 2017 15:49:17 +0000 (08:49 -0700)]
Coverage fix
Forcing some make variables to be absolute paths
lcov does not (officially) support relative paths
src/expr and src/options in particular were breaking it
ajreynol [Fri, 14 Apr 2017 22:25:18 +0000 (17:25 -0500)]
Actively split for upwards closusure intersection. Minor clean up, add regressions.
ajreynol [Fri, 14 Apr 2017 22:03:44 +0000 (17:03 -0500)]
Fix bug related to portfolio with nullary operators.
ajreynol [Fri, 14 Apr 2017 21:34:59 +0000 (16:34 -0500)]
Fix nullary operator printers, minor.
ajreynol [Fri, 14 Apr 2017 16:06:45 +0000 (11:06 -0500)]
Fix for fmf-fun when the option is set by user command.
Clark Barrett [Thu, 13 Apr 2017 18:57:19 +0000 (11:57 -0700)]
Fix for some compilers
ajreynol [Wed, 12 Apr 2017 21:47:12 +0000 (16:47 -0500)]
Add nullary operator metakind.
ajreynol [Tue, 11 Apr 2017 16:14:42 +0000 (11:14 -0500)]
Bug fix in conjecture generation for --quant-ind.
ajreynol [Fri, 7 Apr 2017 16:22:44 +0000 (11:22 -0500)]
Change option names for nl.
Clark Barrett [Thu, 6 Apr 2017 06:32:12 +0000 (23:32 -0700)]
Merge pull request #143 from FabianWolff/master
Fix several spelling errors
ajreynol [Wed, 5 Apr 2017 18:32:35 +0000 (13:32 -0500)]
Fix bug 698.
ajreynol [Wed, 5 Apr 2017 18:19:21 +0000 (13:19 -0500)]
Fixes for nlAlgSolveSubs.
Andrew Reynolds [Wed, 5 Apr 2017 18:15:31 +0000 (13:15 -0500)]
Merge pull request #145 from 4tXJ7f/fix_lfsc_args
[LFSC] Fix segfault
ajreynol [Wed, 5 Apr 2017 14:56:00 +0000 (09:56 -0500)]
Caching for fun def process, add regression.
Andres Notzli [Sun, 26 Mar 2017 21:39:07 +0000 (23:39 +0200)]
[LFSC] Fix segfault
LFSC did not detect when the number of arguments provided to a side
condition did not match the expected number of arguments, which could
lead to out-of-bounds reads and writes. This commit adds a check and
fixes one of the proof rules that provided the wrong number of
arguments.
ajreynol [Wed, 5 Apr 2017 14:09:55 +0000 (09:09 -0500)]
Remove extraneous portion of an nl regression.
ajreynol [Wed, 5 Apr 2017 14:01:55 +0000 (09:01 -0500)]
Add non-linear regressions, disable nlAlgSubs, do not do rep checking for NONLINEAR_MULT terms. Ensure shared terms have correct model values in non-linear solver.
Fabian Wolff [Tue, 4 Apr 2017 22:47:10 +0000 (00:47 +0200)]
Fix several spelling errors
ajreynol [Tue, 4 Apr 2017 17:54:26 +0000 (12:54 -0500)]
Enable multi-trigger-linear by default, add option.
ajreynol [Tue, 4 Apr 2017 16:21:30 +0000 (11:21 -0500)]
Simplify Theory::collectModelInfo interface to not take deprecated fullModel argument.