Step * 1 of Lemma mtype-sqequal


1. MutualRectypeSpec
⊢ eager-map(λp.let i,x 
               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 in <i, i>;L) eager-map(λa.<fst(a), (fst(a))>;L)) BY
          ((D 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 -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