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
(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))⋅}

1
1. Type
2. Type
3. 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:
(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{})




Home Index