Step * of Lemma istype-mrecind

[L:MutualRectypeSpec]. ∀[P:mobj(L) ⟶ TYPE].  istype(mrecind(L;x.P[x]))
BY
(Intros
   THEN Unfold `mrecind` 0
   THEN RepeatFor ((D THENL [Auto; Try (D -1)]))
   THEN RepUR ``prec-arg-types`` 0
   THEN (GenConclTerm ⌜mrec-spec(L;lbl;k)⌝⋅ THENA Auto)
   THEN (D THENL [Auto; 0])) }

1
1. MutualRectypeSpec
2. mobj(L) ⟶ TYPE
3. Atom
4. (k ∈ eager-map(λp.(fst(p));L))
5. lbl Atom
6. 0 < ||mrec-spec(L;lbl;k)||
7. (Atom Atom Type) List
8. mrec-spec(L;lbl;k) v ∈ ((Atom Atom Type) List)
9. tuple-type(map(λx.case x
                          of inl(y) =>
                          case y
                           of inl(p) =>
                           prec(lbl,p.mrec-spec(L;lbl;p);p)
                           inr(p) =>
                           prec(lbl,p.mrec-spec(L;lbl;p);p) List
                          inr(E) =>
                          E;v))
⊢ istype(∀j:ℕ||v||. case v[j] of inl(y) => case of inl(p) => P[<p, t.j>inr(p) => (∀u∈t.j.P[<p, u>]) inr(_) => Tr\000Cue)

2
1. MutualRectypeSpec
2. mobj(L) ⟶ TYPE
3. Atom
4. (k ∈ eager-map(λp.(fst(p));L))
5. lbl Atom
6. 0 < ||mrec-spec(L;lbl;k)||
7. (Atom Atom Type) List
8. mrec-spec(L;lbl;k) v ∈ ((Atom Atom Type) List)
9. tuple-type(map(λx.case x
                          of inl(y) =>
                          case y
                           of inl(p) =>
                           prec(lbl,p.mrec-spec(L;lbl;p);p)
                           inr(p) =>
                           prec(lbl,p.mrec-spec(L;lbl;p);p) List
                          inr(E) =>
                          E;v))
10. : ∀j:ℕ||v||. case v[j] of inl(y) => case of inl(p) => P[<p, t.j>inr(p) => (∀u∈t.j.P[<p, u>]) inr(_) => Tru\000Ce
⊢ istype(P[<k, mk-prec(lbl;t)>])


Latex:


Latex:
\mforall{}[L:MutualRectypeSpec].  \mforall{}[P:mobj(L)  {}\mrightarrow{}  TYPE].    istype(mrecind(L;x.P[x]))


By


Latex:
(Intros
  THEN  Unfold  `mrecind`  0
  THEN  RepeatFor  2  ((D  0  THENL  [Auto;  Try  (D  -1)]))
  THEN  RepUR  ``prec-arg-types``  0
  THEN  (GenConclTerm  \mkleeneopen{}mrec-spec(L;lbl;k)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (D  0  THENL  [Auto;  D  0]))




Home Index