Documentation
Init
.
Data
.
String
.
Lemmas
.
Intercalate
Search
return to top
source
Imports
Init.ByCases
Init.Data.String.Defs
Init.Data.String.Slice
Imported by
String
.
intercalate_nil
String
.
intercalate_singleton
String
.
intercalate_cons_cons
String
.
intercalate_cons_append
String
.
intercalate_cons_of_ne_nil
String
.
intercalate_append_of_ne_nil
String
.
toList_intercalate
String
.
join_eq_foldl
String
.
join_nil
String
.
join_cons
String
.
toList_join
String
.
appendSlice_eq
String
.
Slice
.
intercalate_eq
String
.
Slice
.
join_eq
source
@[simp]
theorem
String
.
intercalate_nil
{
s
:
String
}
:
s
.
intercalate
[
]
=
""
source
@[simp]
theorem
String
.
intercalate_singleton
{
s
t
:
String
}
:
s
.
intercalate
[
t
]
=
t
source
@[simp]
theorem
String
.
intercalate_cons_cons
{
s
t
u
:
String
}
{
l
:
List
String
}
:
s
.
intercalate
(
t
::
u
::
l
)
=
t
++
s
++
s
.
intercalate
(
u
::
l
)
source
@[simp]
theorem
String
.
intercalate_cons_append
{
s
t
u
:
String
}
{
l
:
List
String
}
:
s
.
intercalate
((
t
++
u
)
::
l
)
=
t
++
s
.
intercalate
(
u
::
l
)
source
theorem
String
.
intercalate_cons_of_ne_nil
{
s
t
:
String
}
{
l
:
List
String
}
(
h
:
l
≠
[
]
)
:
s
.
intercalate
(
t
::
l
)
=
t
++
s
++
s
.
intercalate
l
source
theorem
String
.
intercalate_append_of_ne_nil
{
l
m
:
List
String
}
{
s
:
String
}
(
hl
:
l
≠
[
]
)
(
hm
:
m
≠
[
]
)
:
s
.
intercalate
(
l
++
m
)
=
s
.
intercalate
l
++
s
++
s
.
intercalate
m
source
@[simp]
theorem
String
.
toList_intercalate
{
s
:
String
}
{
l
:
List
String
}
:
(
s
.
intercalate
l
)
.
toList
=
s
.
toList
.
intercalate
(
List.map
toList
l
)
source
theorem
String
.
join_eq_foldl
{
l
:
List
String
}
:
join
l
=
List.foldl
(fun (
r
s
:
String
) =>
r
++
s
)
""
l
source
@[simp]
theorem
String
.
join_nil
:
join
[
]
=
""
source
@[simp]
theorem
String
.
join_cons
{
s
:
String
}
{
l
:
List
String
}
:
join
(
s
::
l
)
=
s
++
join
l
source
@[simp]
theorem
String
.
toList_join
{
l
:
List
String
}
:
(
join
l
)
.
toList
=
List.flatMap
toList
l
source
@[simp]
theorem
String
.
appendSlice_eq
{
s
:
String
}
{
t
:
Slice
}
:
s
++
t
=
s
++
t
.
copy
source
@[simp]
theorem
String
.
Slice
.
intercalate_eq
{
s
:
Slice
}
{
l
:
List
Slice
}
:
s
.
intercalate
l
=
s
.
copy
.
intercalate
(
List.map
copy
l
)
source
@[simp]
theorem
String
.
Slice
.
join_eq
{
l
:
List
Slice
}
:
join
l
=
String.join
(
List.map
copy
l
)