Step
*
1
of Lemma
mtype-sqequal
1. L : MutualRectypeSpec
⊢ eager-map(λp.let i,x = p 
               in <i, mrec(L;i)>L) ~ eager-map(λa.<fst(a), mrec(L;fst(a))>L)
BY
{ ((Assert ∀g:Atom ⟶ Top. (eager-map(λp.let i,x = p in <i, g i>L) ~ eager-map(λa.<fst(a), g (fst(a))>L)) BY
          ((D 0 THENA Auto)
           THEN UnfoldTopAb 1
           THEN ListInd 1
           THEN Reduce 0
           THEN Try (Trivial)
           THEN DVar `u'
           THEN Reduce 0
           THEN CallByValueReduce 0
           THEN Auto))
   THEN D -1 With ⌜λi.mrec(L;i)⌝ 
   THEN Reduce -1
   THEN Auto) }
Latex:
Latex:
1.  L  :  MutualRectypeSpec
\mvdash{}  eager-map(\mlambda{}p.let  i,x  =  p 
                              in  <i,  mrec(L;i)>L)  \msim{}  eager-map(\mlambda{}a.<fst(a),  mrec(L;fst(a))>L)
By
Latex:
((Assert  \mforall{}g:Atom  {}\mrightarrow{}  Top
                      (eager-map(\mlambda{}p.let  i,x  =  p 
                                                  in  <i,  g  i>L)  \msim{}  eager-map(\mlambda{}a.<fst(a),  g  (fst(a))>L))  BY
                ((D  0  THENA  Auto)
                  THEN  UnfoldTopAb  1
                  THEN  ListInd  1
                  THEN  Reduce  0
                  THEN  Try  (Trivial)
                  THEN  DVar  `u'
                  THEN  Reduce  0
                  THEN  CallByValueReduce  0
                  THEN  Auto))
  THEN  D  -1  With  \mkleeneopen{}\mlambda{}i.mrec(L;i)\mkleeneclose{} 
  THEN  Reduce  -1
  THEN  Auto)
Home
Index