summaryrefslogtreecommitdiff
path: root/src/theory/evaluator.cpp
AgeCommit message (Collapse)Author
2020-12-14Fix and improve evaluator (#5563)Andrew Reynolds
This fixes a segfault in the evaluator for substitutions of the form x -> t where t is not constant. This consolidates 2 cases where we did not evaluate children (when we are variable or are an application term with an unevaluated child). This was problematic previously since we would access children of currNode instead of currNodeVal. This also makes our handling of APPLY_UF more consistent, so that it is added to the main switch statement.
2020-09-22Update copyright header script to support CMake and Python files (#5067)Mathias Preiner
This PR updates the update-copyright.pl script to also update/add copyright headers to CMake specific files. It further fixes a small typo in the header.
2020-07-21Support uninterpreted constants in the evaluator (#4777)Andrew Reynolds
2020-07-12Add support for string/sequence update (#4725)Andrew Reynolds
This adds basic support for string/sequence updating, which has a semantics that is length preserving.
2020-07-01(proof-new) Updates to evaluator (#4659)Andrew Reynolds
This will be required to separate "evaluation steps" from "rewrite steps" when reconstructing proofs of rewrites.
2020-06-16Update copyright headers.Aina Niemetz
2020-03-27Support unicode internal representation and escape sequences (#3852)Andrew Reynolds
Work towards support for the strings standard. This updates the string solver and parser such that: The internal representation of strings is vectors of code points, Generation of the previous internal representation of strings has been relegated to the type enumerator. This is the code that ensures that "A" is the first character chosen for values of strings in models, The previous ad-hoc escape sequence handling is moved from the String class to the parser. It will live there for at least one version of CVC4, until we no longer support non-smt-lib complaint escape sequences or non-printable characters in strings, Handle unicode escape sequences according to the SMT-LIB standard in String, Simplify a number of calls to String utility functions, since the conversion between the previous internal format and code points is now unnecessary, Fixed a bug in the handling of TO_CODE: it should be based on the alphabet cardinality, not the number of internal code points.
2020-02-28Add support for str.from_code (#3829)Andres Noetzli
This commit adds support for `str.from_code`. This is work towards supporting the new strings standard. The code currently just does an eager expansion of the operator. The commit also renames `STRING_CODE` to `STRING_TO_CODE` to better reflect the names of the operators in the new standard.
2020-01-30External cache argument for evaluator (#3672)Andrew Reynolds
2019-12-16Use the evaluator utility in the function definition evaluator (#3576)Andrew Reynolds
Improves performance on ground conjectures with recursive functions. We use the evalutator to (partially) evaluate bodies of recursive functions, instead of relying on substitution+rewriting.
2019-12-16Fix evaluator for non-evaluatable nodes (#3575)Andrew Reynolds
This ensures that the Evaluator always returns the result of substitution + rewriting for constant substitutions. This requires a few further extensions to the code, namely: (1) Applying substutitions to operators, (2) Reconstructing all nodes that fail to evaluate by taking into account evaluation of their children.
2019-12-16Revert evaluate as node. (#3574)Andrew Reynolds
2019-12-15Minor improvement to evaluator (#3570)Andrew Reynolds
Fixes a bug where we don't return the partially evaluated version (for unevaluatable nodes). Also adds `NONLINEAR_MULT` whose semantics is identical to `MULT`.
2019-12-10Incorporate rewriting on demand in the evaluator (#3549)Andrew Reynolds
2019-07-31Add some missing cases in evaluator (#3133)Andrew Reynolds
2019-03-26Update copyright headers.Aina Niemetz
2018-11-07Evaluator: add support for str.code (#2696)Andres Noetzli
2018-09-18Fix issue with str.idof in evaluator (#2493)Andres Noetzli
2018-08-27Remove dead code in evaluator (#2389)Andres Noetzli
This should fix Coverity issue 1470214.
2018-08-01Fix wrong evaluation of STRING_STOI (#2252)Andres Noetzli
2018-07-26 Fix a few issues in the sygus sampler related to evaluation (#2215)Andrew Reynolds
2018-06-26sygusComp2018: Add evaluator (#2090)Andres Noetzli
This commit adds the Evaluator class that can be used to quickly evaluate terms under a given substitution without going through the rewriter. This has been shown to lead to significant performance improvements on SyGuS PBE problems with a large number of inputs because candidate solutions are evaluated on those inputs. With this commit, the evaluator only gets called from the SyGuS solver but there are potentially other places in the code that could profit from it.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback