Step
*
1
of Lemma
fpf-as-apply-alist
1. A : Type
2. B : Type
3. d : A List
4. f1 : a:{a:A| (a ∈ d)}  ⟶ B
5. eq : EqDecider(A)
6. map(λx.<x, f1 x>d) ∈ (A × B) List
⊢ f1 = (λx.outl(apply-alist(eq;map(λx.<x, f1 x>d);x))) ∈ (a:{a:A| (a ∈ d)}  ⟶ B)
BY
{ xxx((Ext THEN Reduce 0)
      THEN Try (Complete (Auto))
      THEN Try (((EqCD THENA Auto) THEN Fold `member` 0))
      THEN (InstLemma `apply-alist-cases` [⌜A⌝;⌜eq⌝;⌜x⌝;⌜map(λx.<x, f1 x>d)⌝]⋅ THENA Try (Complete (Auto)))
      THEN DVar `x'
      THEN D -1
      THEN Thin (-2))xxx }
1
1. A : Type
2. B : Type
3. d : A List
4. f1 : a:{a:A| (a ∈ d)}  ⟶ B
5. eq : EqDecider(A)
6. map(λx.<x, f1 x>d) ∈ (A × B) List
7. x : A
8. (x ∈ d)
9. ∀[i:ℕ||map(λx.<x, f1 x>d)||]
     (apply-alist(eq;map(λx.<x, f1 x>d);x) ~ inl (snd(map(λx.<x, f1 x>d)[i]))) supposing 
        (((fst(map(λx.<x, f1 x>d)[i])) = x ∈ A) and 
        (∀j:ℕi. (¬((fst(map(λx.<x, f1 x>d)[j])) = x ∈ A))))
⊢ (f1 x) = outl(apply-alist(eq;map(λx.<x, f1 x>d);x)) ∈ B
Latex:
Latex:
1.  A  :  Type
2.  B  :  Type
3.  d  :  A  List
4.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B
5.  eq  :  EqDecider(A)
6.  map(\mlambda{}x.<x,  f1  x>d)  \mmember{}  (A  \mtimes{}  B)  List
\mvdash{}  f1  =  (\mlambda{}x.outl(apply-alist(eq;map(\mlambda{}x.<x,  f1  x>d);x)))
By
Latex:
xxx((Ext  THEN  Reduce  0)
        THEN  Try  (Complete  (Auto))
        THEN  Try  (((EqCD  THENA  Auto)  THEN  Fold  `member`  0))
        THEN  (InstLemma  `apply-alist-cases`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}map(\mlambda{}x.<x,  f1  x>d)\mkleeneclose{}]\mcdot{}
                    THENA  Try  (Complete  (Auto))
                    )
        THEN  DVar  `x'
        THEN  D  -1
        THEN  Thin  (-2))xxx
Home
Index