cvc5.git
7 years agoMerge ntExt branch. Adds support for transcendental functions. Refactoring of non...
ajreynol [Mon, 10 Jul 2017 21:22:19 +0000 (16:22 -0500)]
Merge ntExt branch. Adds support for transcendental functions. Refactoring of non-linear extension. Add factoring lemma scheme for non-linear. Add regressions.

7 years agoSeparate sygus term utilities to new file, minor cleanup from last commit.
ajreynol [Mon, 10 Jul 2017 19:35:47 +0000 (14:35 -0500)]
Separate sygus term utilities to new file, minor cleanup from last commit.

7 years agoMerge datatype shared selectors/sygus comp 2017 branch. Modify the datatypes decision...
ajreynol [Mon, 10 Jul 2017 19:06:52 +0000 (14:06 -0500)]
Merge datatype shared selectors/sygus comp 2017 branch. Modify the datatypes decision procedure to share selectors of the same type across multiple constructors. Major rewrite of the SyGuS solver. Adds several new strategies for I/O example problems (PBE) and invariant synthesis. Major simplifications to sygus parsing and synthesis conjecture representation. Do not support check-synth in portfolio. Add sygus regressions.

7 years agoPrerelease versioning for master.
Mathias Preiner [Mon, 10 Jul 2017 18:44:36 +0000 (11:44 -0700)]
Prerelease versioning for master.

7 years agoCutting release 1.5.
Mathias Preiner [Mon, 10 Jul 2017 17:26:01 +0000 (10:26 -0700)]
Cutting release 1.5.

7 years agoDisable tarball signing for now.
Mathias Preiner [Sat, 8 Jul 2017 00:43:07 +0000 (17:43 -0700)]
Disable tarball signing for now.

7 years agoMerge branch 'master' of github.com:CVC4/CVC4
Mathias Preiner [Sat, 8 Jul 2017 00:11:07 +0000 (17:11 -0700)]
Merge branch 'master' of github.com:CVC4/CVC4

7 years agoUpdate copyright year and refer to authors URL.
Mathias Preiner [Fri, 7 Jul 2017 23:38:42 +0000 (16:38 -0700)]
Update copyright year and refer to authors URL.

7 years agoRemove unused stacking_vector class (#185)
Andres Noetzli [Fri, 7 Jul 2017 22:25:04 +0000 (15:25 -0700)]
Remove unused stacking_vector class (#185)

7 years agoAvoid invoking copy constructor when safe printing (#184)
Andres Noetzli [Fri, 7 Jul 2017 22:21:12 +0000 (15:21 -0700)]
Avoid invoking copy constructor when safe printing (#184)

When CVC4 gets interrupted, we use async-signal safe printing functions
to print statistics. Unfortunately, the code for that was invoking copy
constructors, which is problematic due to memory allocation; for example
with statistics such as ReferenceStat<std::string>. This commit adds a
getDataRef() method for statistics that returns a const reference to the
object being printed such that the copy constructor is not called. Note:
modifying getData() was unfortunately not an option because in the case
of TimerStat, we can't return a reference to an object on the stack. We
could remove the const modifier on getData() and use d_data to store the
information but then we would have to remove it on
safeFlushInformation() and potentially other methods as well, which
seems like a worse solution.

7 years agoUpdate copyright headers.
Mathias Preiner [Fri, 7 Jul 2017 21:57:36 +0000 (14:57 -0700)]
Update copyright headers.

7 years agoUpdate files that are part of the CVC4 license, exclude minisat files.
Mathias Preiner [Fri, 7 Jul 2017 21:56:20 +0000 (14:56 -0700)]
Update files that are part of the CVC4 license, exclude minisat files.

7 years agoUse consistent author names for the copyright headers.
Mathias Preiner [Fri, 7 Jul 2017 21:45:27 +0000 (14:45 -0700)]
Use consistent author names for the copyright headers.

7 years agoUse new copyright header format.
Mathias Preiner [Fri, 7 Jul 2017 18:54:58 +0000 (11:54 -0700)]
Use new copyright header format.

7 years agoEscape left brace in regex in update-copyright script.
Mathias Preiner [Fri, 7 Jul 2017 16:40:08 +0000 (09:40 -0700)]
Escape left brace in regex in update-copyright script.

7 years agoFix passing antlr arguments to configure in contrib/cut-release
Mathias Preiner [Thu, 6 Jul 2017 23:24:41 +0000 (16:24 -0700)]
Fix passing antlr arguments to configure in contrib/cut-release

Also fixes passing of makeargs.

7 years agocut-release: git co -> git checkout
Aina Niemetz [Thu, 6 Jul 2017 22:43:06 +0000 (15:43 -0700)]
cut-release: git co -> git checkout

7 years agocut-release: option handling, get-antlr
Aina Niemetz [Thu, 6 Jul 2017 21:30:52 +0000 (14:30 -0700)]
cut-release: option handling, get-antlr

+ easier-to-maintain option handling
+ new option for compiling release with local antlr

7 years agoFix for logic info, update regressions. Update casc tfa script.
ajreynol [Wed, 5 Jul 2017 21:55:20 +0000 (16:55 -0500)]
Fix for logic info, update regressions. Update casc tfa script.

7 years agoupdated INSTALL for version 1.5
Mathias Preiner [Wed, 5 Jul 2017 21:26:06 +0000 (14:26 -0700)]
updated INSTALL for version 1.5

7 years agoUpdate unit test, news.
ajreynol [Wed, 5 Jul 2017 21:07:04 +0000 (16:07 -0500)]
Update unit test, news.

7 years agoNon-linear supported in ALL logics. Minor fixes for set logic with sygus.
ajreynol [Wed, 5 Jul 2017 20:01:23 +0000 (15:01 -0500)]
Non-linear supported in ALL logics. Minor fixes for set logic with sygus.

7 years agoUpdate README for 1.5 release (#182)
Andres Nötzli [Tue, 4 Jul 2017 05:56:10 +0000 (22:56 -0700)]
Update README for 1.5 release (#182)

7 years agoUpdates to AUTHORS and THANKS for 1.5 (mostly done by Tim).
Clark Barrett [Fri, 30 Jun 2017 22:20:38 +0000 (15:20 -0700)]
Updates to AUTHORS and THANKS for 1.5 (mostly done by Tim).

7 years agoUpdated NEWS, README, RELEASE-NOTES.
Clark Barrett [Fri, 30 Jun 2017 21:30:45 +0000 (14:30 -0700)]
Updated NEWS, README, RELEASE-NOTES.

7 years agoFix use-after-free with unsat cores/proofs (#174)
Andres Nötzli [Fri, 30 Jun 2017 18:39:17 +0000 (11:39 -0700)]
Fix use-after-free with unsat cores/proofs (#174)

In TSatProof<Solver>::finalizeProof(), we got a clause from the clause
allocator, called resolveUnit() and then size() on the clause. The problem is
that resolveUnit() can reallocate memory (and there is even a comment warning
about that in finalizeProof()), which invalidates the clause. This commit gets
the clause again from the clause allocator before calling size().

7 years agoMinor change to trigger selection, fixes related to subtypes (in macros, cbqi, tptp...
ajreynol [Fri, 30 Jun 2017 14:02:51 +0000 (09:02 -0500)]
Minor change to trigger selection, fixes related to subtypes (in macros, cbqi, tptp parser), fix full saturation instantiation to not loop in rare case, update regressions, update casc scripts.

7 years agoEnable non-linear solve by default, update regressions.
ajreynol [Wed, 28 Jun 2017 18:37:18 +0000 (13:37 -0500)]
Enable non-linear solve by default, update regressions.

7 years agoFix assertion failure due to missing clause id (#180)
Andres Nötzli [Fri, 23 Jun 2017 06:56:45 +0000 (23:56 -0700)]
Fix assertion failure due to missing clause id (#180)

This commit fixes bug 821. As written in the description of the bug, the issue
is that `id` is not being set on one of the paths in addClause(), specifically
in the case where all but one literal are assigned false and the remaining
literal is assigned true. In that case, we are not actually adding anything and
set the `id` to `ClauseIdUndef`.

7 years agoFix unsat cores script for SMT-COMP (#179)
Andres Nötzli [Thu, 22 Jun 2017 00:17:36 +0000 (17:17 -0700)]
Fix unsat cores script for SMT-COMP (#179)

7 years agoMerge pull request #175 from CVC4/fix_uninit
Andrew Reynolds [Wed, 21 Jun 2017 20:50:04 +0000 (15:50 -0500)]
Merge pull request #175 from CVC4/fix_uninit

Fix uninitialized value

7 years agoProperly handle subtypes in smt2 printer.
ajreynol [Wed, 21 Jun 2017 19:21:45 +0000 (14:21 -0500)]
Properly handle subtypes in smt2 printer.

7 years agoAdd run script for unsat cores track at SMT-COMP (#177)
Andres Nötzli [Wed, 21 Jun 2017 16:25:11 +0000 (09:25 -0700)]
Add run script for unsat cores track at SMT-COMP (#177)

Note: this was a last minute effort, so we do not use the portfolio build for
this track. This part for example:

https://github.com/CVC4/CVC4/blob/d43e5fb294d89ba69f7d2607a12c8700b7ec9345/src/main/command_executor_portfolio.cpp#L351-L355

Would have to change before we can enable use the portfolio build for unsat
cores in a competition build.

7 years agoMerge pull request #176 from CVC4/smtcomp2017
Andrew Reynolds [Wed, 21 Jun 2017 16:15:06 +0000 (11:15 -0500)]
Merge pull request #176 from CVC4/smtcomp2017

Better configuration for QF_NRA

7 years agoUpdate casc and sygus comp scripts.
ajreynol [Wed, 21 Jun 2017 15:24:11 +0000 (10:24 -0500)]
Update casc and sygus comp scripts.

7 years agoCheck for sigaltstack in configure (#172)
Clément Pit-Claudel [Wed, 21 Jun 2017 14:35:36 +0000 (10:35 -0400)]
Check for sigaltstack in configure (#172)

7 years agoFix SIGILL handler
Andres Noetzli [Tue, 20 Jun 2017 19:50:40 +0000 (12:50 -0700)]
Fix SIGILL handler

As pointed out by @cpitclaudel in pull request #172, we are using the same
handler for SIGSEGV and SIGILL and ill_handler() is unused. This commit changes
the SIGILL handler to ill_handler().

7 years agoBetter configuration for QF_NRA
Andres Noetzli [Mon, 19 Jun 2017 06:51:27 +0000 (23:51 -0700)]
Better configuration for QF_NRA

7 years agoFix assertion
ajreynol [Sun, 18 Jun 2017 14:09:16 +0000 (09:09 -0500)]
Fix assertion

7 years agoMinor change to ensureTheoryAtoms for bug 828.
ajreynol [Sun, 18 Jun 2017 13:54:36 +0000 (08:54 -0500)]
Minor change to ensureTheoryAtoms for bug 828.

7 years agoChange language in competition script to smt2.6 (#171)
Andres Nötzli [Sat, 17 Jun 2017 03:07:17 +0000 (20:07 -0700)]
Change language in competition script to smt2.6 (#171)

* Change language in competition script to smt2.6

The benchmark scrambler for the application track cuts out
the :smt-lib-version command, so this commit sets it
manually to 2.6 (all benchmarks in SMT-COMP use the 2.6
standard) instead of 2.0. I have not seen any failures due
to that but might as well be prudent.

* Change language in competition script to smt2.6

The benchmark scrambler (at least for the application
track) cuts out the :smt-lib-version command, so this
commit sets it manually to 2.6 (all benchmarks in SMT-COMP
use the 2.6 standard) instead of 2.0. I have not seen any
failures due to that but might as well be prudent.

7 years agoFix stream parsing
Andres Nötzli [Sat, 17 Jun 2017 00:42:22 +0000 (17:42 -0700)]
Fix stream parsing

This commit fixes bug 811. Bug 811 was caused because tokens were referring to
a buffer that was reallocated and thus the pointers were not valid anymore.

Background:
The buffered input stream avoids copying the whole input stream before handing
it to ANTLR (in contrast to the non-buffered input stream that first copies
everything into a buffer). This enables interactivity (e.g. with kind2) and may
save memory.
CVC4 uses it when reading from stdin in competition mode for the application
track (the incremental benchmarks) and in non-competition mode. To set the
CVC4_SMTCOMP_APPLICATION_TRACK flag, the {C,CXX}FLAGS have to be modified at
configure time.

Solution:
This commit fixes the issue by changing how a stream gets buffered. Instead of
storing the stream into a single buffer, CVC4 now stores each line in a
separate buffer, making sure that they do not have to move, keeping tokens
valid. The commit adds the LineBuffer class for managing those buffers. It
further modifies CVC4's LA and consume functions to use line number and
position within a line to index into the line buffer. This allows us to use the
standard mark()/etc. functions because they automatically store and
restore that state. The solution also (arguably) simplifies the code.

Disadvantages:
Tokens split across lines would cause problems (seems reasonable to me). One
allocation per line.

Alternatives considered:
Pull request 162 by Tim was a first attempt to solve the problem. The issues
with this solution are: memory usage (old versions of the buffer do not get
deleted), tokens split across buffers would be problematic, and
mark()/rewind()/etc. would have to be overwritten for the approach to work.
I had a partially working fix that used indexes into the stream instead of
pointers to memory. The solution stored the content of the stream into a
segmented buffer (lines were not guaranteed to be consecutive in memory. This
approach was working for basic use cases but had the following issues: ugly
casting (the solution requires casting the index to a pointer and storing it in
the input stream's nextChar because that's where ANTLR is taking the location
information from when creating a token), more modifications (not only would
this solution require overwriting more functions of the input stream such as
substr, it also requires changes to the use of GETCHARINDEX() in the Smt2
parser and AntlrInput::tokenText() for example), more complex code.

7 years agoMerge pull request #170 from CVC4/fix_2_6_parser3
Clark Barrett [Fri, 16 Jun 2017 19:46:47 +0000 (12:46 -0700)]
Merge pull request #170 from CVC4/fix_2_6_parser3

Parse 'is', 'match' differently for non-DT input

7 years agoFix segfault by making unit conflict CDMaybe
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.

7 years agoParse 'is', 'match' differently for non-DT input
Andres Noetzli [Fri, 16 Jun 2017 15:47:35 +0000 (08:47 -0700)]
Parse 'is', 'match' differently for non-DT input

In SMT 2.6, Datatypes are being introduced and they come
with testers (indexed identifier of the form (_ is c)) and
match expressions. This lead to failures in UFIDL
benchmarks in SMT-LIB because they declare the function
'is'. This commit changes the parser s.t. it does not
consider 'is' and 'match' special tokens unless the theory
of datatypes is enabled.

7 years agoFix for bug 639.
Clark Barrett [Fri, 16 Jun 2017 00:11:22 +0000 (17:11 -0700)]
Fix for bug 639.

7 years agoMake comp script more robust
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.

7 years agoFix for issue related to cbqi + E-matching.
ajreynol [Thu, 15 Jun 2017 17:47:43 +0000 (12:47 -0500)]
Fix for issue related to cbqi + E-matching.

7 years agoAdd regression.
ajreynol [Thu, 15 Jun 2017 16:34:15 +0000 (11:34 -0500)]
Add regression.

7 years agoFix relevant domain for datatypes, fixes bug 824.
ajreynol [Thu, 15 Jun 2017 15:49:51 +0000 (10:49 -0500)]
Fix relevant domain for datatypes, fixes bug 824.

7 years agoEnsure uninterpreted constants do not escape datatypes, fixes bug 823. Fix cbqi for...
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.

7 years agoMerge pull request #167 from CVC4/fix_div
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

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

7 years agoFix uninitialized value
Andres Noetzli [Wed, 14 Jun 2017 09:40:17 +0000 (02:40 -0700)]
Fix uninitialized value

7 years agoFix compile error
Clark Barrett [Sun, 4 Jun 2017 05:19:01 +0000 (22:19 -0700)]
Fix compile error

7 years agoMinor to smt comp script.
ajreynol [Sat, 3 Jun 2017 18:27:52 +0000 (13:27 -0500)]
Minor to smt comp script.

7 years agoFix regression.
ajreynol [Fri, 2 Jun 2017 20:58:02 +0000 (15:58 -0500)]
Fix regression.

7 years agoIncorporate datatypes into smt comp script, add regression.
ajreynol [Fri, 2 Jun 2017 20:54:14 +0000 (15:54 -0500)]
Incorporate datatypes into smt comp script, add regression.

7 years agoMinor optimizations related to cbqi.
ajreynol [Thu, 1 Jun 2017 17:38:33 +0000 (12:38 -0500)]
Minor optimizations related to cbqi.

7 years agoFix model construction for BV with cbqi. Minor change to defaults.
ajreynol [Wed, 31 May 2017 20:51:35 +0000 (15:51 -0500)]
Fix model construction for BV with cbqi. Minor change to defaults.

7 years agoA more informative error message when a theory is not yet supported by the proof...
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)

7 years agoMinor fix to last commit.
ajreynol [Wed, 31 May 2017 18:08:20 +0000 (13:08 -0500)]
Minor fix to last commit.

7 years agoChange to-int, div, int-div skolems from CDAttribute to stored in CDHashMap. Minor...
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.

7 years agoMinor change to defaults, update smt comp script, minor changes to options in regress...
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.

7 years agoprint only labeled assertions as part of the unsat core
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

7 years agoMerge pull request #164 from CVC4/fix_comp
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

7 years ago[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

7 years agoChecking that equalities belong to the arithmetic theory in the solve() routine.
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.

7 years agoFix use-after-free with ResChains
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

7 years agoQuote unsat core names if applicable, fixes bug 816.
ajreynol [Thu, 25 May 2017 17:44:35 +0000 (12:44 -0500)]
Quote unsat core names if applicable, fixes bug 816.

7 years agoInitial draft of 2017 competition scripts.
ajreynol [Mon, 22 May 2017 16:00:10 +0000 (11:00 -0500)]
Initial draft of 2017 competition scripts.

7 years agoFix bug 812.
ajreynol [Sat, 20 May 2017 12:52:00 +0000 (07:52 -0500)]
Fix bug 812.

7 years agoMerge pull request #155 from makaimann/conditional_coverage
Clark Barrett [Wed, 17 May 2017 23:16:04 +0000 (16:16 -0700)]
Merge pull request #155 from makaimann/conditional_coverage

Conditional coverage

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

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

7 years agoAvoid tokenizing FP tokens in non-FP input
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.

7 years agoFix error in Windows build
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.

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

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

7 years agoCleanup handling of division (possible fix for bugs 803, 804, 805).
ajreynol [Mon, 15 May 2017 21:43:50 +0000 (16:43 -0500)]
Cleanup handling of division (possible fix for bugs 803, 804, 805).

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

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

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

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

7 years agoFix bug 806. Minor fixes to remove term formula pass.
ajreynol [Mon, 15 May 2017 16:44:15 +0000 (11:44 -0500)]
Fix bug 806. Minor fixes to remove term formula pass.

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

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

7 years agoFix issue in ceg_instantiator related to types and theoryOf, fixes bug 802.
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.

7 years agoMake conflict-based instantiation abort if a ground conflict is found in the master...
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.

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

7 years agoFix 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

7 years agoAdding VPATH back in
makaimann [Fri, 12 May 2017 20:09:13 +0000 (13:09 -0700)]
Adding VPATH back in

7 years agoConditional coverage build
makaimann [Fri, 12 May 2017 19:47:16 +0000 (12:47 -0700)]
Conditional coverage build

7 years agoMake signal handlers safer
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

7 years agoDo not split on cardinality for string equivalence classes with non-constant lengths...
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.

7 years agoChange str.replace for empty string.
ajreynol [Tue, 9 May 2017 22:16:06 +0000 (17:16 -0500)]
Change str.replace for empty string.

7 years agoDo not eliminate extended arithmetic symbols when finite model finding is on, add...
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.

7 years agoFix error message.
ajreynol [Fri, 5 May 2017 14:35:12 +0000 (09:35 -0500)]
Fix error message.

7 years agoskolemization manager may be called also when just unsatCores are on (related to...
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)

7 years agofixing bug 790: track dependencies when the unsatCores() option is on
guykatzz [Thu, 4 May 2017 18:24:41 +0000 (11:24 -0700)]
fixing bug 790: track dependencies when the unsatCores() option is on