Step
*
1
1
of Lemma
filter-fpf-vals
1. A : Type
2. eq : EqDecider(A)
3. B : A ─→ Type
4. P : A ─→ 𝔹
5. Q : A ─→ 𝔹
6. d : A List
7. f1 : x:{x:A| (x ∈ d)}  ─→ B[x]
⊢ filter(λpL.Q[fst(pL)];zip(filter(P;remove-repeats(eq;d));map(f1;filter(P;remove-repeats(eq;d))))) 
~ zip(filter(λa.((P a) ∧b (Q a));remove-repeats(eq;d));map(f1;filter(λa.((P a) ∧b (Q a));remove-repeats(eq;d))))
BY
{ (GenConcl ⌈remove-repeats(eq;d) = L ∈ ({x:A| (x ∈ d)}  List)⌉⋅ THENA Auto) }
1
1. A : Type
2. eq : EqDecider(A)
3. B : A ─→ Type
4. P : A ─→ 𝔹
5. Q : A ─→ 𝔹
6. d : A List
7. f1 : x:{x:A| (x ∈ d)}  ─→ B[x]
8. L : {x:A| (x ∈ d)}  List@i
9. remove-repeats(eq;d) = L ∈ ({x:A| (x ∈ d)}  List)@i
⊢ filter(λpL.Q[fst(pL)];zip(filter(P;L);map(f1;filter(P;L)))) 
~ zip(filter(λa.((P a) ∧b (Q a));L);map(f1;filter(λa.((P a) ∧b (Q a));L)))
Latex:
1.  A  :  Type
2.  eq  :  EqDecider(A)
3.  B  :  A  {}\mrightarrow{}  Type
4.  P  :  A  {}\mrightarrow{}  \mBbbB{}
5.  Q  :  A  {}\mrightarrow{}  \mBbbB{}
6.  d  :  A  List
7.  f1  :  x:\{x:A|  (x  \mmember{}  d)\}    {}\mrightarrow{}  B[x]
\mvdash{}  filter(\mlambda{}pL.Q[fst(pL)];zip(filter(P;remove-repeats(eq;d));map(f1;filter(P;remove-repeats(eq;d))))) 
\msim{}  zip(filter(\mlambda{}a.((P  a)  \mwedge{}\msubb{}  (Q  a));remove-repeats(eq;d));
            map(f1;filter(\mlambda{}a.((P  a)  \mwedge{}\msubb{}  (Q  a));remove-repeats(eq;d))))
By
(GenConcl  \mkleeneopen{}remove-repeats(eq;d)  =  L\mkleeneclose{}\mcdot{}  THENA  Auto)
Home
Index