ajreynol [Mon, 6 Mar 2017 16:18:17 +0000 (10:18 -0600)]
Do not eagerly construct explanations in relation solver.
ajreynol [Mon, 6 Mar 2017 15:39:03 +0000 (09:39 -0600)]
Support for set compliment and universe set. Simplify approach for sep.nil nodes.
Clark Barrett [Mon, 6 Mar 2017 08:25:26 +0000 (00:25 -0800)]
Adding support for bool-to-bv
Squashed commit of the following:
commit
5197a663eb262afbeb7740f53b5bd27479dccea0
Author: Clark Barrett <barrett@cs.stanford.edu>
Date: Mon Mar 6 00:16:16 2017 -0800
Remove IFF case
commit
2119b25a30ed42eca54f632e7232c9f76ae5755a
Author: guykatzz <katz911@gmail.com>
Date: Mon Feb 20 12:37:06 2017 -0800
proof support for bvcomp
commit
d8c0c0d2c9c92ce06a5033ec0f3f85ea7bda1a22
Author: Clark Barrett <barrett@cs.stanford.edu>
Date: Fri Feb 17 21:09:04 2017 -0800
Added missing cases to operator<< for bv rewrite rules.
commit
0ed797c31d0e66cadc35b2397716c841d1aff270
Author: Clark Barrett <barrett@cs.stanford.edu>
Date: Fri Feb 17 11:43:51 2017 -0800
Added rewrite rules for new bitvector kinds.
commit
3b23dffb317de5559f8a95118fef633f711c114a
Author: Clark Barrett <barrett@cs.stanford.edu>
Date: Mon Feb 13 14:41:49 2017 -0800
First draft of bool-to-bv pass.
ajreynol [Fri, 3 Mar 2017 22:17:24 +0000 (16:17 -0600)]
Fix for collectModelInfo related to finite types + preregistration. Generalize previous fix for sets, minor changes to Datatypes.
ajreynol [Fri, 3 Mar 2017 16:33:03 +0000 (10:33 -0600)]
Another minor fix for sets related to sharing + finite element types.
ajreynol [Thu, 2 Mar 2017 22:40:39 +0000 (16:40 -0600)]
Fixes related to sets.
ajreynol [Thu, 2 Mar 2017 21:24:07 +0000 (15:24 -0600)]
Minor cleanup and reorganization related to last commit.
ajreynol [Thu, 2 Mar 2017 20:45:21 +0000 (14:45 -0600)]
Eliminate Boolean term conversion. Generalizes removeITE pass to remove Boolean terms, treats distinguished BOOLEAN_TERM_VARIABLE kind as theory literal. Fixes bugs 597, 604, 651, 652, 691, 694. Add regressions.
ajreynol [Thu, 16 Feb 2017 22:19:51 +0000 (16:19 -0600)]
Minor fixes for relations, quantifiers dsplit.
ajreynol [Thu, 16 Feb 2017 19:26:10 +0000 (13:26 -0600)]
Fixes for sets+rels check. Minor.
ajreynol [Wed, 15 Feb 2017 17:26:56 +0000 (11:26 -0600)]
Minimization modes for fmf bound.
ajreynol [Tue, 7 Feb 2017 19:26:57 +0000 (13:26 -0600)]
Generalize finite bound inference to unifiable variables in set membership literals.
ajreynol [Mon, 30 Jan 2017 17:20:29 +0000 (11:20 -0600)]
Fix regexp cache issue in strings, add regression.
Andres Noetzli [Wed, 4 Jan 2017 17:20:34 +0000 (09:20 -0800)]
Fix non-idempotent rewrite in Array rewriter
This commit fixes bug 637 (
http://church.cims.nyu.edu/bugzilla3/show_bug.cgi?id=637 ) as
proposed in Bugzilla and adds the minified test case to the
regression tests.
Andrew Reynolds [Wed, 18 Jan 2017 19:32:55 +0000 (13:32 -0600)]
Merge pull request #128 from 4tXJ7f/fix_lfsc_perf
[LFSC] Fix performance issues, more determinism
ajreynol [Wed, 18 Jan 2017 18:39:24 +0000 (12:39 -0600)]
Minor fix in relations.
Andres Notzli [Tue, 10 Jan 2017 22:23:22 +0000 (01:23 +0300)]
[LFSC] Fix performance issues, more determinism
For certain proofs, the performance was drastically different on
different OSes. The cause for this difference was a pointer comparison
in the deduplication in `Expr::defeq()`. Depending on how the OS
allocated the memory, an expression `a` would get replaced with an
equivalent expression `b` or vice versa, which in turn affected
performance of `Expr::free_in()` dramatically (sub-second vs. >5 min
running times). This commit makes the process more deterministic by
using a heuristic that favors symbolic expressions and greedily tries to
make small refcounts smaller when replacing, and changes
`Expr::free_in()` to not repeatedly explore the same subexpressions.
Clark Barrett [Sat, 14 Jan 2017 05:23:42 +0000 (21:23 -0800)]
Fix call to SExpr constructor for greater portability.
Clark Barrett [Sat, 14 Jan 2017 04:18:16 +0000 (20:18 -0800)]
Merge pull request #130 from chadbrewbaker/master
Fixing memory leak
ajreynol [Fri, 13 Jan 2017 15:40:15 +0000 (09:40 -0600)]
Do not rewrite explanations in strings.
Clark Barrett [Wed, 11 Jan 2017 22:20:22 +0000 (14:20 -0800)]
Merge pull request #129 from timothy-king/regression-scrubber
Adding regression test scrubbing.
Clark Barrett [Wed, 11 Jan 2017 22:03:11 +0000 (14:03 -0800)]
Merge pull request #131 from makaimann/fix_702
Proposed fix for bug 702
makaimann [Wed, 11 Jan 2017 21:47:06 +0000 (13:47 -0800)]
Proposed fix for bug 702. Checks to make sure the Expr's operator is not of kind BUILTIN before passing to prefixPrintGetValue()
ajreynol [Wed, 11 Jan 2017 20:34:18 +0000 (14:34 -0600)]
Fix for when variables are (partially) bound in multiple ways, add regression. Improve printing for bound int module. Track when relations are enabled in sets, set incomplete if card+rels are both enabled since model construction is not guaranteed to succeed.
Clark Barrett [Wed, 11 Jan 2017 19:03:22 +0000 (11:03 -0800)]
Merge pull request #127 from cristian-mattarei/issue_679
Bug 679 fix
Chad Brewbaker [Wed, 11 Jan 2017 02:59:20 +0000 (20:59 -0600)]
revert
Chad Brewbaker [Wed, 11 Jan 2017 02:51:24 +0000 (20:51 -0600)]
Quashing memory leak
Tim King [Wed, 11 Jan 2017 01:51:14 +0000 (17:51 -0800)]
Adding regression test scrubbing.
Cristian Mattarei [Mon, 9 Jan 2017 03:00:09 +0000 (19:00 -0800)]
With reference to Bug 679, this commit integrates part of the patch proposed, and it fixes the correct float parsing of an std::istringstream.
The compilation issue in Bug 679 does not apply anymore with gcc6.3.1
Chad Brewbaker [Sat, 7 Jan 2017 04:56:07 +0000 (22:56 -0600)]
quashing debug memory leak
ajreynol [Fri, 6 Jan 2017 19:27:18 +0000 (13:27 -0600)]
Minor fix for sets.
Tim King [Thu, 5 Jan 2017 23:07:33 +0000 (15:07 -0800)]
Disabling a regression test that assumes CVC4 is configured with proofs on. Modifying the travis rules so there are instances with proofs disabled.
ajreynol [Wed, 4 Jan 2017 21:28:24 +0000 (15:28 -0600)]
Fix for tff type declarations inTPTP parser, fixes bug 748. Other minor changes.
Tim King [Wed, 4 Jan 2017 21:36:30 +0000 (13:36 -0800)]
Marking regression test files as non-executable.
Tim King [Wed, 4 Jan 2017 21:00:25 +0000 (13:00 -0800)]
Marking the proof signature files as non-executable.
Tim King [Wed, 4 Jan 2017 20:59:16 +0000 (12:59 -0800)]
Setting the executable bit for the newer run scripts in contrib.
Tim King [Wed, 4 Jan 2017 20:57:55 +0000 (12:57 -0800)]
Reverting two files encoding with DOS linebreaks back into using unix linebreaks.
Andrew Reynolds [Wed, 4 Jan 2017 18:21:52 +0000 (12:21 -0600)]
Merge pull request #122 from 4tXJ7f/fix_lfsc_str
[LFSC] Minor fixes/improvements
guykatzz [Wed, 4 Jan 2017 18:18:36 +0000 (10:18 -0800)]
Merge pull request #120 from 4tXJ7f/fix_f_pp_holes
Fix dependency tracing for fewerPreprocessingHoles
Andrew Reynolds [Wed, 4 Jan 2017 17:47:52 +0000 (11:47 -0600)]
Merge pull request #121 from 4tXJ7f/fix_lfsc_mem_leaks
[LFSC] Fix memory leaks when creating CExprs
Tim King [Thu, 29 Dec 2016 23:43:04 +0000 (15:43 -0800)]
Changing a set of TNodes to a set of Nodes in the BV inequality solver. The ref count of the TNodes in the set can become 0. Set operations containing garbage collected TNodes could then fail.
Tim King [Thu, 29 Dec 2016 22:42:59 +0000 (14:42 -0800)]
Eliminating a signed vs. unsigned comparison.
Tim King [Thu, 29 Dec 2016 22:36:36 +0000 (14:36 -0800)]
Changing getTearDownIncremental() to return the type of options::tearDownIncremental.
Tim King [Thu, 29 Dec 2016 22:36:00 +0000 (14:36 -0800)]
Adding a destructor to InstantiationNotify.
Tim King [Thu, 29 Dec 2016 22:35:02 +0000 (14:35 -0800)]
Adding a destructor to RepBoundExt.
Tim King [Thu, 29 Dec 2016 22:34:29 +0000 (14:34 -0800)]
Reordering sep and sets in Makefile.theories.
Andres Notzli [Thu, 22 Dec 2016 12:45:29 +0000 (04:45 -0800)]
[LFSC] Minor fixes/improvements
- Avoid mixing new/delete with malloc/free
- Remove reimplementation of strcmp
- Add assertions
Andres Notzli [Thu, 22 Dec 2016 04:03:29 +0000 (20:03 -0800)]
[LFSC] Fix memory leaks when creating CExprs
In certain cases, LFSC was creating CExprs with the single-argument
constructor, which allocates an array of one child, only to immediately
replace it with a new array (without deleting the old one).
Additionally, this commit fixes the construction of TYPE/KIND/MPZ/MPQ
expressions (the null pointer is appended automatically by the single
argument constructor, an array with two null pointer entries should not
be necessary).
Andres Notzli [Thu, 15 Dec 2016 05:20:17 +0000 (21:20 -0800)]
Fix dependency tracing for fewerPreprocessingHoles
Previously, dependency tracing in `ite_removal.cpp` was only done with
the `unsatCores` option but `fewerPreprocessingHoles` requires
dependencies, too. This lead to errors during proof construction when
`fewerPreprocessingHoles` was active. This commit fixes the condition
and includes a test case that previously failed. Additionally, it fixes
a similar issue in the theory engine.
NOTE: this commit might not fix all instances of this problem.
`smt_engine.cpp` turns certain flags off with `unsatCores`.
Compatibility between those flags and `fewerPreprocessingHoles` needs to
be checked separately.
Clark Barrett [Wed, 14 Dec 2016 21:45:54 +0000 (13:45 -0800)]
Merge pull request #119 from 4tXJ7f/smt_v2_5
Switch from SMT-LIB v2.0 to v2.5 for smt2 files
Andres Notzli [Wed, 14 Dec 2016 19:33:08 +0000 (11:33 -0800)]
Switch from SMT-LIB v2.0 to v2.5 for smt2 files
As mentioned in bug 741, CVC4 was parsing `.smt2` files using the
SMT-LIB v2.0 standard by default. This commit switches to v2.5.
Clark Barrett [Wed, 14 Dec 2016 19:12:58 +0000 (11:12 -0800)]
Made tear-down-incremental more like it used to be: when tear-down value
is 1, it does not automatically enable incremental mode.
Andrew Reynolds [Tue, 13 Dec 2016 21:20:58 +0000 (15:20 -0600)]
Merge pull request #118 from 4tXJ7f/fix_emp
Fix split-find-unsat-w-emp test
Clark Barrett [Mon, 12 Dec 2016 17:38:53 +0000 (09:38 -0800)]
Merge pull request #117 from 4tXJ7f/fix_order
Fix initialization order
Andres Notzli [Mon, 12 Dec 2016 09:55:36 +0000 (01:55 -0800)]
Fix split-find-unsat-w-emp test
Commit
2f2e9fcf1fbb27f8e799aeac2372c0a9113f01aa did not update the
split-find-unsat-w-emp test, this commit fixes that.
Clark Barrett [Mon, 12 Dec 2016 02:21:52 +0000 (18:21 -0800)]
Merge branch 'master' into fix_order
Clark Barrett [Mon, 12 Dec 2016 02:18:44 +0000 (18:18 -0800)]
Merge pull request #116 from 4tXJ7f/fix_mult
Fix (inactive) `MultSlice` rewrite
Tim King [Fri, 9 Dec 2016 22:28:23 +0000 (14:28 -0800)]
Fixing a use after free bug in Polynomial::denominatorLCM.
Andres Notzli [Thu, 8 Dec 2016 02:05:54 +0000 (18:05 -0800)]
Fix initialization order
This commit addresses the following warning:
```
warning: field 'd_negOne' will be initialized after field 'd_pivots'
[-Wreorder]
```
Andres Notzli [Thu, 8 Dec 2016 22:21:28 +0000 (14:21 -0800)]
Fix (inactive) `MultSlice` rewrite
The `MultSlice` rewrite was previously accepting multiplications of
three and more variables even though it was designed for multiplications
of two variables only. Fortunately, the rewrite was not actively used in
the bitvector solver. This commit strengthens the condition in
`applies()` and adds a unit test that checks that x * y * z and x * y do
not get rewritten to the same term.
ajreynol [Thu, 8 Dec 2016 18:45:59 +0000 (12:45 -0600)]
Enable remaining cardinality benchmarks
ajreynol [Thu, 8 Dec 2016 03:02:21 +0000 (21:02 -0600)]
Add missing regression
ajreynol [Wed, 7 Dec 2016 21:26:12 +0000 (15:26 -0600)]
Add sets regression, fixes bug 754. Minor fix to regexp in strings.
ajreynol [Wed, 7 Dec 2016 20:09:57 +0000 (14:09 -0600)]
Added cardinality to cvc language, fixes bug 753. Throw logic exception when using cardinality on sets with finite element type.
ajreynol [Wed, 7 Dec 2016 19:43:31 +0000 (13:43 -0600)]
Fix boolean term conversion for INST_ATTRIBUTE, fixes bug 764.
guykatzz [Wed, 7 Dec 2016 19:11:29 +0000 (11:11 -0800)]
Merge branch 'master' of https://github.com/CVC4/CVC4
guykatzz [Wed, 7 Dec 2016 19:11:11 +0000 (11:11 -0800)]
Turned off nonClausalSimplify when using fewerPreprocessingHoles.
It was turned off for unsatCores, and fewerPreprocessingHoles using the same infrastructure.
ajreynol [Wed, 7 Dec 2016 18:43:15 +0000 (12:43 -0600)]
Refactoring, generalization of bounded inference module. Simplification of rep set iterator. Disable quantifiers dynamic splitting for variables that are inferred bounded. Minor changes to fmc mbqi. Add regressions.
ajreynol [Wed, 7 Dec 2016 16:18:16 +0000 (10:18 -0600)]
Fix nf exp tracking for non-linear string equalities, fixes bug 768.
ajreynol [Tue, 6 Dec 2016 17:16:35 +0000 (11:16 -0600)]
Improve bounds for global heap in sep, refactor preprocessing. Minor improvement to sets.
Clark Barrett [Tue, 6 Dec 2016 00:07:07 +0000 (16:07 -0800)]
Added "dump=raw-benchmark" option for dumping all user commands exactly as received.
ajreynol [Sat, 3 Dec 2016 19:54:55 +0000 (13:54 -0600)]
Fix unit test for datatypes, add interface functions to datatypes.
Clark Barrett [Sat, 3 Dec 2016 00:25:26 +0000 (16:25 -0800)]
Fix for bug 734
Tim King [Fri, 2 Dec 2016 23:10:17 +0000 (15:10 -0800)]
Cleaning up Statistics::copyFrom to avoid casts.
Tim King [Fri, 2 Dec 2016 22:52:48 +0000 (14:52 -0800)]
Initializing the d_pivots variable.
Tim King [Fri, 2 Dec 2016 22:40:43 +0000 (14:40 -0800)]
Merge pull request #95 from 4tXJ7f/fix_sierra_build
Revert "Removing the CVC4_NEEDS_REPLACEMENT_FUNCTIONS guard to have a…
Clark Barrett [Fri, 2 Dec 2016 22:17:49 +0000 (14:17 -0800)]
Merge pull request #113 from 4tXJ7f/remove_extract_rule
Remove wrong `ExtractMultLeadingBit` rule
ajreynol [Fri, 2 Dec 2016 20:25:07 +0000 (14:25 -0600)]
Bug fixes and refactoring of parametric datatypes, add some regressions.
ajreynol [Fri, 2 Dec 2016 14:51:29 +0000 (08:51 -0600)]
Refactor preprocessing of models in fmf. Fix options --fmf-empty-sorts and --fmf-fun-rlv, fixes bug 723.
Andres Notzli [Fri, 14 Oct 2016 00:34:38 +0000 (17:34 -0700)]
Fix build on macOS Sierra
Before this fix, the build died with `ar: no archive members specified
when linking the empty libreplacements.la.` because macOS Sierra does
not require the replacements anymore. With this fix, `ffs.c` and
`strtok_r.c` are always getting compiled (even when they are empty) to
prevent the error. Also removed the unused
`CVC4_NEEDS_REPLACEMENT_FUNCTIONS` from `configure.ac` and added an
`#ifndef HAVE_FFS` to `ffs.c` for consistency with `strtok_r.c`.
ajreynol [Thu, 1 Dec 2016 17:37:44 +0000 (11:37 -0600)]
Fix quantifiers dynamic splitting module for incremental mode, fixes bug 765 and 763.
ajreynol [Thu, 1 Dec 2016 16:47:31 +0000 (10:47 -0600)]
Improvement and bug fix for str.indexof reduction, add regression. Other minor changes.
Andres Notzli [Wed, 30 Nov 2016 01:30:54 +0000 (17:30 -0800)]
Remove wrong `ExtractMultLeadingBit` rule
The rule `ExtractMultLeadingBit` estimated the number of leading zeros
wrong: when there were ones in the leading constant parts of the
factors, it was using the length of the non-zero part instead of the
length of the zero part. This commit includes an example for which the
previous version of the rule would cause a wrong answer.
Clark Barrett [Wed, 30 Nov 2016 23:31:50 +0000 (15:31 -0800)]
Merge pull request #115 from 4tXJ7f/bug766
Fix parsing of BVROTR by CVC parser
Clark Barrett [Wed, 30 Nov 2016 19:03:41 +0000 (11:03 -0800)]
Merge pull request #114 from 4tXJ7f/add_unit_test
Add unit test for `MultDistrib` rule
Andres Notzli [Wed, 30 Nov 2016 18:29:27 +0000 (10:29 -0800)]
Fix parsing of BVROTR by CVC parser
This commit fixes Bugzilla bug 766 as proposed by jacobly.alt@gmail.com.
Andres Notzli [Wed, 30 Nov 2016 17:03:36 +0000 (09:03 -0800)]
Add unit test for `MultDistrib` rule
This unit test checks that the issue fixed by commit
c0c424283c12cfce2874ea92188487d91acecdf3 has been resolved.
Clark Barrett [Mon, 28 Nov 2016 21:54:02 +0000 (13:54 -0800)]
Merge pull request #112 from 4tXJ7f/fix_mult_distrib
Fix `MultDistrib` rewrite rule
ajreynol [Tue, 22 Nov 2016 19:26:26 +0000 (13:26 -0600)]
Fix smt2 and cvc printers for testers when output and input languages are different.
Tim King [Tue, 22 Nov 2016 07:25:25 +0000 (23:25 -0800)]
Merge pull request #111 from 4tXJ7f/fix_test_includes
Remove unused, libstdc++-exclusive include
Andres Notzli [Tue, 22 Nov 2016 02:07:45 +0000 (18:07 -0800)]
Fix `MultDistrib` rewrite rule
The assertion in the `MultDistrib` rule would fail when doing:
```
Node expr = d_nm->mkNode(BITVECTOR_MULT, mkNode(BITVECTOR_SUB, x, y), z);
if (RewriteRule<MultDistrib>::applies(expr))
RewriteRule<MultDistrib>::apply(expr);
```
When checking which side to distribute over, the code only checked for
`BITVECTOR_PLUS` instead of `BITVECTOR_PLUS` or `BITVECTOR_SUB` in
contrast to the other conditions in
`RewriteRule<MultDistrib>::applies()` and the assert.
NOTE: I was only able to reproduce this issue when testing the rewrite
rule in isolation. The rule `SubEliminate` generally seems to turn the
`BITVECTOR_SUB` node into a `BITVECTOR_PLUS` node before the rewriter
tries `MultDistrib`.
Andres Notzli [Tue, 22 Nov 2016 01:17:05 +0000 (17:17 -0800)]
Remove unused, libstdc++-exclusive include
The file `ext/stdio_filebuf.h` does not seem to be available in libc++,
which made compilation of the unit tests for macOS unnecessarily
complicated given that it is not used anyway.
ajreynol [Mon, 21 Nov 2016 15:52:52 +0000 (09:52 -0600)]
Refactoring related to track instantiation option.
Clark Barrett [Fri, 18 Nov 2016 23:28:47 +0000 (15:28 -0800)]
Fix for unit test after changing default "all supported" logic name.
Tim King [Fri, 18 Nov 2016 23:17:31 +0000 (15:17 -0800)]
Removing some throw specifiers from OutputChannel. Fixes bug 716.
Clark Barrett [Fri, 18 Nov 2016 23:20:00 +0000 (15:20 -0800)]
Merge pull request #110 from 4tXJ7f/fix_makefiles
Fix Makefiles in test
Clark Barrett [Fri, 18 Nov 2016 23:09:07 +0000 (15:09 -0800)]
Modified a couple of regressoins to use ALL/QF_ALL instead of ALL_SUPPORTED/QF_ALL_SUPPORTED
Clark Barrett [Fri, 18 Nov 2016 23:01:59 +0000 (15:01 -0800)]
Add support for set-logic ALL, fix compiler error in GCC 6.1
Andres Notzli [Fri, 18 Nov 2016 02:24:47 +0000 (18:24 -0800)]
Fix Makefiles in test
With the recent changes to the regress tests, some of the Makefiles were
not in sync anymore. This commit fixes that.
Clark Barrett [Wed, 16 Nov 2016 23:54:48 +0000 (15:54 -0800)]
Merge pull request #108 from timothy-king/smt2-parser-exception-leaks
Adding garbage collection for the Smt2 Parser for Commands when excep…