Step * of Lemma mrecind_wf

[L:MutualRectypeSpec]. ∀[P:mobj(L) ⟶ ℙ].  (mrecind(L;x.P[x]) ∈ ℙ)
BY
(Auto
   THEN Unfold `mrecind` 0
   THEN (MemCD THENL [Auto; -1])
   THEN (MemCD THENL [Auto; Id])
   THEN (Assert 0 < ||mrec-spec(L;lbl;k)|| BY
               Auto)
   THEN MoveToConcl (-1)
   THEN RepUR ``prec-arg-types`` 0
   THEN (GenConclTerm ⌜mrec-spec(L;lbl;k)⌝⋅ THENA Auto)
   THEN (D THENA Auto)
   THEN (MemCD THENL [Auto; MemCD])) }

1
.....subterm..... T:t
1:n
1. MutualRectypeSpec
2. mobj(L) ⟶ ℙ
3. Atom
4. (k ∈ eager-map(λp.(fst(p));L))
5. lbl {lbl:Atom| 0 < ||mrec-spec(L;lbl;k)||} 
6. (Atom Atom Type) List
7. mrec-spec(L;lbl;k) v ∈ ((Atom Atom Type) List)
8. 0 < ||v||
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))
⊢ ∀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(_) => True ∈ ℙ

2
.....subterm..... T:t
2:n
1. MutualRectypeSpec
2. mobj(L) ⟶ ℙ
3. Atom
4. (k ∈ eager-map(λp.(fst(p));L))
5. lbl {lbl:Atom| 0 < ||mrec-spec(L;lbl;k)||} 
6. (Atom Atom Type) List
7. mrec-spec(L;lbl;k) v ∈ ((Atom Atom Type) List)
8. 0 < ||v||
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(_) => True
⊢ P[<k, mk-prec(lbl;t)>] ∈ ℙ


Latex:


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


By


Latex:
(Auto
  THEN  Unfold  `mrecind`  0
  THEN  (MemCD  THENL  [Auto;  D  -1])
  THEN  (MemCD  THENL  [Auto;  Id])
  THEN  (Assert  0  <  ||mrec-spec(L;lbl;k)||  BY
                          Auto)
  THEN  MoveToConcl  (-1)
  THEN  RepUR  ``prec-arg-types``  0
  THEN  (GenConclTerm  \mkleeneopen{}mrec-spec(L;lbl;k)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (D  0  THENA  Auto)
  THEN  (MemCD  THENL  [Auto;  MemCD]))




Home Index