cvc5.git
7 years agofix uninitialized variable
Andres Notzli [Tue, 14 Mar 2017 18:32:26 +0000 (11:32 -0700)]
fix uninitialized variable

7 years agoMerge pull request #132 from 4tXJ7f/fix_mingw64
Clark Barrett [Tue, 14 Mar 2017 17:40:26 +0000 (10:40 -0700)]
Merge pull request #132 from 4tXJ7f/fix_mingw64

Fix MinGW-w64 build

7 years agoMinor fix for cbqi-all.
ajreynol [Fri, 10 Mar 2017 22:36:10 +0000 (16:36 -0600)]
Minor fix for cbqi-all.

7 years agobug fix
guykatzz [Thu, 9 Mar 2017 22:46:33 +0000 (14:46 -0800)]
bug fix

7 years agobetter proof support for bools and formulas
guykatzz [Thu, 9 Mar 2017 20:13:12 +0000 (12:13 -0800)]
better proof support for bools and formulas

7 years agoFix MinGW-w64 build
Andres Notzli [Wed, 8 Mar 2017 10:50:56 +0000 (02:50 -0800)]
Fix MinGW-w64 build

This commit fixes configure.ac to try to get clock_gettime() from
pthread. Without it, clock_gettime() is detected as missing at
configuration time for MinGW-w64 but exists at compile time, which
causes conflicts. Additionally, this commit updates the helper script
for Windows to use MinGW-w64 by default instead of MinGW.

7 years agoMore fixes for printing/parsing sets, fix kind name.
ajreynol [Tue, 7 Mar 2017 17:17:34 +0000 (11:17 -0600)]
More fixes for printing/parsing sets, fix kind name.

7 years agoFix cvc parser for set compliment.
ajreynol [Tue, 7 Mar 2017 15:11:33 +0000 (09:11 -0600)]
Fix cvc parser for set compliment.

7 years agoDo not eagerly construct explanations in relation solver.
ajreynol [Mon, 6 Mar 2017 16:18:17 +0000 (10:18 -0600)]
Do not eagerly construct explanations in relation solver.

7 years agoSupport for set compliment and universe set. Simplify approach for sep.nil nodes.
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.

7 years agoAdding support for bool-to-bv
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.

7 years agoFix for collectModelInfo related to finite types + preregistration. Generalize previo...
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.

7 years agoAnother minor fix for sets related to sharing + finite element types.
ajreynol [Fri, 3 Mar 2017 16:33:03 +0000 (10:33 -0600)]
Another minor fix for sets related to sharing + finite element types.

7 years agoFixes related to sets.
ajreynol [Thu, 2 Mar 2017 22:40:39 +0000 (16:40 -0600)]
Fixes related to sets.

7 years agoMinor cleanup and reorganization related to last commit.
ajreynol [Thu, 2 Mar 2017 21:24:07 +0000 (15:24 -0600)]
Minor cleanup and reorganization related to last commit.

7 years agoEliminate Boolean term conversion. Generalizes removeITE pass to remove Boolean terms...
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.

7 years agoMinor fixes for relations, quantifiers dsplit.
ajreynol [Thu, 16 Feb 2017 22:19:51 +0000 (16:19 -0600)]
Minor fixes for relations, quantifiers dsplit.

7 years agoFixes for sets+rels check. Minor.
ajreynol [Thu, 16 Feb 2017 19:26:10 +0000 (13:26 -0600)]
Fixes for sets+rels check. Minor.

7 years agoMinimization modes for fmf bound.
ajreynol [Wed, 15 Feb 2017 17:26:56 +0000 (11:26 -0600)]
Minimization modes for fmf bound.

7 years agoGeneralize finite bound inference to unifiable variables in set membership literals.
ajreynol [Tue, 7 Feb 2017 19:26:57 +0000 (13:26 -0600)]
Generalize finite bound inference to unifiable variables in set membership literals.

7 years agoFix regexp cache issue in strings, add regression.
ajreynol [Mon, 30 Jan 2017 17:20:29 +0000 (11:20 -0600)]
Fix regexp cache issue in strings, add regression.

7 years agoFix non-idempotent rewrite in Array rewriter
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.

7 years agoMerge pull request #128 from 4tXJ7f/fix_lfsc_perf
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

7 years agoMinor fix in relations.
ajreynol [Wed, 18 Jan 2017 18:39:24 +0000 (12:39 -0600)]
Minor fix in relations.

7 years ago[LFSC] Fix performance issues, more determinism
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.

7 years agoFix call to SExpr constructor for greater portability.
Clark Barrett [Sat, 14 Jan 2017 05:23:42 +0000 (21:23 -0800)]
Fix call to SExpr constructor for greater portability.

