summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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)...
2021-06-15pow2: adding a kind, inference rules, and some implementations in the pow2 ↵yoni206
solver (#6736) This PR is the sequel of #6676 . It adds the `POW2` kind, inference rules that will be used in the `pow2` solver, an implementation of one function of the solver, as well as stubs for the others. The next PR will include more implementations.
2021-06-15Update to a more recent libpoly version. (#6730)Gereon Kremer
This PR updates to the latest version of libpoly, which has a memory leak fixed.
2021-06-15Add cocoalib (#6731)Gereon Kremer
This PR adds CoCoALib as an optional dependency. It will be used in the CAD-based nonlinear solver for computer algebra routines beyond the capabilities of libpoly like quotient rings and polynomial factorization.
2021-06-15Remove public option wrappers (#6716)Gereon Kremer
This PR gets rid of almost all remaining public option wrappers. It does so by - making base, main and parser options public such that they can directly be used from the driver and the parser - moving incremental and the resource limiting options to base - moving dumping options to main After this PR, the only option wrapper left is becoming obsolete as well after (the follow-up of) #6697.
2021-06-15docs: Fix reference in sep logic reference. (#6747)Aina Niemetz
2021-06-15CVC4 -> cvc5 in cpp API examples (#6746)Haniel Barbosa
2021-06-15docs: Add references instead of links in theory reference pages. (#6729)Aina Niemetz
2021-06-15An example for a quick start guide (#6686)yoni206
Co-authored-by: Aina Niemetz <aina.niemetz@gmail.com>
2021-06-14Final update to SMT-COMP 2021 options (#6739)Andres Noetzli
This commit: - Disables `--tear-down-incremental=X` for the competition since it currently does not work correctly on master and a fixed version did not show significant benefits. - Changes the occurrences of `--nl-ext` to `--nl-ext=full` because it is now a mode option. - Removes the use of `--bv-assert-input` because the option currently has some issues in incremental mode (#6738) - Removes the use of `--bitblast=eager` for the model validation track because it produces invalid models (#6741)
2021-06-12Minor simplifications to LogicInfo (#6737)test-tag2Andrew Reynolds
2021-06-11Better support for HOL parsing and set up (#6697)Haniel Barbosa
This commit adds a new parser option, --hol, which marks that HOL is being used. This option has the effect of prepending the problem's logic with "HO_", which teels the solver that the logic is higher order. The parser builder, base parser, and SMT2 and TPTP parsers are all updated to work with this new setting, as is the logic info class. For now this parser option is enabling the --uf-ho option for internal use, since for now higher-order solving relies it. In a future PR this dependency will be removed (since this information is already given to the SMT solver via the logic).
2021-06-11Add skeleton for new Lazard evaluation (#6732)Gereon Kremer
This PR add the interface and a dummy implementation for the new Lazard evaluation. The dummy implementation is used when CoCoALib is not available and simply falls back to poly::infeasible_regions. The proper implementation that actually does that the comment says will be added with subsequent PRs.
2021-06-11Remove support for lazy BV extended function reductions and inferences (#6728)Andrew Reynolds
solve-int-as-bv is now the preferred method for solving these benchmarks. Adds solve-int-as-bv to a regression that became slow in my previous commit.
2021-06-10Ensure bv2nat and int2bv are not rewritten when using solve-bv-as-int (#6725)Andrew Reynolds
This PR ensures we do not eagerly rewrite bv2nat and int2bv when using solve-bv-as-int. Instead they are rewritten during expandDefinitions (at the end of preprocessing). It also updates regressions that relied on lazy extended function reductions in the lazy solver to use solve-bv-as-int, and adds a missing case (INT_TO_BITVECTOR) in the solve-int-as-bv preprocessing pass. A followup PR will remove support for lazy extended function reductions for bv2nat / int2bv altogether.
2021-06-10smtcomp: Change some BV configs for SQ and INC track. (#6721)Mathias Preiner
2021-06-09docs: Migrate sets and relations theory reference. (#6698)Aina Niemetz
This migrates page https://cvc4.github.io/sets-and-relations. It further adds the SMT2 version of examples/api/cpp/sets.cpp and adds test/regress/regress0/rels/relations-ops.smt2 as smtlib example for relations.
2021-06-09Make `--solve-int-as-bv=X` robust to rewriting (#6722)Andres Noetzli
After commit 327a24508ed1d02a3fa233e680ffd0b30aa685a9, the int-to-bv preprocessing pass is getting rewritten terms. As a result, the terms can contain negative constants (instead of `(- c)`, i.e., `UMINUS` of a positive constant) and `NONLINEAR_MULT`. The commit adds support for those cases, does some minor cleanup, and adds regressions. The regressions should allow us to detect if/when the preprocessing pass breaks in the future.
2021-06-09Update CVC4 URLs/macros (#6666)Andres Noetzli
2021-06-09Reorder ITE rewrites (#6723)Andres Noetzli
Fixes #6717. Commit 11c1fba added some new rewrites for ITE. Due to the new rewrites taking precedence over existing rewrites, it could happen that some of the previous rewrites did not apply anymore even though they would have further simplified the ITE. In the example from the issue, (ite c c true) was rewritten to (or (not T) T) instead of (ite T true true) and then true. The commit fixes the issue by moving rewrites resulting in conjunctions/disjunctions to the end.
2021-06-09Make squasing more robust (#6713)Gereon Kremer
This PR makes squashing olds commits in the docs-cleanup CI job more robust: it makes sure that the squash commit has a proper commit date and that we gracefully handle if there is nothing to squash.
2021-06-09Integrate learned literal manager into preprocessing pass context (#6718)Andrew Reynolds
Towards "learned rewrite" preprocessing pass / improvements to Int <-> BV.
2021-06-09Fixes related to printing tuples, define-fun commands in smt2 (#6679)Andrew Reynolds
This PR fixes some initial issues with printing datatypes in smt2. It does not yet address further issues on printing define-fun as a result of dump=raw-benchmark, which requires deeper refactoring of the implementation of the API / SmtEngine.
2021-06-09Push complex check inside GetInstantiationsCommand (#6715)Gereon Kremer
This PR pushes a rather complex check from the CommandExecutor inside the GetInstantiationsCommand. The aim is to only use the instFormatMode option in the library (command.cpp) but not the main driver (command_executor.cpp).
2021-06-09Update options for SMT-COMP (#6704)Andres Noetzli
This commit removes obsolete options for BV and strings logics, and updates QF_NIA to spend more time on our best configuration. Co-authored-by: Gereon Kremer nafur42@gmail.com Co-authored-by: Mathias Preiner mathias.preiner@gmail.com
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback