Step
*
1
2
of Lemma
fpf-rename_wf
1. A : Type
2. C : Type
3. B : A ─→ Type
4. D : C ─→ Type
5. eq : EqDecider(C)
6. r : A ─→ C
7. d : A List
8. f1 : a:{a:A| (a ∈ d)}  ─→ B[a]
9. ∀a:A. (D[r a] = B[a] ∈ Type)
10. x : {c:C| (c ∈ map(r;d))} @i
11. ∀a:A. ((a ∈ d) 
⇒ ((r a) = x ∈ C) 
⇒ (f1 a ∈ D[x]))
⊢ f1 hd(filter(λy.(eq (r y) x);d)) ∈ D[x]
BY
{ ((DVar `x' THEN (InstLemma `hd-filter` [⌈A⌉; ⌈λ2y.eq (r y) x⌉; ⌈d⌉])⋅) THENA Auto) }
1
.....antecedent..... 
1. A : Type
2. C : Type
3. B : A ─→ Type
4. D : C ─→ Type
5. eq : EqDecider(C)
6. r : A ─→ C
7. d : A List
8. f1 : a:{a:A| (a ∈ d)}  ─→ B[a]
9. ∀a:A. (D[r a] = B[a] ∈ Type)
10. x : C@i
11. (x ∈ map(r;d))@i
12. ∀a:A. ((a ∈ d) 
⇒ ((r a) = x ∈ C) 
⇒ (f1 a ∈ D[x]))
⊢ ∃a:A. ((a ∈ d) ∧ (↑(eq (r a) x)))
2
1. A : Type
2. C : Type
3. B : A ─→ Type
4. D : C ─→ Type
5. eq : EqDecider(C)
6. r : A ─→ C
7. d : A List
8. f1 : a:{a:A| (a ∈ d)}  ─→ B[a]
9. ∀a:A. (D[r a] = B[a] ∈ Type)
10. x : C@i
11. (x ∈ map(r;d))@i
12. ∀a:A. ((a ∈ d) 
⇒ ((r a) = x ∈ C) 
⇒ (f1 a ∈ D[x]))
13. (hd(filter(λa.(eq (r a) x);d)) ∈ A)
c∧ ((hd(filter(λa.(eq (r a) x);d)) ∈ d) ∧ (↑(eq (r hd(filter(λa.(eq (r a) x);d))) x)))
⊢ f1 hd(filter(λy.(eq (r y) x);d)) ∈ D[x]
Latex:
1.  A  :  Type
2.  C  :  Type
3.  B  :  A  {}\mrightarrow{}  Type
4.  D  :  C  {}\mrightarrow{}  Type
5.  eq  :  EqDecider(C)
6.  r  :  A  {}\mrightarrow{}  C
7.  d  :  A  List
8.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B[a]
9.  \mforall{}a:A.  (D[r  a]  =  B[a])
10.  x  :  \{c:C|  (c  \mmember{}  map(r;d))\}  @i
11.  \mforall{}a:A.  ((a  \mmember{}  d)  {}\mRightarrow{}  ((r  a)  =  x)  {}\mRightarrow{}  (f1  a  \mmember{}  D[x]))
\mvdash{}  f1  hd(filter(\mlambda{}y.(eq  (r  y)  x);d))  \mmember{}  D[x]
By
((DVar  `x'  THEN  (InstLemma  `hd-filter`  [\mkleeneopen{}A\mkleeneclose{};  \mkleeneopen{}\mlambda{}\msubtwo{}y.eq  (r  y)  x\mkleeneclose{};  \mkleeneopen{}d\mkleeneclose{}])\mcdot{})  THENA  Auto)
Home
Index