Step * of Lemma fpf-rename_wf

[A,C:Type]. ∀[B:A ⟶ Type]. ∀[D:C ⟶ Type]. ∀[eq:EqDecider(C)]. ∀[r:A ⟶ C]. ∀[f:a:A fp-> B[a]].
  rename(r;f) ∈ c:C fp-> D[c] supposing ∀a:A. (D[r a] B[a] ∈ Type)
BY
((Intros THEN Unhide)
   THEN DVar `f'
   THEN Unfolds ``fpf-rename fpf`` 0
   THEN Reduce 0
   THEN (Assert ⌜∀x:{c:C| (c ∈ map(r;d))} (f1 hd(filter(λy.(eq (r y) x);d)) ∈ D[x])⌝⋅ THENM Auto)
   THEN (D THENA Auto)) }

1
1. Type
2. Type
3. A ⟶ Type
4. C ⟶ Type
5. eq EqDecider(C)
6. A ⟶ C
7. List
8. f1 a:{a:A| (a ∈ d)}  ⟶ B[a]
9. ∀a:A. (D[r a] B[a] ∈ Type)
10. {c:C| (c ∈ map(r;d))} 
⊢ f1 hd(filter(λy.(eq (r y) x);d)) ∈ D[x]


Latex:


Latex:
\mforall{}[A,C:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[D:C  {}\mrightarrow{}  Type].  \mforall{}[eq:EqDecider(C)].  \mforall{}[r:A  {}\mrightarrow{}  C].  \mforall{}[f:a:A  fp->  B[a]].
    rename(r;f)  \mmember{}  c:C  fp->  D[c]  supposing  \mforall{}a:A.  (D[r  a]  =  B[a])


By


Latex:
((Intros  THEN  Unhide)
  THEN  DVar  `f'
  THEN  Unfolds  ``fpf-rename  fpf``  0
  THEN  Reduce  0
  THEN  (Assert  \mkleeneopen{}\mforall{}x:\{c:C|  (c  \mmember{}  map(r;d))\}  .  (f1  hd(filter(\mlambda{}y.(eq  (r  y)  x);d))  \mmember{}  D[x])\mkleeneclose{}\mcdot{}  THENM  Auto)
  THEN  (D  0  THENA  Auto))




Home Index