Step
*
of Lemma
per-product-elim
∀[A:Type]. ∀[B:per-function(A;a.Type)]. ∀[p:per-product(A;a.B[a])].
  uand(p ~ <fst(p), snd(p)>uand(fst(p) ∈ A;snd(p) ∈ B[fst(p)]))
BY
{ (Intro
   THEN (InstLemma `per-function_wf_type` [⌜A⌝]⋅ THENA Auto)
   THEN Intro
   THEN (InstLemma `per-function-type-apply` [⌜A⌝;⌜B⌝]⋅ THENA Auto)
   THEN (InstLemma `per-function_wf` [⌜A⌝;⌜B⌝]⋅ THENA Auto)
   THEN (InstLemma `per-product_wf` [⌜A⌝;⌜B⌝]⋅ THENA Auto)
   THEN Intro
   THEN Thin 2
   THEN PromoteHyp (-1) 3) }
1
1. [A] : Type
2. [B] : per-function(A;a.Type)
3. [p] : per-product(A;a.B[a])
4. ∀[a:A]. (B[a] ∈ Type)
5. per-function(A;a.B[a]) ∈ Type
6. per-product(A;a.B[a]) ∈ Type
⊢ uand(p ~ <fst(p), snd(p)>uand(fst(p) ∈ A;snd(p) ∈ B[fst(p)]))
Latex:
Latex:
\mforall{}[A:Type].  \mforall{}[B:per-function(A;a.Type)].  \mforall{}[p:per-product(A;a.B[a])].
    uand(p  \msim{}  <fst(p),  snd(p)>uand(fst(p)  \mmember{}  A;snd(p)  \mmember{}  B[fst(p)]))
By
Latex:
(Intro
  THEN  (InstLemma  `per-function\_wf\_type`  [\mkleeneopen{}A\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  Intro
  THEN  (InstLemma  `per-function-type-apply`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (InstLemma  `per-function\_wf`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (InstLemma  `per-product\_wf`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  Intro
  THEN  Thin  2
  THEN  PromoteHyp  (-1)  3)
Home
Index