Splits predicates on String.Pos and String.Slice.Pos. #
We introduce the predicate p.Splits t₁ t₂ for a position p on a string or slice s, which means
that s = t₁ ++ t₂ with p lying between the two parts. This is a useful primitive when verifying
string operations.
theorem
String.Pos.Splits.toByteArray_left_eq
{s : String}
{p : s.Pos}
{t₁ t₂ : String}
(h : p.Splits t₁ t₂)
:
theorem
String.Pos.Splits.toByteArray_right_eq
{s : String}
{p : s.Pos}
{t₁ t₂ : String}
(h : p.Splits t₁ t₂)
: