Step * of Lemma permute-to-front-permutation

[T:Type]. ∀L:T List. ∀idxs:ℕ List.  permutation(T;L;permute-to-front(L;idxs))
BY
(Auto
   THEN Unfold `permute-to-front` 0
   THEN With ⌜λi.filter(λi.int-list-member(i;idxs);upto(||L||)) filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i]⌝
    (D 0)⋅}

1
.....wf..... 
1. Type
2. List
3. idxs : ℕ List
⊢ λi.filter(λi.int-list-member(i;idxs);upto(||L||)) filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i] ∈ ℕ||L||
  ⟶ ℕ||L||

2
1. [T] Type
2. List
3. idxs : ℕ List
⊢ Inj(ℕ||L||;ℕ||L||;λi.filter(λi.int-list-member(i;idxs);upto(||L||))
                       filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i])
∧ ((L o λi.filter(λi.int-list-member(i;idxs);upto(||L||)) filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i])
  (L o λi.filter(λi.int-list-member(i;idxs);upto(||L||)) filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i])
  ∈ (T List))

3
.....wf..... 
1. Type
2. List
3. idxs : ℕ List
4. : ℕ||L|| ⟶ ℕ||L||
⊢ Inj(ℕ||L||;ℕ||L||;f)
  ∧ ((L o λi.filter(λi.int-list-member(i;idxs);upto(||L||)) filter(λi.(¬bint-list-member(i;idxs));upto(||L||))[i])
    (L f)
    ∈ (T List)) ∈ ℙ


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}L:T  List.  \mforall{}idxs:\mBbbN{}  List.    permutation(T;L;permute-to-front(L;idxs))


By


Latex:
(Auto
  THEN  Unfold  `permute-to-front`  0
  THEN  With  \mkleeneopen{}\mlambda{}i.filter(\mlambda{}i.int-list-member(i;idxs);upto(||L||))
                              @  filter(\mlambda{}i.(\mneg{}\msubb{}int-list-member(i;idxs));upto(||L||))[i]\mkleeneclose{}  (D  0)\mcdot{})




Home Index