7 years agoMerge pull request #130 from chadbrewbaker/master
Clark Barrett [Sat, 14 Jan 2017 04:18:16 +0000 (20:18 -0800)]
Merge pull request #130 from chadbrewbaker/master

Fixing memory leak

7 years agoDo not rewrite explanations in strings.
ajreynol [Fri, 13 Jan 2017 15:40:15 +0000 (09:40 -0600)]
Do not rewrite explanations in strings.

7 years agoMerge pull request #129 from timothy-king/regression-scrubber
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.

7 years agoMerge pull request #131 from makaimann/fix_702
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

7 years agoProposed fix for bug 702. Checks to make sure the Expr's operator is not of kind...
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()

7 years agoFix for when variables are (partially) bound in multiple ways, add regression. Improv...
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.

7 years agoMerge pull request #127 from cristian-mattarei/issue_679
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

7 years agorevert
Chad Brewbaker [Wed, 11 Jan 2017 02:59:20 +0000 (20:59 -0600)]
revert

7 years agoQuashing memory leak
Chad Brewbaker [Wed, 11 Jan 2017 02:51:24 +0000 (20:51 -0600)]
Quashing memory leak

7 years agoAdding regression test scrubbing.
Tim King [Wed, 11 Jan 2017 01:51:14 +0000 (17:51 -0800)]
Adding regression test scrubbing.

7 years agoWith reference to Bug 679, this commit integrates part of the patch proposed, and...
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

7 years agoquashing debug memory leak
Chad Brewbaker [Sat, 7 Jan 2017 04:56:07 +0000 (22:56 -0600)]
quashing debug memory leak

7 years agoMinor fix for sets.
ajreynol [Fri, 6 Jan 2017 19:27:18 +0000 (13:27 -0600)]
Minor fix for sets.

7 years agoDisabling a regression test that assumes CVC4 is configured with proofs on. Modifying...
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.

7 years agoFix for tff type declarations inTPTP parser, fixes bug 748. Other minor changes.
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.

7 years agoMarking regression test files as non-executable.
Tim King [Wed, 4 Jan 2017 21:36:30 +0000 (13:36 -0800)]
Marking regression test files as non-executable.

7 years agoMarking the proof signature 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.

7 years agoSetting the executable bit for the newer run scripts in contrib.
Tim King [Wed, 4 Jan 2017 20:59:16 +0000 (12:59 -0800)]
Setting the executable bit for the newer run scripts in contrib.

7 years agoReverting two files encoding with DOS linebreaks back into using unix linebreaks.
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.

7 years agoMerge pull request #122 from 4tXJ7f/fix_lfsc_str
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

7 years agoMerge pull request #120 from 4tXJ7f/fix_f_pp_holes
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

7 years agoMerge pull request #121 from 4tXJ7f/fix_lfsc_mem_leaks
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

7 years agoChanging a set of TNodes to a set of Nodes in the BV inequality solver. The ref count...
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.

7 years agoEliminating a signed vs. unsigned comparison.
Tim King [Thu, 29 Dec 2016 22:42:59 +0000 (14:42 -0800)]
Eliminating a signed vs. unsigned comparison.

7 years agoChanging getTearDownIncremental() to return the type of options::tearDownIncremental.
Tim King [Thu, 29 Dec 2016 22:36:36 +0000 (14:36 -0800)]
Changing getTearDownIncremental() to return the type of options::tearDownIncremental.

7 years agoAdding a destructor to InstantiationNotify.
Tim King [Thu, 29 Dec 2016 22:36:00 +0000 (14:36 -0800)]
Adding a destructor to InstantiationNotify.

7 years agoAdding a destructor to RepBoundExt.
Tim King [Thu, 29 Dec 2016 22:35:02 +0000 (14:35 -0800)]
Adding a destructor to RepBoundExt.

7 years agoReordering sep and sets in Makefile.theories.
Tim King [Thu, 29 Dec 2016 22:34:29 +0000 (14:34 -0800)]
Reordering sep and sets in Makefile.theories.

7 years ago[LFSC] Minor fixes/improvements
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

7 years ago[LFSC] Fix memory leaks when creating CExprs
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).

7 years agoFix dependency tracing for fewerPreprocessingHoles
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.

7 years agoMerge pull request #119 from 4tXJ7f/smt_v2_5
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

7 years agoSwitch 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.

7 years agoMade tear-down-incremental more like it used to be: when tear-down value
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.

7 years agoMerge pull request #118 from 4tXJ7f/fix_emp
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

7 years agoMerge pull request #117 from 4tXJ7f/fix_order
Clark Barrett [Mon, 12 Dec 2016 17:38:53 +0000 (09:38 -0800)]
Merge pull request #117 from 4tXJ7f/fix_order

Fix initialization order

7 years agoFix split-find-unsat-w-emp test
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.

