summaryrefslogtreecommitdiff
path: root/src/theory/strings/theory_strings.cpp
AgeCommit message (Collapse)Author
2018-09-18 Refactor strings extended functions inferences (#2480)Andrew Reynolds
This refactors the extended function inference step of TheoryStrings. It also generalizes a data member (d_pol) so that we track extended functions that are equal to constants for any type. This is in preparation for working on solving equations and further inferences in this style.
2018-09-18Decision strategy: incorporate strings fmf. (#2485)Andrew Reynolds
2018-09-17More aggressive skolem caching for strings, document and clean preprocessor ↵Andrew Reynolds
(#2478)
2018-09-17Make strings model construction robust to lengths that are not propagated ↵Andrew Reynolds
equal (#2444) This fixes #2429. This was caused by arithmetic not notifying an equality between shared terms that it assigned to the same value. See explanation in comment. We should investigate a bit more why this is happening. I didnt think arithmetic was allowed to assign the same value to unpropagated shared length terms. I've opened issue https://github.com/CVC4/CVC4/issues/2443 to track this. Regardless, the strings model construction should be robust to handle this case, which this PR does.
2018-09-14Add Skolem cache for strings, refactor length registration (#2457)Andrew Reynolds
This PR is in preparation for doing more aggressive caching of skolems (for example, in the strings preprocessor). It refactors sendLengthLemma -> registerLength, which unifies how length lemmas for skolems and other string terms are handled.
2018-09-11Fix for when strings process loop is disabled. (#2456)Andrew Reynolds
2018-08-30Add regular expression elimination module (#2400)Andrew Reynolds
2018-08-26Use uniform length limit for String constants (#2381)Andres Noetzli
2018-08-26Fix unsigned integer type issues in strings (#2380)Andrew Reynolds
* Fix unsigned integer types in strings. * Format
2018-08-23 Fixing some coverity warnings (#2357)Andrew Reynolds
2018-08-09 Fix char overflow issues in regular expression solver (#2275)Andrew Reynolds
2018-08-06Make flat form inferences optional in strings (#2277)Andrew Reynolds
2018-08-02Make strings robust to regular expression variables. (#2255)Andrew Reynolds
The theory solver for strings does not support regular expression variables. With this PR, we properly throw an exception if it is given one. However, the rewriter needs to handle regular expression variables (for various reasons: rewriting an expression before its asserted, sygus explanation generalization, etc.). This corrects a few miscellaneous issues in the strings rewriter to make it sound for these cases. It also corrects a seg fault in simpleRegexpConsume when testing memberships `(str.in.re "" R)`, where R is a *non-constant* regular expression (which will now be allowed if variables are allowed). This is in preparation for adding `RegLan` as a token to the smt2/sygus parsers.
2018-07-06Split ext theory to own file and document (#1809)Andrew Reynolds
2018-07-05 Make string length lemmas more robust to rewriting (#2150)Andrew Reynolds
2018-07-02Remove some dead code from theory strings (#2125)Andrew Reynolds
2018-06-25Updated copyright headers.Aina Niemetz
2018-05-21Infrastructure for strings strategies (#1883)Andrew Reynolds
2018-05-08Support for str.<= and str.< (#1882)Andrew Reynolds
2018-05-07Add support for str.code (#1821)Andrew Reynolds
2018-04-16Make 256 the default cardinality for strings (#1783)Andrew Reynolds
2018-04-15Make strings fmf apply to all but internally generated Skolems (#1780)Andrew Reynolds
2018-04-15Fix type error with regexp (#1778)Andrew Reynolds
2018-04-13Disable split for negative contains. (#1774)Andrew Reynolds
2018-03-25Cleanup various exit calls (#1692)Andrew Reynolds
2018-03-23Remove unused code (#1700)Andrew Reynolds
2018-03-21Fix for string disequality processing (#1679)Andrew Reynolds
2018-03-19Document inferences for strings (#1642)Andrew Reynolds
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-02-23Fix cd-simplification for strings (#1624)Andrew Reynolds
2018-02-22Minor improvements to string rewriter (#1572)Andrew Reynolds
2018-01-02Improve rewriter for string equality (#1427)Andrew Reynolds
2017-12-08Make collect model info return a Bool (#1421)Andrew Reynolds
2017-11-30Fixes for issue 1404 (#1409)Andrew Reynolds
2017-09-11Adding reasonable breaks in switch statement in ↵Tim King
TheoryStrings::normalizeRegexp. Minor code reorganization and applying clang-tidy to the function. (#1079)
2017-09-11Addressing a coverity scan complaint in theory_strings.cpp. I believe the ↵Tim King
root cause is that d_normal_forms_exp[r[0]] could have referred to different vectors (as operator[] is inserting for maps). (#1080)
2017-09-05Remove support for conversions between uint32/uint16 and string. (#1069)Andrew Reynolds
* Remove support for conversions between uint32/uint16 and string. * Temporarily disable regression.
2017-08-21Cleanup: use Assert rather than C assert. (#1052)Aina Niemetz
2017-07-29Add support for charat in native language, minor cleanup.ajreynol
2017-07-28Fix cache issues for cyclic string equations.ajreynol
2017-07-07Update copyright headers.Mathias Preiner
2017-05-10Do not split on cardinality for string equivalence classes with non-constant ↵ajreynol
lengths if disequalities already imply sufficient lower bound. Fixes bug 799.
2017-04-04Simplify Theory::collectModelInfo interface to not take deprecated fullModel ↵ajreynol
argument.
2017-03-27Minor cleanups to ExtTheory.Tim King
2017-03-27Making the ExtTheory object a private member of Theory.Tim King
2017-03-22Fix more cases of rewritten explanations in strings for bug 784. Minor.ajreynol
2017-03-21Improve computeCareGraph functions to check shared term equality status once ↵ajreynol
per equivalence class pair.
2017-03-03Fix for collectModelInfo related to finite types + preregistration. ↵ajreynol
Generalize previous fix for sets, minor changes to Datatypes.
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.
2017-01-30Fix regexp cache issue in strings, add regression.ajreynol
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback