@kha: I initially planned to use the UTF8 API only in very special cases, but I found them to be super useful. They allow us to implement an efficient String library mostly in Lean. However, the there was a problem: `abbrev String.Pos := USize`. This definition is fine for a low level API, but this is not the case anymore. By having `String.Pos := USize`, we will not be able to prove natural theorems for the `String` API. For example, `String.map id s = s` did not hold. We would have to include the artificial antecedent `s.length <= usizeMax` (or something like this). I suspect it would be very painful. So, this commit defines `String.Pos` as `Nat`. The performance overhead seems to be very small. |
||
|---|---|---|
| .. | ||
| init | ||
| leanpkg.path | ||
| library.md | ||
| Makefile.in | ||
| relative.py | ||