Step
*
of Lemma
index-split-permutation
∀[T:Type]. ∀L:T List. ∀ids:ℕ List. let L1,L2 = index-split(L;ids) in permutation(T;L;L1 @ L2)
BY
{ xxx(Auto
THEN (InstLemma `permute-to-front-permutation` [⌜T⌝;⌜L⌝;⌜ids⌝]⋅ THENA Auto)
THEN RepUR ``index-split let`` 0
THEN ((GenConcl ⌜||filter(λi.int-list-member(i;ids);upto(||L||))|| = n ∈ ℕ||L|| + 1⌝⋅ THENM Thin (-1))
THENA Auto'
))xxx }
1
.....wf.....
1. [T] : Type
2. L : T List
3. ids : ℕ List
4. permutation(T;L;permute-to-front(L;ids))
⊢ ||filter(λi.int-list-member(i;ids);upto(||L||))|| ∈ ℕ||L|| + 1
2
1. [T] : Type
2. L : T List
3. ids : ℕ List
4. permutation(T;L;permute-to-front(L;ids))
5. n : ℕ||L|| + 1
⊢ permutation(T;L;firstn(n;permute-to-front(L;ids)) @ nth_tl(n;permute-to-front(L;ids)))
Latex:
Latex:
\mforall{}[T:Type]. \mforall{}L:T List. \mforall{}ids:\mBbbN{} List. let L1,L2 = index-split(L;ids) in permutation(T;L;L1 @ L2)
By
Latex:
xxx(Auto
THEN (InstLemma `permute-to-front-permutation` [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{};\mkleeneopen{}ids\mkleeneclose{}]\mcdot{} THENA Auto)
THEN RepUR ``index-split let`` 0
THEN ((GenConcl \mkleeneopen{}||filter(\mlambda{}i.int-list-member(i;ids);upto(||L||))|| = n\mkleeneclose{}\mcdot{} THENM Thin (-1))
THENA Auto'
))xxx
Home
Index