Step
*
of Lemma
fpf-as-apply-alist
∀[A,B:Type]. ∀[f:a:A fp-> B]. ∀[eq:EqDecider(A)].
  (f = <fpf-domain(f), λx.outl(apply-alist(eq;map(λx.<x, f(x)>fpf-domain(f));x))> ∈ a:A fp-> B)
BY
{ xxx(Auto
      THEN DVar `f'
      THEN RepUR ``fpf-domain fpf-ap fpf`` 0
      THEN EqCD
      THEN Auto
      THEN (Assert map(λx.<x, f1 x>d) ∈ (A × B) List BY
                  (InstLemma `map_wf` [⌜{a:A| (a ∈ d)} ⌝;⌜A × B⌝;⌜λx.<x, f1 x>⌝;⌜d⌝]⋅ THEN Auto))⋅)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
⊢ f1 = (λx.outl(apply-alist(eq;map(λx.<x, f1 x>d);x))) ∈ (a:{a:A| (a ∈ d)}  ⟶ B)
Latex:
Latex:
\mforall{}[A,B:Type].  \mforall{}[f:a:A  fp->  B].  \mforall{}[eq:EqDecider(A)].
    (f  =  <fpf-domain(f),  \mlambda{}x.outl(apply-alist(eq;map(\mlambda{}x.<x,  f(x)>fpf-domain(f));x))>)
By
Latex:
xxx(Auto
        THEN  DVar  `f'
        THEN  RepUR  ``fpf-domain  fpf-ap  fpf``  0
        THEN  EqCD
        THEN  Auto
        THEN  (Assert  map(\mlambda{}x.<x,  f1  x>d)  \mmember{}  (A  \mtimes{}  B)  List  BY
                                (InstLemma  `map\_wf`  [\mkleeneopen{}\{a:A|  (a  \mmember{}  d)\}  \mkleeneclose{};\mkleeneopen{}A  \mtimes{}  B\mkleeneclose{};\mkleeneopen{}\mlambda{}x.<x,  f1  x>\mkleeneclose{};\mkleeneopen{}d\mkleeneclose{}]\mcdot{}  THEN  Auto))\mcdot{})xxx
Home
Index