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
}
(l :
Vector
α
n
)
(i :
Nat
)
(h :
i
<
n
)
:
l
.
eraseIdx
i
h
=
Vector.cast
⋯
(
l
.
take
i
++
l
.
drop
(
i
+
1
)
)
source
theorem
Vector
.
getElem?_eraseIdx
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(h :
i
<
n
)
(j :
Nat
)
:
(
l
.
eraseIdx
i
h
)
[
j
]
?
=
if
j
<
i
then
l
[
j
]
?
else
l
[
j
+
1
]
?
source
theorem
Vector
.
getElem?_eraseIdx_of_lt
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(h :
i
<
n
)
(j :
Nat
)
(h' :
j
<
i
)
:
(
l
.
eraseIdx
i
h
)
[
j
]
?
=
l
[
j
]
?
source
theorem
Vector
.
getElem?_eraseIdx_of_ge
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(h :
i
<
n
)
(j :
Nat
)
(h' :
i
≤
j
)
:
(
l
.
eraseIdx
i
h
)
[
j
]
?
=
l
[
j
+
1
]
?
source
theorem
Vector
.
getElem_eraseIdx
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(h :
i
<
n
)
(j :
Nat
)
(h' :
j
<
n
-
1
)
:
(
l
.
eraseIdx
i
h
)
[
j
]
=
if h'' :
j
<
i
then
l
[
j
]
else
l
[
j
+
1
]
source
theorem
Vector
.
mem_of_mem_eraseIdx
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{i :
Nat
}
{h :
i
<
n
}
{a :
α
}
:
a
∈
l
.
eraseIdx
i
h
→
a
∈
l
source
theorem
Vector
.
eraseIdx_append_of_lt_size
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{k :
Nat
}
(hk :
k
<
n
)
(l' :
Vector
α
n
)
(h :
k
<
n
+
n
)
:
(
l
++
l'
).
eraseIdx
k
h
=
Vector.cast
⋯
(
l
.
eraseIdx
k
hk
++
l'
)
source
theorem
Vector
.
eraseIdx_append_of_length_le
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{k :
Nat
}
(hk :
n
≤
k
)
(l' :
Vector
α
n
)
(h :
k
<
n
+
n
)
:
(
l
++
l'
).
eraseIdx
k
h
=
Vector.cast
⋯
(
l
++
l'
.
eraseIdx
(
k
-
n
)
⋯
)
source
theorem
Vector
.
eraseIdx_cast
{α :
Type
u_1}
{n m :
Nat
}
{w :
n
=
m
}
{l :
Vector
α
n
}
{k :
Nat
}
(h :
k
<
m
)
:
(
Vector.cast
w
l
)
.
eraseIdx
k
h
=
Vector.cast
⋯
(
l
.
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 :
α
}
{l :
Vector
α
n
}
{k :
Nat
}
{h :
k
<
n
}
:
x
∈
l
.
eraseIdx
k
h
↔
∃
(
i
:
Nat
)
,
∃
(
w
:
i
<
n
)
,
i
≠
k
∧
l
[
i
]
=
x
source
theorem
Vector
.
mem_eraseIdx_iff_getElem?
{α :
Type
u_1}
{n :
Nat
}
{x :
α
}
{l :
Vector
α
n
}
{k :
Nat
}
{h :
k
<
n
}
:
x
∈
l
.
eraseIdx
k
h
↔
∃
(
i
:
Nat
)
,
i
≠
k
∧
l
[
i
]
?
=
some
x
source
theorem
Vector
.
getElem_eraseIdx_of_lt
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(w :
i
<
n
)
(j :
Nat
)
(h :
j
<
n
-
1
)
(h' :
j
<
i
)
:
(
l
.
eraseIdx
i
w
)
[
j
]
=
l
[
j
]
source
theorem
Vector
.
getElem_eraseIdx_of_ge
{α :
Type
u_1}
{n :
Nat
}
(l :
Vector
α
n
)
(i :
Nat
)
(w :
i
<
n
)
(j :
Nat
)
(h :
j
<
n
-
1
)
(h' :
i
≤
j
)
:
(
l
.
eraseIdx
i
w
)
[
j
]
=
l
[
j
+
1
]
source
theorem
Vector
.
eraseIdx_set_eq
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{i :
Nat
}
{a :
α
}
{h :
i
<
n
}
:
(
l
.
set
i
a
h
)
.
eraseIdx
i
h
=
l
.
eraseIdx
i
h
source
theorem
Vector
.
eraseIdx_set_lt
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{i :
Nat
}
{w :
i
<
n
}
{j :
Nat
}
{a :
α
}
(h :
j
<
i
)
:
(
l
.
set
i
a
w
)
.
eraseIdx
j
⋯
=
(
l
.
eraseIdx
j
⋯
)
.
set
(
i
-
1
)
a
⋯
source
theorem
Vector
.
eraseIdx_set_gt
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{i j :
Nat
}
{a :
α
}
(h :
i
<
j
)
{w :
j
<
n
}
:
(
l
.
set
i
a
⋯
)
.
eraseIdx
j
w
=
(
l
.
eraseIdx
j
w
)
.
set
i
a
⋯
source
@[simp]
theorem
Vector
.
set_getElem_succ_eraseIdx_succ
{α :
Type
u_1}
{n :
Nat
}
{l :
Vector
α
n
}
{i :
Nat
}
(h :
i
+
1
<
n
)
:
(
l
.
eraseIdx
(
i
+
1
)
h
)
.
set
i
l
[
i
+
1
]
⋯
=
l
.
eraseIdx
i
⋯