Step
*
of Lemma
cons_filter2
∀[T:Type]. ∀[x:T]. ∀[L:T List]. ∀[P:ℕ||L|| + 1 ⟶ 𝔹].
  (filter2(P;[x / L]) = if P 0 then [x / filter2(λi.(P (i + 1));L)] else filter2(λi.(P (i + 1));L) fi  ∈ (T List))
BY
{ (Auto THEN (RW (AddrC [2] (UnfoldC `filter2`)) 0 THEN Reduce 0) THEN SplitOnConclITE THEN Auto) }
1
.....truecase..... 
1. T : Type
2. x : T
3. L : T List
4. P : ℕ||L|| + 1 ⟶ 𝔹
5. ↑(P 0)
⊢ [x / reduce2(λx,i,l. if P i then [x / l] else l fi [];1;L)] = [x / filter2(λi.(P (i + 1));L)] ∈ (T List)
2
.....falsecase..... 
1. T : Type
2. x : T
3. L : T List
4. P : ℕ||L|| + 1 ⟶ 𝔹
5. ¬↑(P 0)
⊢ reduce2(λx,i,l. if P i then [x / l] else l fi [];1;L) = filter2(λi.(P (i + 1));L) ∈ (T List)
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[x:T].  \mforall{}[L:T  List].  \mforall{}[P:\mBbbN{}||L||  +  1  {}\mrightarrow{}  \mBbbB{}].
    (filter2(P;[x  /  L])
    =  if  P  0  then  [x  /  filter2(\mlambda{}i.(P  (i  +  1));L)]  else  filter2(\mlambda{}i.(P  (i  +  1));L)  fi  )
By
Latex:
(Auto  THEN  (RW  (AddrC  [2]  (UnfoldC  `filter2`))  0  THEN  Reduce  0)  THEN  SplitOnConclITE  THEN  Auto)
Home
Index