Step * 1 of Lemma unzip-as-accum

.....assertion..... 
as:(Top × Top) List. ∀b1,b2:Top List.
  (let as1,as2 unzip(as) 
   in <b1 as1, b2 as2> accumulate (with value and list item a):
                              let p1,p2 
                              in let a1,a2 
                                 in <p1 [a1], p2 [a2]>
                             over list:
                               as
                             with starting value:
                              <b1, b2>))
BY
(Unfold `unzip` 0
   THEN InductionOnList
   THEN All Reduce
   THEN Try (Complete ((RepeatFor ((D THENA Auto)) THEN RWO "append_nil_sq" THEN Auto)))
   THEN DVar `u'
   THEN Reduce 0
   THEN RepeatFor ((D THENA Auto))
   THEN (RWO  "-3<THENA Auto)
   THEN Thin (-3)) }

1
1. u1 Top
2. u2 Top
3. (Top × Top) List
4. b1 Top List
5. b2 Top List
⊢ <b1 [u1 map(λp.(fst(p));v)], b2 [u2 map(λp.(snd(p));v)]> ~ <(b1 [u1]) map(λp.(fst(p));v)
                                                                   (b2 [u2]) map(λp.(snd(p));v)
                                                                   >


Latex:


Latex:
.....assertion..... 
\mforall{}as:(Top  \mtimes{}  Top)  List.  \mforall{}b1,b2:Top  List.
    (let  as1,as2  =  unzip(as) 
      in  <b1  @  as1,  b2  @  as2>  \msim{}  accumulate  (with  value  p  and  list  item  a):
                                                            let  p1,p2  =  p 
                                                            in  let  a1,a2  =  a 
                                                                  in  <p1  @  [a1],  p2  @  [a2]>
                                                          over  list:
                                                              as
                                                          with  starting  value:
                                                            <b1,  b2>))


By


Latex:
(Unfold  `unzip`  0
  THEN  InductionOnList
  THEN  All  Reduce
  THEN  Try  (Complete  ((RepeatFor  2  ((D  0  THENA  Auto))  THEN  RWO  "append\_nil\_sq"  0  THEN  Auto)))
  THEN  DVar  `u'
  THEN  Reduce  0
  THEN  RepeatFor  2  ((D  0  THENA  Auto))
  THEN  (RWO    "-3<"  0  THENA  Auto)
  THEN  Thin  (-3))




Home Index