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