Documentation
Init
.
Data
.
Vector
.
Erase
Search
return to top
source
Imports
Init.Data.Array.Erase
Init.Data.Vector.Lemmas
Imported by
Vector
.
eraseIdx_eq_take_drop_succ
Vector
.
getElem?_eraseIdx
Vector
.
getElem?_eraseIdx_of_lt
Vector
.
getElem?_eraseIdx_of_ge
Vector
.
getElem_eraseIdx
Vector
.
mem_of_mem_eraseIdx
Vector
.
eraseIdx_append_of_lt_size
Vector
.
eraseIdx_append_of_length_le
Vector
.
eraseIdx_cast
Vector
.
eraseIdx_mkVector
Vector
.
mem_eraseIdx_iff_getElem
Vector
.
mem_eraseIdx_iff_getElem?
Vector
.
getElem_eraseIdx_of_lt
Vector
.
getElem_eraseIdx_of_ge
Vector
.
eraseIdx_set_eq
Vector
.
eraseIdx_set_lt
Vector
.
eraseIdx_set_gt
Vector
.
set_getElem_succ_eraseIdx_succ
Lemmas about
Vector.eraseIdx
.
#
eraseIdx
#
source
theorem
Vector
.
eraseIdx_eq_take_drop_succ
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
h
:
i
<
n
)
:
xs
.
eraseIdx
i
h
=
Vector.cast
⋯
(
xs
.
take
i
++
xs
.
drop
(
i
+
1
)
)
source
theorem
Vector
.
getElem?_eraseIdx
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
h
:
i
<
n
)
(
j
:
Nat
)
:
(
xs
.
eraseIdx
i
h
)
[
j
]
?
=
if
j
<
i
then
xs
[
j
]
?
else
xs
[
j
+
1
]
?
source
theorem
Vector
.
getElem?_eraseIdx_of_lt
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
h
:
i
<
n
)
(
j
:
Nat
)
(
h'
:
j
<
i
)
:
(
xs
.
eraseIdx
i
h
)
[
j
]
?
=
xs
[
j
]
?
source
theorem
Vector
.
getElem?_eraseIdx_of_ge
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
h
:
i
<
n
)
(
j
:
Nat
)
(
h'
:
i
≤
j
)
:
(
xs
.
eraseIdx
i
h
)
[
j
]
?
=
xs
[
j
+
1
]
?
source
theorem
Vector
.
getElem_eraseIdx
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
h
:
i
<
n
)
(
j
:
Nat
)
(
h'
:
j
<
n
-
1
)
:
(
xs
.
eraseIdx
i
h
)
[
j
]
=
if h'' :
j
<
i
then
xs
[
j
]
else
xs
[
j
+
1
]
source
theorem
Vector
.
mem_of_mem_eraseIdx
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
i
:
Nat
}
{
h
:
i
<
n
}
{
a
:
α
}
:
a
∈
xs
.
eraseIdx
i
h
→
a
∈
xs
source
theorem
Vector
.
eraseIdx_append_of_lt_size
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
k
:
Nat
}
(
hk
:
k
<
n
)
(
xs'
:
Vector
α
n
)
(
h
:
k
<
n
+
n
)
:
(
xs
++
xs'
).
eraseIdx
k
h
=
Vector.cast
⋯
(
xs
.
eraseIdx
k
hk
++
xs'
)
source
theorem
Vector
.
eraseIdx_append_of_length_le
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
k
:
Nat
}
(
hk
:
n
≤
k
)
(
xs'
:
Vector
α
n
)
(
h
:
k
<
n
+
n
)
:
(
xs
++
xs'
).
eraseIdx
k
h
=
Vector.cast
⋯
(
xs
++
xs'
.
eraseIdx
(
k
-
n
)
⋯
)
source
theorem
Vector
.
eraseIdx_cast
{
α
:
Type
u_1}
{
n
m
:
Nat
}
{
w
:
n
=
m
}
{
xs
:
Vector
α
n
}
{
k
:
Nat
}
(
h
:
k
<
m
)
:
(
Vector.cast
w
xs
)
.
eraseIdx
k
h
=
Vector.cast
⋯
(
xs
.
eraseIdx
k
⋯
)
source
theorem
Vector
.
eraseIdx_mkVector
{
α
:
Type
u_1}
{
n
:
Nat
}
{
a
:
α
}
{
k
:
Nat
}
{
h
:
k
<
n
}
:
(
mkVector
n
a
)
.
eraseIdx
k
h
=
mkVector
(
n
-
1
)
a
source
theorem
Vector
.
mem_eraseIdx_iff_getElem
{
α
:
Type
u_1}
{
n
:
Nat
}
{
x
:
α
}
{
xs
:
Vector
α
n
}
{
k
:
Nat
}
{
h
:
k
<
n
}
:
x
∈
xs
.
eraseIdx
k
h
↔
∃
(
i
:
Nat
)
,
∃
(
w
:
i
<
n
)
,
i
≠
k
∧
xs
[
i
]
=
x
source
theorem
Vector
.
mem_eraseIdx_iff_getElem?
{
α
:
Type
u_1}
{
n
:
Nat
}
{
x
:
α
}
{
xs
:
Vector
α
n
}
{
k
:
Nat
}
{
h
:
k
<
n
}
:
x
∈
xs
.
eraseIdx
k
h
↔
∃
(
i
:
Nat
)
,
i
≠
k
∧
xs
[
i
]
?
=
some
x
source
theorem
Vector
.
getElem_eraseIdx_of_lt
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
w
:
i
<
n
)
(
j
:
Nat
)
(
h
:
j
<
n
-
1
)
(
h'
:
j
<
i
)
:
(
xs
.
eraseIdx
i
w
)
[
j
]
=
xs
[
j
]
source
theorem
Vector
.
getElem_eraseIdx_of_ge
{
α
:
Type
u_1}
{
n
:
Nat
}
(
xs
:
Vector
α
n
)
(
i
:
Nat
)
(
w
:
i
<
n
)
(
j
:
Nat
)
(
h
:
j
<
n
-
1
)
(
h'
:
i
≤
j
)
:
(
xs
.
eraseIdx
i
w
)
[
j
]
=
xs
[
j
+
1
]
source
theorem
Vector
.
eraseIdx_set_eq
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
i
:
Nat
}
{
a
:
α
}
{
h
:
i
<
n
}
:
(
xs
.
set
i
a
h
)
.
eraseIdx
i
h
=
xs
.
eraseIdx
i
h
source
theorem
Vector
.
eraseIdx_set_lt
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
i
:
Nat
}
{
w
:
i
<
n
}
{
j
:
Nat
}
{
a
:
α
}
(
h
:
j
<
i
)
:
(
xs
.
set
i
a
w
)
.
eraseIdx
j
⋯
=
(
xs
.
eraseIdx
j
⋯
)
.
set
(
i
-
1
)
a
⋯
source
theorem
Vector
.
eraseIdx_set_gt
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
i
j
:
Nat
}
{
a
:
α
}
(
h
:
i
<
j
)
{
w
:
j
<
n
}
:
(
xs
.
set
i
a
⋯
)
.
eraseIdx
j
w
=
(
xs
.
eraseIdx
j
w
)
.
set
i
a
⋯
source
@[simp]
theorem
Vector
.
set_getElem_succ_eraseIdx_succ
{
α
:
Type
u_1}
{
n
:
Nat
}
{
xs
:
Vector
α
n
}
{
i
:
Nat
}
(
h
:
i
+
1
<
n
)
:
(
xs
.
eraseIdx
(
i
+
1
)
h
)
.
set
i
xs
[
i
+
1
]
⋯
=
xs
.
eraseIdx
i
⋯