Documentation
Regex
.
Data
.
List
.
Lemmas
Search
return to top
source
Imports
Init
Batteries.Data.Fin.Lemmas
Batteries.Data.List.Basic
Batteries.Data.List.Lemmas
Batteries.Data.Nat.Lemmas
Init.Data.Int.Lemmas
Regex.Data.Nat.Basic
Imported by
List
.
singleton_val_of
List
.
singleton_val
List
.
get_of_fun_eq
List
.
eq_of_dropLast_eq_last_eq
List
.
get_last_of_concat
List
.
eq_succ_of_tail_nth
List
.
eq_succ_of_tail_nth_pred
List
.
chain_split
List
.
chain_append_cons_cons
List
.
chain_iff_get
source
theorem
List
.
singleton_val_of
{α :
Type
u_1}
(a :
α
)
(arr :
List
α
)
(h1 :
arr
=
[
a
]
)
(h2 :
0
<
arr
.length
)
:
arr
.get
⟨
0
,
h2
⟩
=
a
source
theorem
List
.
singleton_val
{α :
Type
u_1}
(a :
α
)
(h :
0
<
[
a
]
.length
)
:
[
a
]
.get
⟨
0
,
h
⟩
=
a
source
theorem
List
.
get_of_fun_eq
{α :
Type
u_1}
{l1 l2 :
List
α
}
{f :
List
α
→
List
α
}
(h :
f
l1
=
f
l2
)
(n :
Fin
(
f
l1
)
.length
)
:
(
f
l1
)
.get
n
=
(
f
l2
)
.get
⟨
↑
n
,
⋯
⟩
source
theorem
List
.
eq_of_dropLast_eq_last_eq
{α :
Type
u_1}
{l1 l2 :
List
α
}
(hd :
l1
.dropLast
=
l2
.dropLast
)
(hl1 :
l1
.length
-
1
<
l1
.length
)
(hl2 :
l2
.length
-
1
<
l2
.length
)
(heq :
l1
.get
⟨
l1
.length
-
1
,
hl1
⟩
=
l2
.get
⟨
l2
.length
-
1
,
hl2
⟩
)
:
l1
=
l2
source
theorem
List
.
get_last_of_concat
{α :
Type
u_1}
{last :
α
}
{l :
List
α
}
(h :
(
l
++
[
last
]
)
.length
-
1
<
(
l
++
[
last
]
)
.length
)
:
(
l
++
[
last
]
)
.get
⟨
(
l
++
[
last
]
)
.length
-
1
,
h
⟩
=
last
source
theorem
List
.
eq_succ_of_tail_nth
{α :
Type
u_1}
{n :
Nat
}
{head :
α
}
{tail :
List
α
}
(data :
List
α
)
(h1 :
n
+
1
<
data
.length
)
(h2 :
data
=
head
::
tail
)
(h3 :
n
<
tail
.length
)
:
tail
.get
⟨
n
,
h3
⟩
=
data
.get
⟨
n
+
1
,
h1
⟩
source
theorem
List
.
eq_succ_of_tail_nth_pred
{α :
Type
u_1}
{n :
Nat
}
{head :
α
}
{tail :
List
α
}
(data :
List
α
)
(h0 :
n
≠
0
)
(h1 :
n
<
data
.length
)
(h2 :
data
=
head
::
tail
)
(h3 :
n
-
1
<
tail
.length
)
:
tail
.get
⟨
n
-
1
,
h3
⟩
=
data
.get
⟨
n
,
h1
⟩
source
theorem
List
.
chain_split
{α :
Type
u_1}
{R :
α
→
α
→
Prop
}
{a b :
α
}
{l₁ l₂ :
List
α
}
:
Chain
R
a
(
l₁
++
b
::
l₂
)
↔
Chain
R
a
(
l₁
++
[
b
]
)
∧
Chain
R
b
l₂
source
theorem
List
.
chain_append_cons_cons
{α :
Type
u_1}
{R :
α
→
α
→
Prop
}
{a b c :
α
}
{l₁ l₂ :
List
α
}
:
Chain
R
a
(
l₁
++
b
::
c
::
l₂
)
↔
Chain
R
a
(
l₁
++
[
b
]
)
∧
R
b
c
∧
Chain
R
c
l₂
source
theorem
List
.
chain_iff_get
{α :
Type
u_1}
{R :
α
→
α
→
Prop
}
{a :
α
}
{l :
List
α
}
:
Chain
R
a
l
↔
(∀ (
h
:
0
<
l
.length
),
R
a
(
l
.get
⟨
0
,
h
⟩
)
)
∧
∀ (
i
:
Nat
) (
h
:
i
<
l
.length
-
1
),
R
(
l
.get
⟨
i
,
⋯
⟩
)
(
l
.get
⟨
i
+
1
,
⋯
⟩
)