Documentation
Init
.
Data
.
String
.
Lemmas
.
Pattern
.
TakeDrop
.
String
Search
return to top
source
Imports
Init.Data.List.Sublist
Init.Data.Option.Lemmas
Init.Data.String.Slice
Init.Data.String.TakeDrop
Init.Data.String.Lemmas.Basic
Init.Data.String.Lemmas.Splits
Init.Data.String.Lemmas.Pattern.String
Init.Data.String.Lemmas.Pattern.TakeDrop.Basic
Imported by
String
.
Slice
.
skipPrefix?_slice_of_isEmpty
String
.
Slice
.
skipPrefix?_slice_eq_some_iff
String
.
Slice
.
startsWith_slice_of_isEmpty
String
.
Slice
.
startsWith_slice_iff
String
.
Slice
.
startsWith_slice_eq_false_iff
String
.
Slice
.
dropPrefix?_slice_of_isEmpty
String
.
Slice
.
eq_append_of_dropPrefix?_slice_eq_some
String
.
Slice
.
skipPrefix?_string_eq_some_iff
String
.
Slice
.
skipPrefix?_string_empty
String
.
Slice
.
startsWith_string_iff
String
.
Slice
.
startsWith_string_empty
String
.
Slice
.
startsWith_string_eq_false_iff
String
.
Slice
.
dropPrefix?_string_empty
String
.
Slice
.
eq_append_of_dropPrefix?_string_eq_some
String
.
Slice
.
skipSuffix?_slice_of_isEmpty
String
.
Slice
.
skipSuffix?_slice_eq_some_iff
String
.
Slice
.
endsWith_slice_of_isEmpty
String
.
Slice
.
endsWith_slice_iff
String
.
Slice
.
endsWith_slice_eq_false_iff
String
.
Slice
.
dropSuffix?_slice_of_isEmpty
String
.
Slice
.
eq_append_of_dropSuffix?_slice_eq_some
String
.
Slice
.
skipSuffix?_string_eq_some_iff'
String
.
Slice
.
skipSuffix?_string_empty
String
.
Slice
.
endsWith_string_iff
String
.
Slice
.
endsWith_string_empty
String
.
Slice
.
endsWith_string_eq_false_iff
String
.
Slice
.
dropSuffix?_string_empty
String
.
Slice
.
eq_append_of_dropSuffix?_string_eq_some
String
.
skipPrefix?_slice_of_isEmpty
String
.
skipPrefix?_slice_eq_some_iff
String
.
startsWith_slice_of_isEmpty
String
.
startsWith_slice_iff
String
.
startsWith_slice_eq_false_iff
String
.
dropPrefix?_slice_of_isEmpty
String
.
eq_append_of_dropPrefix?_slice_eq_some
String
.
skipPrefix?_string_empty
String
.
skipPrefix?_string_eq_some_iff
String
.
startsWith_string_empty
String
.
startsWith_string_iff
String
.
startsWith_string_eq_false_iff
String
.
dropPrefix?_string_empty
String
.
eq_append_of_dropPrefix?_string_eq_some
source
theorem
String
.
Slice
.
skipPrefix?_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
skipPrefix?
pat
=
some
s
.
startPos
source
@[simp]
theorem
String
.
Slice
.
skipPrefix?_slice_eq_some_iff
{
pat
s
:
Slice
}
{
pos
:
s
.
Pos
}
:
s
.
skipPrefix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
pat
.
copy
t
source
theorem
String
.
Slice
.
startsWith_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
startsWith
pat
=
true
source
@[simp]
theorem
String
.
Slice
.
startsWith_slice_iff
{
pat
s
:
Slice
}
:
s
.
startsWith
pat
=
true
↔
pat
.
copy
.
toList
<+:
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
startsWith_slice_eq_false_iff
{
pat
s
:
Slice
}
:
s
.
startsWith
pat
=
false
↔
¬
pat
.
copy
.
toList
<+:
s
.
copy
.
toList
source
theorem
String
.
Slice
.
dropPrefix?_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
dropPrefix?
pat
=
some
s
source
theorem
String
.
Slice
.
eq_append_of_dropPrefix?_slice_eq_some
{
pat
s
res
:
Slice
}
(
h
:
s
.
dropPrefix?
pat
=
some
res
)
:
s
.
copy
=
pat
.
copy
++
res
.
copy
source
@[simp]
theorem
String
.
Slice
.
skipPrefix?_string_eq_some_iff
{
pat
:
String
}
{
s
:
Slice
}
{
pos
:
s
.
Pos
}
:
s
.
skipPrefix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
pat
t
source
@[simp]
theorem
String
.
Slice
.
skipPrefix?_string_empty
{
s
:
Slice
}
:
s
.
skipPrefix?
""
=
some
s
.
startPos
source
@[simp]
theorem
String
.
Slice
.
startsWith_string_iff
{
pat
:
String
}
{
s
:
Slice
}
:
s
.
startsWith
pat
=
true
↔
pat
.
toList
<+:
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
startsWith_string_empty
{
s
:
Slice
}
:
s
.
startsWith
""
=
true
source
@[simp]
theorem
String
.
Slice
.
startsWith_string_eq_false_iff
{
pat
:
String
}
{
s
:
Slice
}
:
s
.
startsWith
pat
=
false
↔
¬
pat
.
toList
<+:
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
dropPrefix?_string_empty
{
s
:
Slice
}
:
s
.
dropPrefix?
""
=
some
s
source
theorem
String
.
Slice
.
eq_append_of_dropPrefix?_string_eq_some
{
pat
:
String
}
{
s
res
:
Slice
}
(
h
:
s
.
dropPrefix?
pat
=
some
res
)
:
s
.
copy
=
pat
++
res
.
copy
source
theorem
String
.
Slice
.
skipSuffix?_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
skipSuffix?
pat
=
some
s
.
endPos
source
@[simp]
theorem
String
.
Slice
.
skipSuffix?_slice_eq_some_iff
{
pat
s
:
Slice
}
{
pos
:
s
.
Pos
}
:
s
.
skipSuffix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
t
pat
.
copy
source
theorem
String
.
Slice
.
endsWith_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
endsWith
pat
=
true
source
@[simp]
theorem
String
.
Slice
.
endsWith_slice_iff
{
pat
s
:
Slice
}
:
s
.
endsWith
pat
=
true
↔
pat
.
copy
.
toList
<:+
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
endsWith_slice_eq_false_iff
{
pat
s
:
Slice
}
:
s
.
endsWith
pat
=
false
↔
¬
pat
.
copy
.
toList
<:+
s
.
copy
.
toList
source
theorem
String
.
Slice
.
dropSuffix?_slice_of_isEmpty
{
pat
s
:
Slice
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
dropSuffix?
pat
=
some
s
source
theorem
String
.
Slice
.
eq_append_of_dropSuffix?_slice_eq_some
{
pat
s
res
:
Slice
}
(
h
:
s
.
dropSuffix?
pat
=
some
res
)
:
s
.
copy
=
res
.
copy
++
pat
.
copy
source
@[simp]
theorem
String
.
Slice
.
skipSuffix?_string_eq_some_iff'
{
pat
:
String
}
{
s
:
Slice
}
{
pos
:
s
.
Pos
}
:
s
.
skipSuffix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
t
pat
source
@[simp]
theorem
String
.
Slice
.
skipSuffix?_string_empty
{
s
:
Slice
}
:
s
.
skipSuffix?
""
=
some
s
.
endPos
source
@[simp]
theorem
String
.
Slice
.
endsWith_string_iff
{
pat
:
String
}
{
s
:
Slice
}
:
s
.
endsWith
pat
=
true
↔
pat
.
toList
<:+
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
endsWith_string_empty
{
s
:
Slice
}
:
s
.
endsWith
""
=
true
source
@[simp]
theorem
String
.
Slice
.
endsWith_string_eq_false_iff
{
pat
:
String
}
{
s
:
Slice
}
:
s
.
endsWith
pat
=
false
↔
¬
pat
.
toList
<:+
s
.
copy
.
toList
source
@[simp]
theorem
String
.
Slice
.
dropSuffix?_string_empty
{
s
:
Slice
}
:
s
.
dropSuffix?
""
=
some
s
source
theorem
String
.
Slice
.
eq_append_of_dropSuffix?_string_eq_some
{
pat
:
String
}
{
s
res
:
Slice
}
(
h
:
s
.
dropSuffix?
pat
=
some
res
)
:
s
.
copy
=
res
.
copy
++
pat
source
theorem
String
.
skipPrefix?_slice_of_isEmpty
{
pat
:
Slice
}
{
s
:
String
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
skipPrefix?
pat
=
some
s
.
startPos
source
@[simp]
theorem
String
.
skipPrefix?_slice_eq_some_iff
{
pat
:
Slice
}
{
s
:
String
}
{
pos
:
s
.
Pos
}
:
s
.
skipPrefix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
pat
.
copy
t
source
theorem
String
.
startsWith_slice_of_isEmpty
{
pat
:
Slice
}
{
s
:
String
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
startsWith
pat
=
true
source
@[simp]
theorem
String
.
startsWith_slice_iff
{
pat
:
Slice
}
{
s
:
String
}
:
s
.
startsWith
pat
=
true
↔
pat
.
copy
.
toList
<+:
s
.
toList
source
@[simp]
theorem
String
.
startsWith_slice_eq_false_iff
{
pat
:
Slice
}
{
s
:
String
}
:
s
.
startsWith
pat
=
false
↔
¬
pat
.
copy
.
toList
<+:
s
.
toList
source
theorem
String
.
dropPrefix?_slice_of_isEmpty
{
pat
:
Slice
}
{
s
:
String
}
(
hpat
:
pat
.
isEmpty
=
true
)
:
s
.
dropPrefix?
pat
=
some
s
.
toSlice
source
theorem
String
.
eq_append_of_dropPrefix?_slice_eq_some
{
pat
res
:
Slice
}
{
s
:
String
}
(
h
:
s
.
dropPrefix?
pat
=
some
res
)
:
s
=
pat
.
copy
++
res
.
copy
source
@[simp]
theorem
String
.
skipPrefix?_string_empty
{
s
:
String
}
:
s
.
skipPrefix?
""
=
some
s
.
startPos
source
@[simp]
theorem
String
.
skipPrefix?_string_eq_some_iff
{
pat
s
:
String
}
{
pos
:
s
.
Pos
}
:
s
.
skipPrefix?
pat
=
some
pos
↔
∃
(
t
:
String
)
,
pos
.
Splits
pat
t
source
@[simp]
theorem
String
.
startsWith_string_empty
{
s
:
String
}
:
s
.
startsWith
""
=
true
source
@[simp]
theorem
String
.
startsWith_string_iff
{
pat
s
:
String
}
:
s
.
startsWith
pat
=
true
↔
pat
.
toList
<+:
s
.
toList
source
@[simp]
theorem
String
.
startsWith_string_eq_false_iff
{
pat
s
:
String
}
:
s
.
startsWith
pat
=
false
↔
¬
pat
.
toList
<+:
s
.
toList
source
@[simp]
theorem
String
.
dropPrefix?_string_empty
{
s
:
String
}
:
s
.
dropPrefix?
""
=
some
s
.
toSlice
source
theorem
String
.
eq_append_of_dropPrefix?_string_eq_some
{
s
pat
:
String
}
{
res
:
Slice
}
(
h
:
s
.
dropPrefix?
pat
=
some
res
)
:
s
=
pat
++
res
.
copy