This PR verifies all of the `String` iterators except for the bytes iterator by relating them to `String.toList`. Along the way we define `String.posLE` and `String.posLT` analogously to `String.posGE` and `String.posGT` and redefine `String.prev` to go through `String.posLT`. We also define and verify `String.positionsFrom` and `String.revPositionsFrom`, which are the obvious generaliziations of `String.positions` and `String.revPositions` starting at a positions other than the start/end. Finally, we get various lemmas about strings and positions, including some nice induction principles `String.Pos.next_induction` and `String.Pos.prev_induction`. Of course, we also have all of the analogous results for `String.Slice`. |
||
|---|---|---|
| .. | ||
| bench | ||
| bench-radar | ||
| compiler | ||
| elabissues | ||
| ir | ||
| lake | ||
| lean | ||
| pkg | ||
| playground | ||
| plugin | ||
| simpperf | ||
| .gitignore | ||
| CMakeLists.txt | ||
| common.sh | ||
| lakefile.toml | ||
| lean-toolchain | ||