This PR adds initial support for strings functions. We face 3 problems when we generate queries for string theorems:
String theory in SMT-LIB does not support a character type. Those are converted into codepoints using str.to_code instead.
Not all string functions in Lean have an obvious corresponding function in SMT-LIB, and vice versa. For those, we need to be careful not introduce any soundness bug in the translation.
Many string functions in Lean are partial, so we cannot prove theorems that make use of them in Lean anyways.
This PR adds initial support for strings functions. We face 3 problems when we generate queries for string theorems:
str.to_code
instead.partial
, so we cannot prove theorems that make use of them in Lean anyways.