PhysLean Documentation
PhysLean
.
Mathematics
.
List
.
InsertIdx
Search
Google site search
return to top
source
Imports
Init
PhysLean.Mathematics.List
Imported by
PhysLean
.
List
.
insertIdx_map
PhysLean
.
List
.
eraseIdx_sorted
PhysLean
.
List
.
mem_eraseIdx_nodup
PhysLean
.
List
.
insertIdx_eq_take_drop
PhysLean
.
List
.
insertIdx_length_fin
PhysLean
.
List
.
insertIdx_getElem_fin
PhysLean
.
List
.
insertIdx_eraseIdx_fin
PhysLean
.
List
.
insertIdx_length_fst_append
PhysLean
.
List
.
get_eq_insertIdx_succAbove
PhysLean
.
List
.
take_insert_same
PhysLean
.
List
.
take_eraseIdx_same
PhysLean
.
List
.
drop_eraseIdx_succ
PhysLean
.
List
.
take_insert_gt
PhysLean
.
List
.
take_insert_let
List lemmas
#
source
theorem
PhysLean
.
List
.
insertIdx_map
{I J :
Type
}
(f :
I
→
J
)
(i :
ℕ
)
(r :
List
I
)
(r0 :
I
)
:
List.map
f
(
List.insertIdx
i
r0
r
)
=
List.insertIdx
i
(
f
r0
)
(
List.map
f
r
)
source
theorem
PhysLean
.
List
.
eraseIdx_sorted
{I :
Type
}
(le :
I
→
I
→
Prop
)
(r :
List
I
)
(n :
ℕ
)
:
List.Sorted
le
r
→
List.Sorted
le
(
r
.
eraseIdx
n
)
source
theorem
PhysLean
.
List
.
mem_eraseIdx_nodup
{I :
Type
}
(i :
I
)
(l :
List
I
)
(n :
ℕ
)
(hn :
n
<
l
.
length
)
(h :
l
.
Nodup
)
:
i
∈
l
.
eraseIdx
n
↔
i
∈
l
∧
i
≠
l
[
n
]
source
theorem
PhysLean
.
List
.
insertIdx_eq_take_drop
{I :
Type
}
(i :
I
)
(r :
List
I
)
(n :
Fin
r
.
length
.
succ
)
:
List.insertIdx
(↑
n
)
i
r
=
List.take
(↑
n
)
r
++
i
::
List.drop
(↑
n
)
r
source
@[simp]
theorem
PhysLean
.
List
.
insertIdx_length_fin
{I :
Type
}
(i :
I
)
(r :
List
I
)
(n :
Fin
r
.
length
.
succ
)
:
(
List.insertIdx
(↑
n
)
i
r
)
.
length
=
r
.
length
.
succ
source
@[simp]
theorem
PhysLean
.
List
.
insertIdx_getElem_fin
{I :
Type
}
(i :
I
)
(r :
List
I
)
(k :
Fin
r
.
length
.
succ
)
(m :
Fin
r
.
length
)
:
(
List.insertIdx
(↑
k
)
i
r
)
[
↑
(
k
.
succAbove
m
)
]
=
r
[
↑
m
]
source
theorem
PhysLean
.
List
.
insertIdx_eraseIdx_fin
{I :
Type
}
(r :
List
I
)
(k :
Fin
r
.
length
)
:
List.insertIdx
(↑
k
)
r
[
k
]
(
r
.
eraseIdx
↑
k
)
=
r
source
theorem
PhysLean
.
List
.
insertIdx_length_fst_append
{I :
Type
}
(φ :
I
)
(φs φs' :
List
I
)
:
List.insertIdx
φs
.
length
φ
(
φs
++
φs'
)
=
φs
++
φ
::
φs'
source
theorem
PhysLean
.
List
.
get_eq_insertIdx_succAbove
{I :
Type
}
(i :
I
)
(r :
List
I
)
(k :
Fin
r
.
length
.
succ
)
:
r
.
get
=
(
List.insertIdx
(↑
k
)
i
r
)
.
get
∘
⇑
(
finCongr
⋯
)
∘
k
.
succAbove
source
theorem
PhysLean
.
List
.
take_insert_same
{I :
Type
}
(i :
I
)
(n :
ℕ
)
(r :
List
I
)
:
List.take
n
(
List.insertIdx
n
i
r
)
=
List.take
n
r
source
theorem
PhysLean
.
List
.
take_eraseIdx_same
{I :
Type
}
(n :
ℕ
)
(r :
List
I
)
:
List.take
n
(
r
.
eraseIdx
n
)
=
List.take
n
r
source
theorem
PhysLean
.
List
.
drop_eraseIdx_succ
{I :
Type
}
(n :
ℕ
)
(r :
List
I
)
(hn :
n
<
r
.
length
)
:
r
[
n
]
::
List.drop
n
(
r
.
eraseIdx
n
)
=
List.drop
n
r
source
theorem
PhysLean
.
List
.
take_insert_gt
{I :
Type
}
(i :
I
)
(n m :
ℕ
)
(h :
n
<
m
)
(r :
List
I
)
:
List.take
n
(
List.insertIdx
m
i
r
)
=
List.take
n
r
source
theorem
PhysLean
.
List
.
take_insert_let
{I :
Type
}
(i :
I
)
(n m :
ℕ
)
(h :
m
≤
n
)
(r :
List
I
)
(hm :
m
≤
r
.
length
)
:
(
List.take
(
n
+
1
)
(
List.insertIdx
m
i
r
)
)
.
Perm
(
i
::
List.take
n
r
)