Andrew Reynolds [Tue, 12 Apr 2022 21:54:25 +0000 (16:54 -0500)]
Fix type issue for LFSC null terminator (#8607)
This fixes an assertion failure when producing LFSC proofs in debug mode.
The issue currently does not impact the correctness of the code, although this will be important if subtypes are eliminated.
Andrew Reynolds [Tue, 12 Apr 2022 18:55:05 +0000 (13:55 -0500)]
Add oracle checker utility (#8603)
This is a utility that allocates oracle callers for oracle functions on demand and can be used to convert a term containing oracle function symbols into its evaluated form.
It will be used for both SMTO (for checking consistency of oracle interfaces) and SyMO (as part of refinement lemma evaluation in CEGIS).
Andrew Reynolds [Tue, 12 Apr 2022 14:59:14 +0000 (09:59 -0500)]
Add oracle caller utility (#8599)
The implementation of this class has a placeholder for calling external binaries, which will be filled in a later PR.
Andrew Reynolds [Tue, 12 Apr 2022 14:19:53 +0000 (09:19 -0500)]
Making some benchmarks SMT-LIB compliant for subtypes (#8600)
This makes some of our regressions compliant for arithmetic subtyping. This is required to make these benchmarks parsable when subtyping is eliminated.
We should discuss whether we should be permissive for such benchmarks. Regardless, the majority of our regressions should be SMT-LIB compliant.
Andrew Reynolds [Tue, 12 Apr 2022 13:58:18 +0000 (08:58 -0500)]
Fix more misuses of arithmetic subtypes (#8601)
vinciusb [Tue, 12 Apr 2022 13:13:56 +0000 (10:13 -0300)]
[proofs] [dot] Print nodes clusters at dot format (#8574)
Add a printer option that allows the dot printer to identify each node type and group them up in node clusters. These cluster are determined according to "part of the proof" whether a node belongs to:
- input
- sat proof
- cnf proof
- theory lemma proof
- preprocessing
Signed-off-by: VinÃcius Braga Freire vinicius.braga.freire@gmail.com
Andrew Reynolds [Mon, 11 Apr 2022 22:13:46 +0000 (17:13 -0500)]
More cleaning uses of arithmetic subtyping (#8595)
Towards eliminating arithmetic subtyping.
Andrew Reynolds [Mon, 11 Apr 2022 21:06:10 +0000 (16:06 -0500)]
Add oracle engine to quantifiers engine (#8589)
This class is the subsolver of quantifiers engine for handling oracles in SMTO. The implementation of this class will be added in followup PRs.
It also contains a utility method for constructing oracle interfaces.
Andrew Reynolds [Mon, 11 Apr 2022 15:33:54 +0000 (10:33 -0500)]
Remove spurious case of ppRewrite (#8596)
Constants equal to constants are always rewritten to false.
Andrew Reynolds [Mon, 11 Apr 2022 14:10:44 +0000 (09:10 -0500)]
Add learned literal type and prop learned database (#8582)
In preparation for deep restart feature, and for extending the get-learned-literal interface to multiple types.
Andres Noetzli [Fri, 8 Apr 2022 22:00:23 +0000 (15:00 -0700)]
Simplify parser (#8592)
This commit simplifies our parser by removing code that is not relevant
anymore since the removal of support for SMT-LIB <=2.6.
Andrew Reynolds [Fri, 8 Apr 2022 21:37:09 +0000 (16:37 -0500)]
Minor refactoring of smt2 printer (#8588)
Andrew Reynolds [Fri, 8 Apr 2022 21:17:29 +0000 (16:17 -0500)]
Do not allow unresolved sorts in smt2 (#8587)
This simplifies the smt2 parser so that we never parse "inlined" unresolved sorts. This infrastructure was used for accomodating the ad-hoc datatype syntax from SMT-LIB <=2.5, and SyGuS 1.0.
We now assume that sorts are fully declared wherever we parse them.
Andrew Reynolds [Fri, 8 Apr 2022 20:58:02 +0000 (15:58 -0500)]
Eliminate more uses of CONST_RATIONAL (#8590)
To eliminate arithmetic subtyping, we require distinguishing CONST_RATIONAL and CONST_INTEGER internally. Code should avoid usage of these kinds and use trusted utilities instead (e.g. mkConstReal, mkConstInst, isConst).
Andrew Reynolds [Fri, 8 Apr 2022 20:38:52 +0000 (15:38 -0500)]
Properly parse numerals as real when integers are disabled (#8591)
SMT-LIB says numerals are real when integers are not included in the logic.
Due to subtyping, we don't complain internally, although if subtyping is eliminated, this fix is necessary.
Andrew Reynolds [Thu, 7 Apr 2022 22:14:08 +0000 (17:14 -0500)]
Generalization for sygus verify utility (#8586)
This is in preparation for synthesis modulo oracles (SyMO), where the verification loop may run multiple times for a given solution. In a follow up PR, the loop introduced in this PR may run multiple times when oracles are present, since oracle invocations in the subsolver may trigger further simplifications to the rewritten form of the specification.
It also makes it so that candidate models are generated for "unknown" results for subsolvers, which is required for SyMO.
Andrew Reynolds [Thu, 7 Apr 2022 21:32:07 +0000 (16:32 -0500)]
Internal representation of oracle interface quantifiers (#8585)
This is the first step towards supporting SMT and synthesis modulo oracles.
It adds the kind required for specifying "oracle interface quantifiers", or, quantified formulas that specify constraints that depend on an external binary.
Andrew Reynolds [Thu, 7 Apr 2022 21:04:31 +0000 (16:04 -0500)]
Add method to get leaves of a NodeTrie (#8583)
From the oracles branch.
Andrew Reynolds [Thu, 7 Apr 2022 18:09:14 +0000 (13:09 -0500)]
Make sets and bags operators left-associative (#8584)
Makes it so that we parse n-ary applications of e.g. set.union in smt2.
Left associativity seems to be the case for difference operators in databases.
See
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/set-operators-except-and-intersect-transact-sql?view=sql-server-ver15
Andrew Reynolds [Thu, 7 Apr 2022 13:07:39 +0000 (08:07 -0500)]
Eliminate SmtSolver dependency on SolverEngineState (#8581)
This is in preparation for making SmtSolver able to be deep reset (reconstructed) within in a SolverEngine instance.
Andrew Reynolds [Thu, 7 Apr 2022 12:48:38 +0000 (07:48 -0500)]
Minor fix for printing nullary operators in smt2 (#8577)
Andrew Reynolds [Thu, 7 Apr 2022 12:29:53 +0000 (07:29 -0500)]
Fix proof checker for SUBS (#8578)
Could lead to proof checking failures when using `--proof-granularity=rewrite`
Andrew Reynolds [Wed, 6 Apr 2022 18:43:33 +0000 (13:43 -0500)]
Fixes for LFSC printing and signatures (#8579)
Ensures we recognize some internal FP symbols, adds a missing string operator, fixes seq.unit operator printing (required for CONG over seq.unit), fix for 0-ary tuple printing.
Mathias Preiner [Tue, 5 Apr 2022 23:56:20 +0000 (16:56 -0700)]
Start post-release for 1.0.0
Mathias Preiner [Tue, 5 Apr 2022 23:56:20 +0000 (16:56 -0700)]
Bump version to 1.0.0
Aina Niemetz [Tue, 5 Apr 2022 23:55:47 +0000 (16:55 -0700)]
api: Fix doc generation for kinds in java API. (#8576)
Plus some more fixes for docs.
Mathias Preiner [Tue, 5 Apr 2022 20:38:57 +0000 (13:38 -0700)]
Update copyright headers for release 1.0 (#8539)
Mathias Preiner [Tue, 5 Apr 2022 20:08:27 +0000 (13:08 -0700)]
Update NEWS for cvc5 1.0. (#8460)
Co-authored-by: Andrew Reynolds <andrew.j.reynolds@gmail.com>
Co-authored-by: Gereon Kremer <nafur42@gmail.com>
Co-authored-by: mudathirmahgoub <mudathirmahgoub@gmail.com>
Co-authored-by: Andres Noetzli <andres.noetzli@gmail.com>
Andrew Reynolds [Tue, 5 Apr 2022 15:45:46 +0000 (10:45 -0500)]
Make inst constant attribute robust to purification variables (#8573)
Fixes #8572.
Certain combinations of cegqi/sygus-inst may be solution unsound when combined with E-matching, due to using skolems that have dependencies on instantiation constants are used in instantiations.
Gereon Kremer [Tue, 5 Apr 2022 04:32:43 +0000 (21:32 -0700)]
Make rewriter more robust against RAN becoming rational (#8564)
We use real algebraic number to represent multiplicities of sum terms within the arithmetic rewriter. Unfortunately, such real algebraic numbers can realize that they are in fact rational at awkward times. This makes isRational() unsuitable for checking this, instead we should construct the node and check afterwards.
Aina Niemetz [Tue, 5 Apr 2022 04:08:36 +0000 (21:08 -0700)]
api: More fixes in the java API. (#8571)
Andrew Reynolds [Tue, 5 Apr 2022 03:39:48 +0000 (22:39 -0500)]
Be permissive for subtyping in function definitions (#8568)
This is to accommodate the Real theory in SMT-LIB, which says that numerals specify reals.
Instead of making our parser for numerals dependent on the logic, we are more permissive.
This fixes several spurious parsing issues in smtlib.
Aina Niemetz [Tue, 5 Apr 2022 03:08:05 +0000 (20:08 -0700)]
api: More fixes in C++ API docs. (#8570)
Alex Ozdemir [Tue, 5 Apr 2022 02:49:30 +0000 (19:49 -0700)]
Write-up for Pythonic API quickstart (#8566)
Mathias Preiner [Tue, 5 Apr 2022 02:14:37 +0000 (19:14 -0700)]
docs: Fix mkTerm calls in theory documentation. (#8567)
Aina Niemetz [Tue, 5 Apr 2022 01:53:35 +0000 (18:53 -0700)]
api: Fix OptionInfo docs for java API. (#8569)
Aina Niemetz [Tue, 5 Apr 2022 01:03:09 +0000 (18:03 -0700)]
api: Fixes in docs for Op. (#8565)
Aina Niemetz [Tue, 5 Apr 2022 01:02:47 +0000 (18:02 -0700)]
api: Fixes for Grammar docs in java API. (#8563)
Aina Niemetz [Tue, 5 Apr 2022 01:02:26 +0000 (18:02 -0700)]
api: Fixes in java api docs. (#8562)
Aina Niemetz [Tue, 5 Apr 2022 01:01:56 +0000 (18:01 -0700)]
api: Fixes in docs for DatatypeConstructor. (#8561)
mudathirmahgoub [Tue, 5 Apr 2022 00:51:47 +0000 (19:51 -0500)]
Docs: remove api from package name in java.rst (#8560)
Fix broken links in https://cvc5.github.io/docs/cvc5-0.0.12/api/java/java.html
Aina Niemetz [Mon, 4 Apr 2022 23:59:36 +0000 (16:59 -0700)]
api: More fixes in docs. (#8559)
Aina Niemetz [Mon, 4 Apr 2022 22:59:32 +0000 (15:59 -0700)]
api: First batch of fixes in the api docs. (#8558)
Uses `@return <uppercase> .... <period>` and `@param <param> <uppercase> ... <period>`,
plus various fixes in the docs.
Gereon Kremer [Mon, 4 Apr 2022 22:38:25 +0000 (15:38 -0700)]
Fix links when converting kinds documentation to python (#8557)
This mainly fixes explicit rst links when we convert the kinds comments to python.
Aina Niemetz [Mon, 4 Apr 2022 21:13:12 +0000 (14:13 -0700)]
python api: More fixes. (#8556)
Mathias Preiner [Mon, 4 Apr 2022 20:52:42 +0000 (13:52 -0700)]
Start post-release for 0.0.12
Mathias Preiner [Mon, 4 Apr 2022 20:52:42 +0000 (13:52 -0700)]
Bump version to 0.0.12
Gereon Kremer [Mon, 4 Apr 2022 20:37:24 +0000 (13:37 -0700)]
Maintain symlink to docs for latest release (#8555)
This PR creates/updates a symlink called latest to the last release. This simplifies permalinks into the documentation.
Gereon Kremer [Mon, 4 Apr 2022 20:31:54 +0000 (13:31 -0700)]
Remove duplicate lines (#8552)
We remove the arguments from links to solver methods in the Kinds
documentation to turn C++ references into python references. This
oftentimes collapses previously different overload of methods (usually
mkTerm()). This PR generically removes duplicate lines from these
comments using some re magic.
Alex Ozdemir [Mon, 4 Apr 2022 20:11:30 +0000 (13:11 -0700)]
Bump Pythonic (transcendentals) & exception example (#8553)
- Bump version of Pythonic API to include transcendentals.
- Document Pythonic API's transcendentals.
- Add exception Pythonic API example.
Aina Niemetz [Mon, 4 Apr 2022 19:37:51 +0000 (12:37 -0700)]
api: Various fixes in Python documentation. (#8554)
Gereon Kremer [Mon, 4 Apr 2022 19:09:47 +0000 (12:09 -0700)]
Various improvements and fixes in the documentation (#8551)
This PR contains a variety of fixed and improvements to the documentation.
Andrew Reynolds [Mon, 4 Apr 2022 18:35:38 +0000 (13:35 -0500)]
Rename getInstantiatedConstructorTerm to getInstantiatedTerm (#8549)
This is in line with the change for non-parametric constructors (getConstructorTerm -> getTerm).
Also adds documentation to make the use of constructors, selectors, testers, updaters more clear.
Andrew Reynolds [Mon, 4 Apr 2022 17:41:40 +0000 (12:41 -0500)]
Use raw symbols in proofs (#8550)
This ensures we don't quote symbols that should not be quoted, fixing two issues:
(1) Proofs in the internal calculus don't convert `:args` to `|:args|`.
(2) LFSC identifiers for terms are not quoted based on SMT-LIB restrictions.
Work towards https://github.com/cvc5/cvc5-projects/issues/466, quoted TypeNode names still need to be addressed.
Haniel Barbosa [Mon, 4 Apr 2022 14:12:39 +0000 (11:12 -0300)]
[proofs] [sat] Make SAT assumption bookeeping robust to incremental (#8536)
Similarly to what happened with proofs of optimized SAT clauses getting lost (in the sense of inserted at lower assertion levels than the current one, during incremental solving), we need to make the bookeeping of the current SAT assumptions in the SAT proof manager robust to context popping. Not doing so can break the final proof construction, which relies on this information. A regression is added which showed the issue via the openness of a step added to the lazy proof chain (even though this did not lead to issues in the final proof).
This commit extends the OptimizedClausesManager to also optionally track a hash set of nodes to have nodes added to it during popping. This is hooked in the SAT proof manager to the SAT assumptions hash set.
There are four instances of notifications to the SAT proof manager of SAT assumptions: two in the proof CNF stream and two in the SAT solver. We only need to worry about the proof CNF stream ones, since the SAT solver ones are for literals (which do
not have assertion levels) and for some cases of the final conflict clause generated, which is always at the current assertion level. For the proof CNF stream ones it suffices to notify the SAT proof manager when the CNF stream itself is notified that a propagation or clause was inserted at an optimized level, as these are the only possible cases.
Andrew Reynolds [Mon, 4 Apr 2022 10:31:27 +0000 (05:31 -0500)]
Fix for get-value with empty uninterpreted sort domain (#8547)
Alternative for https://github.com/cvc5/cvc5/pull/8546.
We were mistakenly using `mkGroundTerm` instead of `mkGroundValue` to make the domain of an uninterpreted sort non-empty.
This ensures that get-value calls do not throw a spurious exception when there is a declared uninterpreted sort and there are no terms of that sort.
As a result, this also required fixing a few further issues regarding how uninterpreted sort constants are printed in models, and fixing the expected results on 2 more regressions.
Mathias Preiner [Sun, 3 Apr 2022 04:32:04 +0000 (21:32 -0700)]
Start post-release for 0.0.11
Mathias Preiner [Sun, 3 Apr 2022 04:32:04 +0000 (21:32 -0700)]
Bump version to 0.0.11
Gereon Kremer [Sat, 2 Apr 2022 20:03:56 +0000 (22:03 +0200)]
use one process more than we have cores (#8545)
This PR uses one process more than we have cores in the CI. This speeds up the CI jobs when time is spent waiting on IO instead of actually using the CPU.
Andrew Reynolds [Sat, 2 Apr 2022 19:40:41 +0000 (14:40 -0500)]
Rename mkSygusGrammar to mkGrammar (#8544)
Andrew Reynolds [Sat, 2 Apr 2022 19:21:46 +0000 (14:21 -0500)]
Remove variant of mkDatatypeDecl with one sort parameter (#8543)
Subsumed by the vector version.
Also marks more methods as experimetnal.
Aina Niemetz [Sat, 2 Apr 2022 18:57:50 +0000 (11:57 -0700)]
api: Rename get(Selector|Constructor)Term() to getTerm(). (#8537)
Gereon Kremer [Sat, 2 Apr 2022 18:31:32 +0000 (20:31 +0200)]
Follow renaming within pythonic API (#8532)
We are renaming files in the pythonic API to make it look less like it is somehow part of z3 (but still acknowledge that we took code from z3Py properly). This PR follows the change in cvc5/cvc5_pythonic_api#80.
Gereon Kremer [Sat, 2 Apr 2022 18:08:36 +0000 (20:08 +0200)]
Always cancel already running CI runs on forks (#8542)
One effect of our changed concurrency policy is that we never cancel runs on forks. This PR changes this, always allowing the concurrency mechanism to cancel on repositories that are not the main repository.
Cesare Tinelli [Sat, 2 Apr 2022 03:09:22 +0000 (22:09 -0500)]
Minor edits in docs. (#8540)
Andrew Reynolds [Sat, 2 Apr 2022 02:48:35 +0000 (21:48 -0500)]
Ignore irrelevant exponential terms (#8534)
Fixes #8517.
Mathias Preiner [Sat, 2 Apr 2022 02:26:33 +0000 (19:26 -0700)]
docs: Add Python installation instructions for pip. (#8538)
Aina Niemetz [Sat, 2 Apr 2022 01:53:15 +0000 (18:53 -0700)]
api: Remove DatatypeConstructor::getSelectorTerm(). (#8535)
Andrew Reynolds [Sat, 2 Apr 2022 01:27:01 +0000 (20:27 -0500)]
Require that used model values are constant in CEGQI (#8528)
Fixes #8520.
Andrew Reynolds [Sat, 2 Apr 2022 01:02:47 +0000 (20:02 -0500)]
Add a few miscellaneous pieces of documentation (#8533)
mudathirmahgoub [Sat, 2 Apr 2022 00:40:47 +0000 (19:40 -0500)]
Remove java API methods that accepts lists as arguments (#8541)
This PR removes some unnecessary methods in the Java API that were added to simplify several unit tests that use dynamic arrays. The goal is to make the java API consistent and as small as possible.
Users could use asList, toArray methods to use generic lists if they wish.
Andrew Reynolds [Sat, 2 Apr 2022 00:12:37 +0000 (19:12 -0500)]
Add more explanations in the API (#8493)
This also removes a few references to "first-order constants" (using "free constant" instead) since mkConst can be used to construct higher-order free constants.
Gereon Kremer [Fri, 1 Apr 2022 23:53:33 +0000 (01:53 +0200)]
Simplify the python base API in a few places (#8514)
This PR simplifies a few methods in the python base API.
Andrew Reynolds [Fri, 1 Apr 2022 23:23:18 +0000 (18:23 -0500)]
Simplifications to the datatypes API (#8511)
This PR makes it so that common users of the datatypes API do not need to use "unresolved" datatypes sorts. Instead, these are automatically inferred by the NodeManager when calling mkMutualDatatypeTypes.
API Changes:
(1) adds addSelectorUnresolved to DatatypeConstructorDecl, which is the sole method needed to specify ordinary recursive selectors.
(2) adds to unit test examples that use this variant instead of using unresolved sorts.
(3) the API method mkUnresolvedSort is renamed to mkUnresolvedDatatypeSort and is marked experimental.
Note that unresolved datatype sorts are still needed to support mixed parametric datatypes and nested recursive datatypes in the smt2 parser, so they cannot be deleted yet.
Followup PR will add to documentation on elaborate further on how to use the datatypes API.
Mathias Preiner [Fri, 1 Apr 2022 22:53:53 +0000 (15:53 -0700)]
docs: Document UnknownExplanation. (#8508)
Gereon Kremer [Fri, 1 Apr 2022 22:24:16 +0000 (00:24 +0200)]
Prevent using the coverings solver with extended operators (#8523)
The way we construct the model within the nonlinear extension makes using multiple subsolvers that contribute to the model potentially unsound. This PR prevent the coverings solver from being used if extended operators are present, unless --nl-cov-force is given.
Fixes #8515. Fixes #8516.
Aina Niemetz [Fri, 1 Apr 2022 22:03:58 +0000 (15:03 -0700)]
api kinds: Refactor docs for kinds to properly render in Python. (#8510)
Aina Niemetz [Fri, 1 Apr 2022 21:36:07 +0000 (14:36 -0700)]
api: Remove Datatype::getConstructorTerm(). (#8529)
Haniel Barbosa [Fri, 1 Apr 2022 20:29:41 +0000 (17:29 -0300)]
Replace regression by minimized one via ddSMT (#8531)
Gereon Kremer [Fri, 1 Apr 2022 20:29:24 +0000 (22:29 +0200)]
Only run pypi packaging when release is published (#8526)
We incorrectly triggered pypi packaging when a release was created or published, i.e. it would run twice.
Mathias Preiner [Fri, 1 Apr 2022 20:28:31 +0000 (13:28 -0700)]
make-release: Clarify instructions for pushing commits and tag. (#8524)
Haniel Barbosa [Fri, 1 Apr 2022 20:27:47 +0000 (17:27 -0300)]
[proofs] [doc] Document string rules (#8498)
Also replaces negation of equality literals by disequality literals.
Gereon Kremer [Fri, 1 Apr 2022 20:26:52 +0000 (22:26 +0200)]
Change CI concurrency policy to not queue on main (#8530)
Previously, we would only allow one job per branch/PR and only cancel old jobs on PRs.
This PR changes this policy to allow multiple jobs at once on main.
The way this is done basically follows https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-a-fallback-value.
Gereon Kremer [Fri, 1 Apr 2022 20:12:10 +0000 (22:12 +0200)]
Document special member functions in python API (#8513)
This PR documents relevant special member functions __getitem__ and __iter__ for some classes in the base python API.
Aina Niemetz [Fri, 1 Apr 2022 19:45:36 +0000 (12:45 -0700)]
Python API: Do not rename enumerators. (#8507)
Co-authored-by: Mathias Preiner <mathias.preiner@gmail.com>
Co-authored-by: mudathirmahgoub <mudathirmahgoub@gmail.com>
Co-authored-by: Gereon Kremer <gkremer@stanford.edu>
Haniel Barbosa [Fri, 1 Apr 2022 19:22:42 +0000 (16:22 -0300)]
[proofs] [alethe] Fix Alethe post-processor (#8525)
Previously the Alethe post-processor was merging subproofs, which should not be done at this stage. As a consequence some post-processed proofs were becoming open.
Mathias Preiner [Fri, 1 Apr 2022 18:18:09 +0000 (11:18 -0700)]
Start post-release for 0.0.10
Mathias Preiner [Fri, 1 Apr 2022 18:18:09 +0000 (11:18 -0700)]
Bump version to 0.0.10
Andrew Reynolds [Fri, 1 Apr 2022 18:16:43 +0000 (13:16 -0500)]
Internal simplifications to constructing datatypes (#8519)
In preparation for #8511.
This makes it so that unresolved sorts are automatically inferred when constructing datatypes at the NodeManager level. This is in preparation for simplifying the API.
Changes:
(1) NodeManager is cleaned so that unresolved types are automatically inferred and are not a part of its public interface. Internal code generating datatypes is simplified as a result.
(2) Adds necessary utilities to TypeNode and cleans an unused flag
(3) The parser is cleaned to not track unresolved sorts in an ad-hoc manner.
(4) The API is patched to use the simpler interface.
Gereon Kremer [Fri, 1 Apr 2022 17:33:03 +0000 (19:33 +0200)]
Fix pypi packaging trigger again (#8512)
Further workflows are not triggered when the GITHUB_TOKEN is used. This PR creates new releases using the ACTION_USER_TOKEN instead.
Haniel Barbosa [Fri, 1 Apr 2022 17:27:05 +0000 (14:27 -0300)]
[proofs] [doc] Minor changes to general proofs page, some changes to Alethe page, added DOT page (#8501)
Gereon Kremer [Fri, 1 Apr 2022 16:58:00 +0000 (18:58 +0200)]
Remove decorator from python API (#8505)
This PR removes the expand_list_arg decorator from the python API. It was used to allow calling a function f(x, *args) with a list as second argument and automatically expand the list into *args. While it merely allows for calling f(x, l) instead of f(x, *l), it adds considerable complexity to the code and documentation. Thus, following the Zen of python (have only one way to do it) we remove this decorator. This is also consistent with the pythonic API, were we made the same decision.
Andres Noetzli [Fri, 1 Apr 2022 16:26:14 +0000 (09:26 -0700)]
[API] Add mode argument for `Solver::blockModel()` (#8521)
This commit changes Solver::blockModel() to take a mode as an argument
instead of relying on an option.
Andres Noetzli [Fri, 1 Apr 2022 12:36:48 +0000 (05:36 -0700)]
Remove `UnknownExplanation::NO_STATUS` (#8518)
Result already supports storing a NONE result, so
UnknownExplanation::NO_STATUS seems redundant. This removes that
explanation, which was only being used in the optimization solver.
mudathirmahgoub [Fri, 1 Apr 2022 09:33:14 +0000 (04:33 -0500)]
Fix javadoc custom tag warning (#8502)
Fix this warning
Note: Custom tags that could override future standard tags: @apiNote. To avoid potential overrides, use at least one period character (.) in custom tag names.
Mathias Preiner [Fri, 1 Apr 2022 06:09:38 +0000 (23:09 -0700)]
docs: Add documentation for modes. (#8509)
Aina Niemetz [Fri, 1 Apr 2022 05:45:33 +0000 (22:45 -0700)]
Python api: Various fixes in docs. (#8480)
Andres Noetzli [Fri, 1 Apr 2022 04:50:25 +0000 (21:50 -0700)]
[API] Remove redundant version of `mkFunctionSort` (#8503)
mkFunctionSort that takes two sorts as arguments is redundant, because
the first argument is equivalent to a vector of size one passed to the
other overload of mkFunctionSort. This commit removes the method from
the C++ API but keeps the existing semantics for the Java and Python
bindings for convenience and consistency with, e.g. mkTerm.
Andrew Reynolds [Fri, 1 Apr 2022 04:25:05 +0000 (23:25 -0500)]
Fix sygus-inst when combined with bounded string quantifiers (#8500)
Strings introduces bounded quantified formulas for reasoning about extended functions. We should not process these with sygus-inst.
Fixes #8497.
Mathias Preiner [Fri, 1 Apr 2022 01:32:44 +0000 (18:32 -0700)]
api: Swap arguments of declareSygusVar. (#8499)
Make it consistent with other declare*/define* functions.