summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-07-07Use new copyright header format.Mathias Preiner
2017-07-05Fix for logic info, update regressions. Update casc tfa script.ajreynol
2017-07-05Non-linear supported in ALL logics. Minor fixes for set logic with sygus.ajreynol
2017-06-30Fix use-after-free with unsat cores/proofs (#174)Andres Nötzli
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().
2017-06-30Minor change to trigger selection, fixes related to subtypes (in macros, ↵ajreynol
cbqi, tptp parser), fix full saturation instantiation to not loop in rare case, update regressions, update casc scripts.
2017-06-28Enable non-linear solve by default, update regressions.ajreynol
2017-06-22Fix assertion failure due to missing clause id (#180)Andres Nötzli
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`.
2017-06-21Merge pull request #175 from CVC4/fix_uninitAndrew Reynolds
Fix uninitialized value
2017-06-21Properly handle subtypes in smt2 printer.ajreynol
2017-06-21Check for sigaltstack in configure (#172)Clément Pit-Claudel
2017-06-20Fix SIGILL handlerAndres Noetzli
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().
2017-06-18Fix assertionajreynol
2017-06-18Minor change to ensureTheoryAtoms for bug 828.ajreynol
2017-06-16Fix stream parsingAndres Nötzli
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.
2017-06-16Merge pull request #170 from CVC4/fix_2_6_parser3Clark Barrett
Parse 'is', 'match' differently for non-DT input
2017-06-16Fix segfault by making unit conflict CDMaybeAndres Nötzli
This commit fixes bug 819 by making d_unitConflictId context dependent and adds a test case.
2017-06-16Parse 'is', 'match' differently for non-DT inputAndres Noetzli
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.
2017-06-15Fix for bug 639.Clark Barrett
2017-06-15Fix for issue related to cbqi + E-matching.ajreynol
2017-06-15Fix relevant domain for datatypes, fixes bug 824.ajreynol
2017-06-15Ensure uninterpreted constants do not escape datatypes, fixes bug 823. Fix ↵ajreynol
cbqi for datatypes with uninterpreted sort subfields. Simplify fmc model construction.
2017-06-14Remove UdivSelf rewrite, add UdivZero rewriteAndres Noetzli
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.
2017-06-14Fix uninitialized valueAndres Noetzli
2017-06-03Fix compile errorClark Barrett
2017-06-01Minor optimizations related to cbqi.ajreynol
2017-05-31Fix model construction for BV with cbqi. Minor change to defaults.ajreynol
2017-05-31A more informative error message when a theory is not yet supported by the ↵guykatzz
proof infrastructure (e.g., quantifiers)
2017-05-31Minor fix to last commit.ajreynol
2017-05-31Change to-int, div, int-div skolems from CDAttribute to stored in CDHashMap. ↵ajreynol
Minor changes to smt comp script.
2017-05-31Minor change to defaults, update smt comp script, minor changes to options ↵ajreynol
in regressions.
2017-05-30print only labeled assertions as part of the unsat coreguykatzz
added the option dump-unsat-cores-full for printing the entire core, as before
2017-05-26Checking that equalities belong to the arithmetic theory in the solve() routine.Tim King
2017-05-26Fix use-after-free with ResChainsAndres Noetzli
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
2017-05-25Quote unsat core names if applicable, fixes bug 816.ajreynol
2017-05-20Fix bug 812.ajreynol
2017-05-17Merge pull request #155 from makaimann/conditional_coverageClark Barrett
Conditional coverage
2017-05-16Merge pull request #161 from 4tXJ7f/fix_parserClark Barrett
Avoid tokenizing FP tokens in non-FP input
2017-05-16Avoid tokenizing FP tokens in non-FP inputAndres Noetzli
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.
2017-05-16Fix error in Windows buildAndres Noetzli
The Windows build was missing the `print_statistics()` function, this commit moves the function out of the `#ifndef __WIN32__` guard.
2017-05-15Merge pull request #156 from 4tXJ7f/fix_safe_printAndrew Reynolds
Minor fix in safe_print function
2017-05-15Minor fix in safe_print functionAndres Noetzli
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.
2017-05-15Cleanup handling of division (possible fix for bugs 803, 804, 805).ajreynol
2017-05-15Merge pull request #159 from 4tXJ7f/fix_set_typesAndrew Reynolds
Fix type checks for relation operators
2017-05-15Fix type checks for relation operatorsAndres Noetzli
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.
2017-05-15Merge pull request #158 from 4tXJ7f/fix_sets_rewriterAndrew Reynolds
Fix minor bug in sets rewriter
2017-05-15Fix minor bug in sets rewriterAndres Noetzli
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.
2017-05-15Fix bug 806. Minor fixes to remove term formula pass.ajreynol
2017-05-15Merge pull request #157 from 4tXJ7f/fix_iteratorAndrew Reynolds
Fix condition in upwards closure check for sets
2017-05-15Fix condition in upwards closure check for setsAndres Noetzli
Coverity reported this mismatched iterator.
2017-05-15Fix issue in ceg_instantiator related to types and theoryOf, fixes bug 802.ajreynol
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback