summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-29Add new variants for the CAD projection (#6794)Gereon Kremer
This PR adds variants for the CAD projection operator to use Lazard's projection operator.
2021-06-29Fix statistics in AigBitblaster. (#6810)Mathias Preiner
Fixes #6788
2021-06-29FP: Refactor, rewrite and clean up word blasting. (#6802)Aina Niemetz
This rewrites the word blasting function FpConverter::convert to be easier to follow and read. It further cleans up several things. This additionally prepares for allowing to convert incoming facts rather than terms registered with theory FP. That is, when word blasting more lazily, in preNotifyFact rather than in registerTerm.
2021-06-28Rewrite POW to POW2 when the base is 2 (#6806)yoni206
This PR introduces a rewrite from (^ 2 t) to (pow2 t) in order to make use of the specialized pow2 solver. One regression that expects an error when t is not a constant is changed accordingly.
2021-06-28Rename internal string kinds to match API (#6797)Andrew Reynolds
This commit replaces (old) internal string kind names to match the API / smt2 standard names.
2021-06-28Further fix #6453 (#6804)Ouyancheng
There's one spot left in issue #6453, that is the call to `std::allocator<T>::destroy` in `mkMetaKind`. And this commit fixes it.
2021-06-28[proof] [dot] Make dot printer stateful (#6799)Haniel Barbosa
In preparation for further changes in the printer.
2021-06-25pow2 -- final changes (#6800)yoni206
This commit adds the remaining changes for a working and integrated `pow2` solver. In particular, it adds a rewrite and a lemma that identify `pow2(x)` with `0` whenever `x<0`. Regressions are added as well, including `pow2-native-0.smt2` that shows the semantics of `pow2` on negative values. The next steps are new rewrites and and more lemma schemas.
2021-06-24pow2: Adding monotonicity lemma (#6793)yoni206
We add the lemma x<=y --> pow2(x)<=pow2(y) to the pow2 solver. Additionally, some renaming of variables is introduced for better clarity.
2021-06-24api: getRealValue: Fix printing of integer values. (#6795)Aina Niemetz
2021-06-24cmake: Add new code coverage targets. (#6796)Mathias Preiner
This commit adds the following new code coverage targets: - coverage-reset: Resets the code coverage counters - coverage: Generates code coverage report for all cvc5 executions since the last coverage-reset - coverage-test: This was previously the coverage target that runs the tests and generates the coverage report (as used for nightlies). By using `make coverage-reset` and `make coverage` it is now possible to generate coverage reports for arbitrary executions of cvc5.
2021-06-24Fix linear arithmetic for duplicate lemmas in incremental (#6784)Andrew Reynolds
The linear arithmetic solver was not robust to cases where a duplicate lemma is emitted. This leads to non-linear arithmetic not being called to check at full effort, leading to potential model soundness issues. Fixes #6773.
2021-06-24Add CoCoA implementation (#6733)Gereon Kremer
This PR adds the actual implementation for the Lazard evaluation based on CoCoALib. It is only used if CoCoALib is available and falls back to a default libpoly-based implementation otherwise.
2021-06-23[hol] Disable bound fmf when HOL (#6792)Haniel Barbosa
Fixes #6536
2021-06-23pow2: more implementations (#6756)yoni206
This PR adds implementations of functions from the pow2 solver, rewriter and type checker.
2021-06-23[regressions] Adding regression from #5371 (#6791)Haniel Barbosa
2021-06-23[proofs] [dot] Adding a counter for subproofs (#6735)Haniel Barbosa
2021-06-23[parser] [hol] Fix parser check for allowing functions when HOL is enabled ↵Haniel Barbosa
(#6790) Fixes #6526
2021-06-23docs: Add quickstart guide. (#6782)Aina Niemetz
2021-06-23FP: Remove sections guarded with undefined macro SYMFPUPROPISBOOL. (#6786)Aina Niemetz
2021-06-23Remove `--tear-down-incremental` (#6745)Andres Noetzli
Recent experiments have shown that `--tear-down-incremental` is actually not really helping anymore and it has always been a bit of a workaround. It is also broken on current master. This commit removes the option.
2021-06-22Avoid full normalization of lambdas in getValue (#6787)Andrew Reynolds
This ensures that we don't apply lambda rewriting, which involves array value normalization, to lambda terms returned by TheoryModel::getValue. This can significantly speed up our time to return function terms for getValue.
2021-06-22python api unit tests for Op (#6785)yoni206
Unit tests are translated from https://github.com/cvc5/cvc5/blob/master/test/unit/api/op_black.cpp to python. The only thing that is not faithfully translated is that the `cpp` tests expect the template function `[getIndices](https://github.com/cvc5/cvc5/blob/master/src/api/cpp/cvc5.h#L841)` to fail when an inappropriate type is given to it, while in the [`python` API](https://github.com/cvc5/cvc5/blob/90d19f7cdbaf41e389bdcbd099471f658a35ce98/src/api/python/cvc5.pxi#L343) this function is not a template, but just tries every supported type. For example, the following line is not translated: https://github.com/cvc5/cvc5/blob/90d19f7cdbaf41e389bdcbd099471f658a35ce98/test/unit/api/op_black.cpp#L206
2021-06-22modular bv2int: Stubs and some implementations (#6760)yoni206
This PR adds the file int_blaster.cpp. Most of the functions are not yet implemented. Two main functions are implemented. Additionally, code that will no longer be needed is removed from the BV rewriter.
2021-06-22Minor simplification to equality engine notifications (#6726)Andrew Reynolds
This removes the d_performNotify flag from equality engine which was supposedly used to guard a very old dependency concerning notifications during initialization. We are now robust to this and hence the flag can be removed.
2021-06-22Always check legal eliminations in quantified logics (#6720)Andrew Reynolds
Fixes #6699.
2021-06-22Fix type enumeration for non first-class sorts in FMF (#6719)Andrew Reynolds
Fixes #6690.
2021-06-22Python api unit tests for Result (#6763)yoni206
This PR translates the cpp API unit tests about results to python. The original cpp file is: https://github.com/cvc5/cvc5/blob/master/test/unit/api/result_black.cpp The translation made rise to one addition to the python API: The UnknownExplanation object from the cpp API was represented by a string in the python API. Now we have a more faithful representation, as an enum.
2021-06-21Fix cases of ITE within regular expressions (#6783)Andrew Reynolds
Fixes #6776. Our computation of when a regular expression was constant did not account for when ITE was embedded in an RE, leading to an unsound rewrite. That benchmark now gives: (error "Regular expression variables are not supported.")
2021-06-22Set up fine grained equality notifications (#6734)Andrew Reynolds
This adds fields to equality engine setup information which will be used to hook up theories to the central equality engine. This PR does not impact any behavior. This is in preparation for the central equality engine.
2021-06-21Update to CaDiCaL 1.4.1. (#6780)Mathias Preiner
2021-06-21docs: Split out and merge C++ class hierarchy. (#6781)Aina Niemetz
This restructures the entry page for the C++ API documentation in preparation for adding a quickstart and linking to examples and adding more content.
2021-06-21[Attributes] Remove parameter `context_dependent` (#6772)Andres Noetzli
After commit d70a63324c95210f1d78c2efc46395d2369d2e2b, context-dependent attributes have not been supported and, as a result, the template parameter `context_dependent` of `Attribute` has not been used. Context-dependent attributes also do not fit with our current design of sharing attributes across different solvers, so it is unlikely that we will add that feature back in the future. This commit removes the unused template parameter.
2021-06-21Fix model issues with --bitblast=eager. (#6753)Mathias Preiner
For model construction we only compute model values for relevant terms. The set of relevant terms is computed in https://github.com/cvc5/cvc5/blob/master/src/theory/model_manager_distributed.cpp#L58, which skips equalities by default because equalities are usually handled by the equality engine. When --bitblast=eager is enabled all assertions are wrapped into BITVECTOR_EAGER_ATOM nodes and passed to the BV solver, which results in equalities below BITVECTOR_EAGER_ATOM nodes not being handled by the equality engine but by the BV solver directly. These equalities, however, are skipped when computing the relevant terms and therefore the BV solver is not asked to compute model values for variables below these equalities. If --bitblast=eager is enabled the BV solver now additionally adds the variables encountered during bit-blasting to the relevant terms via computeRelevantTerms. Co-authored-by: Andres Noetzli <andres.noetzli@gmail.com>
2021-06-21Add Grammar.java to the java API (#6388)mudathirmahgoub
This commit adds Grammar.java GrammarTest.java and cvc5_Grammar.cpp to the java api.
2021-06-21Move cnfConversionTime statistic to CnfStream. (#6769)Mathias Preiner
The statistic in `smt_solver.cpp` was not accurate.
2021-06-21Make CaDiCaL a required dependency. (#6761)Mathias Preiner
Since the new BV solver is enabled by default and uses CaDiCaL (and optionally CryptoMiniSat) we make CaDiCaL a required dependency.
2021-06-21[proof] Fix documentation of array rule (#6770)Haniel Barbosa
2021-06-19Adding python API test part 5 (#6743)Ying Sheng
This commit (follow #6553) adds more functions and unit tests for python API. Subsequent PR will include additional missing functions and unit tests. 1. Adding getNullSort() and mkEmptyBag() functions. 2. Allowing mkOp() with a list of arguments (previously allowed at most 2). 3. Allowing mkString() with additional boolean argument useEscSequences. 4. Corresponding changes to the tests.
2021-06-19docs: Fix config to produce unique Sphinx section labels. (#6767)Aina Niemetz
2021-06-19[CI] Build with all available cores (#6768)Andres Noetzli
macOS virtual machines have three available cores but we were only using two of them for our CI. This commit changes the CI to retrieve the number of available cores and then to use that to number to build and test cvc5.
2021-06-18docs: Remove 'View page source' link in right corner. (#6771)Aina Niemetz
We don't upload the source files to the website, so this will always be a 404.
2021-06-18Make CnfStream::toCNF iterative (#6757)Mathias Preiner
This commit makes toCNF() iterative to avoid this issue. Note that the order in which nodes are visited and thus SatLiterals are created remains the same. Fixes #6111
2021-06-18Remove obsolete libpoly patch (#6762)Andres Noetzli
The following commit made our libpoly patch for our Windows builds obsolete: https://github.com/SRI-CSL/libpoly/commit/ce7e620c54bd907200ce8b11812d123bf5f4ec8e This resulted in our build getting stuck because it detected that the patch had already been applied and was prompting the user what to do. This commit removes that patch file and the corresponding command.
2021-06-18Fix CaDiCaL build on Windows (#6764)Andres Noetzli
The Windows version of CaDiCaL does not require the `sys/resource.h` file, so this commit removes that check. It does, however, require linking against the Process Status API (psapi), because of a call to `GetProcessMemoryInfo()`, so this commit adds that dependency for Windows builds.
2021-06-17Fix build without libpoly (#6759)Andres Noetzli
Commit f10087c3b347da6ef625a2ad92846551ad324d73 added new files that do not compile without libpoly. This commit excludes those files when building without libpoly. It also updates one of the regressions to ignore a warning about approximate values in the model.
2021-06-16Make symfpu a required dependency. (#6749)Aina Niemetz
2021-06-16Archive SMT-COMP 2021 run scripts (#6748)Andres Noetzli
This commit copies the run-script-smtcomp-current* scripts to run-script-smtcomp2021* to archive them.
2021-06-16Properly consider aliases in option handlers (#6683)Gereon Kremer
This PR makes sure that option handlers have access to both the canonical option name and the option name that was actually used. It also updates the options README and gets rid of the base_handlers.h of which only a fraction was used.
2021-06-15[Optimization] Use Result in OptimizationResult (#6740)Ouyancheng
OptimizationResult now contains: - cvc5::Result - optimal value for objective - whether the objective is unbounded This gets benefit from cvc5::Result (e.g., we could get explanation for UNKNOWN) and it's slightly easier to integrate to the current API. Also refactors BV optimizer so that it uses switch statement (instead of if-then-else) to judge the checkSat results (I was planning to do this a long while ago)...
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback