Documentation
Init
.
Data
.
String
.
Lemmas
.
IsEmpty
Search
return to top
source
Imports
Init.Grind
Init.Data.String.Basic
Init.Data.String.Defs
Init.Data.String.OrderInstances
Init.Data.String.Lemmas.Basic
Init.Data.String.Lemmas.Order
Imported by
String
.
Slice
.
isEmpty_eq
String
.
Slice
.
isEmpty_iff
String
.
Slice
.
startPos_eq_endPos_iff
String
.
Slice
.
startPos_ne_endPos_iff
String
.
Slice
.
startPos_ne_endPos
String
.
Slice
.
isEmpty_iff_forall_eq
String
.
Slice
.
isEmpty_eq_false_of_lt
String
.
Slice
.
isEmpty_sliceFrom
String
.
Slice
.
isEmpty_sliceFrom_eq_false_iff
String
.
Slice
.
isEmpty_sliceTo
String
.
Slice
.
isEmpty_sliceTo_eq_false_iff
String
.
isEmpty_eq_utf8ByteSize_beq_zero
String
.
isEmpty_iff_utf8ByteSize_eq_zero
String
.
isEmpty_iff
String
.
startPos_ne_endPos_iff
String
.
startPos_ne_endPos
String
.
isEmpty_toSlice
String
.
isEmpty_toSlice_iff
String
.
Slice
.
isEmpty_copy
String
.
Slice
.
copy_eq_empty_iff
String
.
Slice
.
copy_ne_empty_iff
String
.
eq_empty_iff_forall_eq
String
.
ne_empty_of_lt
String
.
isEmpty_sliceFrom
String
.
isEmpty_sliceFrom_eq_false_iff
String
.
isEmpty_sliceTo
String
.
isEmpty_sliceTo_eq_false_iff
String
.
isEmpty_slice
String
.
isEmpty_slice_eq_false_iff
String
.
Slice
.
isEmpty_slice
String
.
Slice
.
isEmpty_slice_eq_false_iff
String
.
length_eq_zero_iff
String
.
toByteArray_eq_empty_iff
String
.
Slice
.
toByteArray_copy_eq_empty_iff
String
.
Slice
.
toByteArray_copy_ne_empty_iff
source
theorem
String
.
Slice
.
isEmpty_eq
{
s
:
Slice
}
:
s
.
isEmpty
=
(
s
.
utf8ByteSize
==
0
)
source
theorem
String
.
Slice
.
isEmpty_iff
{
s
:
Slice
}
:
s
.
isEmpty
=
true
↔
s
.
utf8ByteSize
=
0
source
theorem
String
.
Slice
.
startPos_eq_endPos_iff
{
s
:
Slice
}
:
s
.
startPos
=
s
.
endPos
↔
s
.
isEmpty
=
true
source
theorem
String
.
Slice
.
startPos_ne_endPos_iff
{
s
:
Slice
}
:
s
.
startPos
≠
s
.
endPos
↔
s
.
isEmpty
=
false
source
theorem
String
.
Slice
.
startPos_ne_endPos
{
s
:
Slice
}
:
s
.
isEmpty
=
false
→
s
.
startPos
≠
s
.
endPos
source
theorem
String
.
Slice
.
isEmpty_iff_forall_eq
{
s
:
Slice
}
:
s
.
isEmpty
=
true
↔
∀ (
p
q
:
s
.
Pos
),
p
=
q
source
theorem
String
.
Slice
.
isEmpty_eq_false_of_lt
{
s
:
Slice
}
{
p
q
:
s
.
Pos
}
:
p
<
q
→
s
.
isEmpty
=
false
source
@[simp]
theorem
String
.
Slice
.
isEmpty_sliceFrom
{
s
:
Slice
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceFrom
p
)
.
isEmpty
=
true
↔
p
=
s
.
endPos
source
@[simp]
theorem
String
.
Slice
.
isEmpty_sliceFrom_eq_false_iff
{
s
:
Slice
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceFrom
p
)
.
isEmpty
=
false
↔
p
≠
s
.
endPos
source
@[simp]
theorem
String
.
Slice
.
isEmpty_sliceTo
{
s
:
Slice
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceTo
p
)
.
isEmpty
=
true
↔
p
=
s
.
startPos
source
@[simp]
theorem
String
.
Slice
.
isEmpty_sliceTo_eq_false_iff
{
s
:
Slice
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceTo
p
)
.
isEmpty
=
false
↔
p
≠
s
.
startPos
source
theorem
String
.
isEmpty_eq_utf8ByteSize_beq_zero
{
s
:
String
}
:
s
.
isEmpty
=
(
s
.
utf8ByteSize
==
0
)
source
theorem
String
.
isEmpty_iff_utf8ByteSize_eq_zero
{
s
:
String
}
:
s
.
isEmpty
=
true
↔
s
.
utf8ByteSize
=
0
source
@[simp]
theorem
String
.
isEmpty_iff
{
s
:
String
}
:
s
.
isEmpty
=
true
↔
s
=
""
source
theorem
String
.
startPos_ne_endPos_iff
{
s
:
String
}
:
s
.
startPos
≠
s
.
endPos
↔
s
≠
""
source
theorem
String
.
startPos_ne_endPos
{
s
:
String
}
:
s
≠
""
→
s
.
startPos
≠
s
.
endPos
source
@[simp]
theorem
String
.
isEmpty_toSlice
{
s
:
String
}
:
s
.
toSlice
.
isEmpty
=
s
.
isEmpty
source
theorem
String
.
isEmpty_toSlice_iff
{
s
:
String
}
:
s
.
toSlice
.
isEmpty
=
true
↔
s
=
""
source
theorem
String
.
Slice
.
isEmpty_copy
{
s
:
Slice
}
:
s
.
copy
.
isEmpty
=
s
.
isEmpty
source
@[simp]
theorem
String
.
Slice
.
copy_eq_empty_iff
{
s
:
Slice
}
:
s
.
copy
=
""
↔
s
.
isEmpty
=
true
source
theorem
String
.
Slice
.
copy_ne_empty_iff
{
s
:
Slice
}
:
s
.
copy
≠
""
↔
s
.
isEmpty
=
false
source
theorem
String
.
eq_empty_iff_forall_eq
{
s
:
String
}
:
s
=
""
↔
∀ (
p
q
:
s
.
Pos
),
p
=
q
source
theorem
String
.
ne_empty_of_lt
{
s
:
String
}
{
p
q
:
s
.
Pos
}
:
p
<
q
→
s
≠
""
source
@[simp]
theorem
String
.
isEmpty_sliceFrom
{
s
:
String
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceFrom
p
)
.
isEmpty
=
true
↔
p
=
s
.
endPos
source
@[simp]
theorem
String
.
isEmpty_sliceFrom_eq_false_iff
{
s
:
String
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceFrom
p
)
.
isEmpty
=
false
↔
p
≠
s
.
endPos
source
@[simp]
theorem
String
.
isEmpty_sliceTo
{
s
:
String
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceTo
p
)
.
isEmpty
=
true
↔
p
=
s
.
startPos
source
@[simp]
theorem
String
.
isEmpty_sliceTo_eq_false_iff
{
s
:
String
}
{
p
:
s
.
Pos
}
:
(
s
.
sliceTo
p
)
.
isEmpty
=
false
↔
p
≠
s
.
startPos
source
@[simp]
theorem
String
.
isEmpty_slice
{
s
:
String
}
{
p₁
p₂
:
s
.
Pos
}
{
h
:
p₁
≤
p₂
}
:
(
s
.
slice
p₁
p₂
h
)
.
isEmpty
=
true
↔
p₁
=
p₂
source
@[simp]
theorem
String
.
isEmpty_slice_eq_false_iff
{
s
:
String
}
{
p₁
p₂
:
s
.
Pos
}
{
h
:
p₁
≤
p₂
}
:
(
s
.
slice
p₁
p₂
h
)
.
isEmpty
=
false
↔
p₁
≠
p₂
source
@[simp]
theorem
String
.
Slice
.
isEmpty_slice
{
s
:
Slice
}
{
p₁
p₂
:
s
.
Pos
}
{
h
:
p₁
≤
p₂
}
:
(
s
.
slice
p₁
p₂
h
)
.
isEmpty
=
true
↔
p₁
=
p₂
source
@[simp]
theorem
String
.
Slice
.
isEmpty_slice_eq_false_iff
{
s
:
Slice
}
{
p₁
p₂
:
s
.
Pos
}
{
h
:
p₁
≤
p₂
}
:
(
s
.
slice
p₁
p₂
h
)
.
isEmpty
=
false
↔
p₁
≠
p₂
source
@[simp]
theorem
String
.
length_eq_zero_iff
{
s
:
String
}
:
s
.
length
=
0
↔
s
=
""
source
@[simp]
theorem
String
.
toByteArray_eq_empty_iff
{
s
:
String
}
:
s
.
toByteArray
=
ByteArray.empty
↔
s
=
""
source
theorem
String
.
Slice
.
toByteArray_copy_eq_empty_iff
{
s
:
Slice
}
:
s
.
copy
.
toByteArray
=
ByteArray.empty
↔
s
.
isEmpty
=
true
source
theorem
String
.
Slice
.
toByteArray_copy_ne_empty_iff
{
s
:
Slice
}
:
s
.
copy
.
toByteArray
≠
ByteArray.empty
↔
s
.
isEmpty
=
false