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.
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…
PaulMeng [Wed, 16 Nov 2016 19:22:02 +0000 (13:22 -0600)]
Merge pull request #109 from PaulMeng/master
relational solver code refactor and bug fixes
Paul Meng [Tue, 15 Nov 2016 02:09:07 +0000 (20:09 -0600)]
relational solver code refactor and bug fixes
ajreynol [Mon, 14 Nov 2016 21:42:15 +0000 (15:42 -0600)]
Minor improvement to caching for extf bv inferences.
Tim King [Mon, 14 Nov 2016 04:34:10 +0000 (20:34 -0800)]
Adding garbage collection for the Smt2 Parser for Commands when exceptions are thrown.
Tim King [Sun, 13 Nov 2016 09:05:26 +0000 (01:05 -0800)]
Switching a large allocation to be heap allocated.
Tim King [Sun, 13 Nov 2016 08:33:40 +0000 (00:33 -0800)]
Deleting a parsed Command in the interactive_shell_black test.
Clark Barrett [Sat, 12 Nov 2016 23:27:13 +0000 (15:27 -0800)]
Merge pull request #107 from timothy-king/smt1-parser-exception-leaks
Adding garbage collection for the Smt1 Parser for Commands when…
Clark Barrett [Sat, 12 Nov 2016 23:25:42 +0000 (15:25 -0800)]
Merge pull request #106 from timothy-king/cvc-parser-exception-leaks
Adding garbage collection for the CVC Parser for Commands when except…
Clark Barrett [Sat, 12 Nov 2016 17:16:33 +0000 (09:16 -0800)]
Fixed a bug in cdhashmap in which doubly-linked list was not properly cleaned up on a call to obliterate.
Also, removed some experimental code and a unit test from cdmap_black that used it. This test created a CDList *in* context memory which seems like a very bad idea (and
it was improperly implemented resulting in a memory leak).
Tim King [Sat, 12 Nov 2016 08:05:36 +0000 (00:05 -0800)]
Adding garbage collection for the Smt1 Parser for Commands when exceptions are thrown.
Tim King [Sat, 12 Nov 2016 06:13:22 +0000 (22:13 -0800)]
Adding garbage collection for the CVC Parser for Commands when exceptions are thrown.
Tim King [Sat, 12 Nov 2016 00:44:19 +0000 (16:44 -0800)]
Merge pull request #105 from timothy-king/delete-maxed-out
Adding garbage collection of nodes with maxed out reference counts.
Tim King [Sat, 12 Nov 2016 00:25:05 +0000 (16:25 -0800)]
Deleting successfully parsed commands in the parser_black unit test.
Tim King [Sat, 12 Nov 2016 00:04:51 +0000 (16:04 -0800)]
Deleting the remaining commands in the Parser's queue within ~Parser().
Tim King [Fri, 11 Nov 2016 23:46:29 +0000 (15:46 -0800)]
Applying clang-format to parser.cpp.
Tim King [Fri, 11 Nov 2016 22:46:30 +0000 (14:46 -0800)]
Speeding up the common branches for inc().
Clark Barrett [Fri, 11 Nov 2016 22:41:51 +0000 (14:41 -0800)]
Enable eager bitblasting for QF_ABV when no stores are present.
ajreynol [Fri, 11 Nov 2016 18:59:13 +0000 (12:59 -0600)]
Add simple inferences for extended bitvector functions, add a few related options. Use bv2nat, int2bv as triggers. Add regressions.
Tim King [Thu, 10 Nov 2016 23:56:19 +0000 (15:56 -0800)]
Fixing a delete vs free mismatch in parser_builder_black.h.
Tim King [Thu, 10 Nov 2016 23:22:49 +0000 (15:22 -0800)]
Adding garbage collection of nodes with maxed out reference counts.
Tim King [Thu, 10 Nov 2016 17:40:23 +0000 (09:40 -0800)]
Added PtrCloser guards for constructNodePtr. This ensures garbage collection on type checking exceptions.
ajreynol [Thu, 10 Nov 2016 14:55:14 +0000 (08:55 -0600)]
Add option for enabling/disabling lazy extended function reduction in bitvectors.
Tim King [Thu, 10 Nov 2016 01:04:02 +0000 (17:04 -0800)]
Merge pull request #103 from timothy-king/uniq-ptr
Adds a C++05 version of unique_ptr. Used this to solve a garbage coll…
Tim King [Wed, 9 Nov 2016 22:09:25 +0000 (14:09 -0800)]
Renaming the class PtrCloser to not cause confusion with unique_ptr.
Tim King [Wed, 9 Nov 2016 21:46:43 +0000 (13:46 -0800)]
Merge branch 'master' into uniq-ptr
ajreynol [Wed, 9 Nov 2016 19:01:20 +0000 (13:01 -0600)]
Fix tptp parser memory leaks for include.
ajreynol [Tue, 8 Nov 2016 16:35:46 +0000 (10:35 -0600)]
Minor fixes related to ExtTheory + incremental, fixes bug760.
ajreynol [Tue, 8 Nov 2016 16:09:53 +0000 (10:09 -0600)]
Add a few options to separation logic and sets. Minor changes to separation logic, change syntax for empty heap constraint.
Tim King [Tue, 8 Nov 2016 00:04:57 +0000 (16:04 -0800)]
Merge pull request #104 from timothy-king/disabling-out-of-memory-tests-on-asan
Disabling out of memory tests unit tests when ASAN is enabled. ASAN f…