7 years agoMerge branch 'master' into fix_order
Clark Barrett [Mon, 12 Dec 2016 02:21:52 +0000 (18:21 -0800)]
Merge branch 'master' into fix_order

7 years agoMerge pull request #116 from 4tXJ7f/fix_mult
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

7 years agoFixing a use after free bug in Polynomial::denominatorLCM.
Tim King [Fri, 9 Dec 2016 22:28:23 +0000 (14:28 -0800)]
Fixing a use after free bug in Polynomial::denominatorLCM.

7 years agoFix initialization order
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]
```

7 years agoFix (inactive) `MultSlice` rewrite
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.

7 years agoEnable remaining cardinality benchmarks
ajreynol [Thu, 8 Dec 2016 18:45:59 +0000 (12:45 -0600)]
Enable remaining cardinality benchmarks

7 years agoAdd missing regression
ajreynol [Thu, 8 Dec 2016 03:02:21 +0000 (21:02 -0600)]
Add missing regression

7 years agoAdd sets regression, fixes bug 754. Minor fix to regexp in strings.
ajreynol [Wed, 7 Dec 2016 21:26:12 +0000 (15:26 -0600)]
Add sets regression, fixes bug 754.  Minor fix to regexp in strings.

7 years agoAdded cardinality to cvc language, fixes bug 753. Throw logic exception when using...
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.

7 years agoFix boolean term conversion for INST_ATTRIBUTE, fixes bug 764.
ajreynol [Wed, 7 Dec 2016 19:43:31 +0000 (13:43 -0600)]
Fix boolean term conversion for INST_ATTRIBUTE, fixes bug 764.

7 years agoMerge branch 'master' of https://github.com/CVC4/CVC4
guykatzz [Wed, 7 Dec 2016 19:11:29 +0000 (11:11 -0800)]
Merge branch 'master' of https://github.com/CVC4/CVC4

7 years agoTurned off nonClausalSimplify when using fewerPreprocessingHoles.
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.

7 years agoRefactoring, generalization of bounded inference module. Simplification of rep set...
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.

7 years agoFix nf exp tracking for non-linear string equalities, fixes bug 768.
ajreynol [Wed, 7 Dec 2016 16:18:16 +0000 (10:18 -0600)]
Fix nf exp tracking for non-linear string equalities, fixes bug 768.

7 years agoImprove bounds for global heap in sep, refactor preprocessing. Minor improvement...
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.

7 years agoAdded "dump=raw-benchmark" option for dumping all user commands exactly as received.
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.

7 years agoFix unit test for datatypes, add interface functions to datatypes.
ajreynol [Sat, 3 Dec 2016 19:54:55 +0000 (13:54 -0600)]
Fix unit test for datatypes, add interface functions to datatypes.

7 years agoFix for bug 734
Clark Barrett [Sat, 3 Dec 2016 00:25:26 +0000 (16:25 -0800)]
Fix for bug 734

7 years agoCleaning up Statistics::copyFrom to avoid casts.
Tim King [Fri, 2 Dec 2016 23:10:17 +0000 (15:10 -0800)]
Cleaning up Statistics::copyFrom to avoid casts.

7 years agoInitializing the d_pivots variable.
Tim King [Fri, 2 Dec 2016 22:52:48 +0000 (14:52 -0800)]
Initializing the d_pivots variable.

7 years agoMerge pull request #95 from 4tXJ7f/fix_sierra_build
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…

7 years agoMerge pull request #113 from 4tXJ7f/remove_extract_rule
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

7 years agoBug fixes and refactoring of parametric datatypes, add some regressions.
ajreynol [Fri, 2 Dec 2016 20:25:07 +0000 (14:25 -0600)]
Bug fixes and refactoring of parametric datatypes, add some regressions.

7 years agoRefactor preprocessing of models in fmf. Fix options --fmf-empty-sorts and --fmf...
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.

7 years agoFix build on macOS Sierra
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`.

7 years agoFix quantifiers dynamic splitting module for incremental mode, fixes bug 765 and...
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.

7 years agoImprovement and bug fix for str.indexof reduction, add regression. Other minor changes.
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.

7 years agoRemove wrong `ExtractMultLeadingBit` rule
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.

7 years agoMerge pull request #115 from 4tXJ7f/bug766
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

7 years agoMerge pull request #114 from 4tXJ7f/add_unit_test
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

7 years agoFix parsing of BVROTR by CVC parser
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.

7 years agoAdd unit test for `MultDistrib` rule
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.

7 years agoMerge pull request #112 from 4tXJ7f/fix_mult_distrib
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

8 years agoFix smt2 and cvc printers for testers when output and input languages are different.
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.

8 years agoMerge pull request #111 from 4tXJ7f/fix_test_includes
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

8 years agoFix `MultDistrib` rewrite rule
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`.

8 years agoRemove unused, libstdc++-exclusive include
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.