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 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
{ (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)) }
1
1. u1 : Top
2. u2 : Top
3. v : (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