Step
*
of Lemma
fpf-join_wf
∀[A:Type]. ∀[B:A ─→ Type]. ∀[f,g:a:A fp-> B[a]]. ∀[eq:EqDecider(A)]. (f ⊕ g ∈ a:A fp-> B[a])
BY
{ (Unfolds ``fpf fpf-join`` 0
THEN Auto
THEN Try ((Unfold `fpf-dom` 0 THEN Auto))
THEN (All (\i. (Fold `fpf` i THEN Complete (Auto))))⋅
THEN (AssertBY ⌈f ∈ a:A fp-> B[a]⌉ (All (\i. (Fold `fpf` i THEN Complete (Auto)))))⋅
THEN (AssertBY ⌈g ∈ a:A fp-> B[a]⌉ (All (\i. (Fold `fpf` i THEN Complete (Auto)))))⋅) }
1
1. A : Type
2. B : A ─→ Type
3. f : d:A List × (a:{a:A| (a ∈ d)} ─→ B[a])
4. g : d:A List × (a:{a:A| (a ∈ d)} ─→ B[a])
5. eq : EqDecider(A)
6. ∀a:A. ((a ∈ (fst(f)) @ filter(λa.(¬ba ∈ dom(f));fst(g))) ∈ Type)
7. a : A@i
8. (a ∈ (fst(f)) @ filter(λa.(¬ba ∈ dom(f));fst(g)))@i
9. f ∈ a:A fp-> B[a]
10. g ∈ a:A fp-> B[a]
⊢ f(a)?g(a) ∈ B[a]
Latex:
\mforall{}[A:Type]. \mforall{}[B:A {}\mrightarrow{} Type]. \mforall{}[f,g:a:A fp-> B[a]]. \mforall{}[eq:EqDecider(A)]. (f \moplus{} g \mmember{} a:A fp-> B[a])
By
(Unfolds ``fpf fpf-join`` 0
THEN Auto
THEN Try ((Unfold `fpf-dom` 0 THEN Auto))
THEN (All (\mbackslash{}i. (Fold `fpf` i THEN Complete (Auto))))\mcdot{}
THEN (AssertBY \mkleeneopen{}f \mmember{} a:A fp-> B[a]\mkleeneclose{} (All (\mbackslash{}i. (Fold `fpf` i THEN Complete (Auto)))))\mcdot{}
THEN (AssertBY \mkleeneopen{}g \mmember{} a:A fp-> B[a]\mkleeneclose{} (All (\mbackslash{}i. (Fold `fpf` i THEN Complete (Auto)))))\mcdot{})
Home
Index