summaryrefslogtreecommitdiff
path: root/src/proof
AgeCommit message (Collapse)Author
2018-06-25Updated copyright headers.Aina Niemetz
2018-05-23Remove ProofProxy (#1965)Andres Noetzli
2018-05-03Fix warnings in proof code (#1850)Andres Noetzli
2018-04-25Refactor array-proofs and uf-proofs (#1655)yoni206
This commit unifies duplicate code blocks from array_proof.cpp and uf_proof.cpp into theory_proof.cpp.
2018-04-02Reorganize bitblaster code. (#1695)Mathias Preiner
This splits bitblaster_template.h into the separate header files {aig,eager,lazy}_bitblaster.h and bitblaster.h (the template class TBitblaster). All the bitblaster related code is moved into the sub-directory bitblast/.
2018-03-06Make statistics output consistent. (#1647)Mathias Preiner
* Fixes --hide-zero-stats (and really skips the 0 values) * Removes the additional newline after each statistic * Introduces theory::getStatsPrefix(TheoryId) to generate consistent prefixes for statistics based on the theory id (e.g., THEORY_BV -> "theory::bv").
2018-03-05Enable -Wsuggest-override by default. (#1643)Mathias Preiner
Adds missing override keywords.
2018-02-09Move BitVector specific funs from bv::utils to util/bitvector.h. (#1589)Aina Niemetz
2018-02-09Replacing an incorrect reference to an injected class name when the type was ↵Tim King
meant. (#1585)
2017-11-15Initializes BitVectorProof::d_isAssumptionConflict. Resolves CID 1362898. ↵Tim King
(#1374)
2017-11-15Adding garbage collection for Proof objects. (#1294)Tim King
2017-10-25Removing throw specifiers from OutputChannel and subclasses. (#1209)Tim King
2017-10-25Switching EqProof to use shared_ptr everywhere. (#1217)Tim King
This clarifies the memory ownership of EqProofs.
2017-10-11Cleaning up ProofArray class. (#1208)Tim King
2017-10-11Move unsat core names to smt engine (#1192)Andrew Reynolds
* Move unsat core names to SmtEnginePrivate. Adds a SetExpressionNameCommand to do this. Removes the names field from GetUnsatCoreCommand. * Comment * Pass expression names by reference. * Update throw specifiers. * Minor * Switch expression names to CDMap, simplify interface for printing unsat core names. * Revert throw specifier change. * Minor simplifcations
2017-09-19Fix issue #1074, improve non-fatal error handling (#1075)Andres Noetzli
Commit 54d24c786d6a843cc72dfb5e377603349ea5e420 was changing CVC4 to handle certain non-fatal errors (such as calling get-unsat-core without a proceding unsat check-sat command) without terminating the solver. In the case of get-unsat-cores, the changes lead to the solver crashing because it was trying to print an unsat core initialized with the default constructor, so the member variable d_smt was NULL, which lead to a dereference of a null pointer. One of the issues of the way non-fatal errors were handled was that the error reporting was done in the invoke() method of the command instead of the printResult() method, which lead to the error described above and other issues such as a call to get-value printing a value after reporting an error. This commit aims to improve the design by adding a RecoverableModalException for errors that the solver can recover from and CommandRecoverableFailure to communicate that a command failed in a way that does not prohibit the solver from continuing to execute. The exception RecoverableModalException is thrown by the SMTEngine and the commands catch it and turn it into a CommandRecoverableFailure. The commit changes all error conditions from the commit above and adds a regression test for them.
2017-08-21Change Bugzilla urls to Github issues.Mathias Preiner
2017-08-09Fix compiler warning in sat_proof_implementationAndres Noetzli
2017-07-20Moving from the gnu extensions for hash maps to the c++11 hash mapsTim King
* Replacing __gnu_cxx::hash_map with std::unordered_map. * Replacing __gnu_cxx::hash_set with std::unordered_set. * Replacing __gnu_cxx::hash with std::hash. * Adding missing includes.
2017-07-07Update copyright headers.Mathias Preiner
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-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-05-31A more informative error message when a theory is not yet supported by the ↵guykatzz
proof infrastructure (e.g., quantifiers)
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-04skolemization manager may be called also when just unsatCores are on ↵guykatzz
(related to bug 717)
2017-03-23support incremental unsat coresguykatzz
2017-03-17better support for proof production when encountering bool terms: handle the ↵guykatzz
new proof constructs generated by the equality engine. proof production for bool-array.smt2 passes
2017-03-14fix uninitialized variableAndres Notzli
2017-03-09bug fixguykatzz
2017-03-09better proof support for bools and formulasguykatzz
2017-03-02Eliminate Boolean term conversion. Generalizes removeITE pass to remove ↵ajreynol
Boolean terms, treats distinguished BOOLEAN_TERM_VARIABLE kind as theory literal. Fixes bugs 597, 604, 651, 652, 691, 694. Add regressions.
2016-11-18Removing some throw specifiers from OutputChannel. Fixes bug 716.Tim King
2016-10-13Revert "Merge branch 'origin' of https://github.com/CVC4/CVC4.git"Tim King
This reverts commit 3395c5c13cd61d98aec0d9806e3b9bc3d707968a, reversing changes made to 5f415d4585134612bc24e9a823289fee35541a01.
2016-10-11Merge branch 'origin' of https://github.com/CVC4/CVC4.gitPaul Meng
Conflicts: src/options/quantifiers_options
2016-10-05Added an option that allow empty dependencies when attempting to minimize ↵guykatzz
preprocessing holes
2016-09-27Removing an unused iterator.Tim King
2016-09-16Let arith_proof print its own termsGuy
2016-08-24Merge remote-tracking branch 'origin/master'PaulMeng
2016-08-11Add support for fewer preprocessing holesAndres Notzli
This commit adds support for the --fewer-preprocessing-holes flag. This flag changes the preprocessing part in proofs in two ways: it (1) removes assertions that are just restating inputs and uses the inputs directly instead and it (2) changes the form of the preprocessed assertions to contain the input that they originate from. The code in this commit is mostly taken from the proofs branch in Guy's fork.
2016-08-09Fix missing/redundant spaces in proofsfix_proof_spacesAndres Notzli
Before, in some cases, e.g. when printing sorts and in resolution proofs, the proofs contained redundant and/or missing spaces. With this commit, CVC4 now prints out `(trust_f (= (Array Index Element) let10 let12)` instead of `(trust_f (= (Array Index Element )let10 let12))`.
2016-08-05Minor: add/fix comments, remove redundant includesAndres Notzli
2016-08-03Fixed an issue where arrays proofs would sometimes have an extra ")" at the end.Guy
2016-07-28The "aggressive" optimizer for lemma L now returns the conjunction of all ↵Guy
lemmas L' that originated from L and were used in the unsat core
2016-07-28Bug fix involving negated lemmasGuy
2016-07-27Proper handling of IFF lemmas in the unsat core.Guy
Don't return duplicates in the unsat core
2016-07-27Added an option for a more aggressive weakest implicant optimizationGuy
2016-07-27If we can't find a weaker implicant, fail gracefully and return the original ↵Guy
lemma
2016-07-26Fix warnings in src/proofAndres Notzli
Fix warning due to `ProofLetCount` being defined as `struct` in `proof_utils.h` and `class` in `proof.h`. Fix warnings due to different number of arguments of `printConstantDisequalityProof()` and `printTheoryLemmaProof()` in subclasses.
2016-07-26Bug fix:Guy
If a lemma (a disjunction) has a "false" literal in it, it can be ignored, but a "true" literal really should stay
2016-07-26Letification of BV constantsGuy
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback