Step * 1 of Lemma pi2-consensus-rcvs-to-consensus-events


1. Type
2. Id List
3. : ℕ+
4. (V List) ─→ V
5. v0 V
6. ys consensus-rcv(V;A) List@i
7. consensus-rcv(V;A)@i
8. v1 consensus-event(V;A) List@i
9. v2 consensus-rcv(V;A) List@i
10. v2 ys ∈ (consensus-rcv(V;A) List)@i
⊢ (snd(let b,i,as,vs,v accumulate (with value and list item r):
                          consensus-accum-num((2 t) 1;f;s;r)
                         over list:
                           v2 [y]
                         with starting value:
                          <ff, 0, [], [], v0>in <v1
                                                   if rcv-vote?(y)
                                                     then let a,i,v rcvd-vote(y) in 
                                                          [consensus-message(a;i 1;inl <i, v>)]
                                                     else []
                                                     fi 
                                                   if b
                                                     then if null(as)
                                                          then [Archive(v); NextInning]
                                                          else map(λn.NextInning;upto(i 
                                                                   ||filter(λx.is-inning-event(x);v1)||))
                                                               [Archive(v); NextInning]
                                                          fi 
                                                     else []
                                                     fi 
                                                  v2 [y]
                                                  >))
(ys [y])
∈ (consensus-rcv(V;A) List)
BY
((GenConclAtAddrType ⌈𝔹 × ℤ × {a:Id| (a ∈ A)}  List × List × V⌉ [2;1;1]⋅ THEN Auto)
   THEN RepeatFor (D -2)
   THEN Reduce 0
   THEN Auto) }


Latex:



1.  V  :  Type
2.  A  :  Id  List
3.  t  :  \mBbbN{}\msupplus{}
4.  f  :  (V  List)  {}\mrightarrow{}  V
5.  v0  :  V
6.  ys  :  consensus-rcv(V;A)  List@i
7.  y  :  consensus-rcv(V;A)@i
8.  v1  :  consensus-event(V;A)  List@i
9.  v2  :  consensus-rcv(V;A)  List@i
10.  v2  =  ys@i
\mvdash{}  (snd(let  b,i,as,vs,v  =  accumulate  (with  value  s  and  list  item  r):
                                                    consensus-accum-num((2  *  t)  +  1;f;s;r)
                                                  over  list:
                                                      v2  @  [y]
                                                  with  starting  value:
                                                    <ff,  0,  [],  [],  v0>)  in  <v1
                                                                                                      @  if  rcv-vote?(y)
                                                                                                          then  let  a,i,v  =  rcvd-vote(y)  in 
                                                                                                                    [consensus-message(a;i  +  1;inl  <i,  v>)]
                                                                                                          else  []
                                                                                                          fi 
                                                                                                      @  if  b
                                                                                                          then  if  null(as)
                                                                                                                    then  [Archive(v);  NextInning]
                                                                                                                    else  map(\mlambda{}n.NextInning;upto(i  -  1 
                                                                                                                                      -  ||filter(\mlambda{}x.is-inning-event(x);
                                                                                                                                                            v1)||))
                                                                                                                              @  [Archive(v);  NextInning]
                                                                                                                    fi 
                                                                                                          else  []
                                                                                                          fi 
                                                                                                    ,  v2  @  [y]
                                                                                                    >))
=  (ys  @  [y])


By

((GenConclAtAddrType  \mkleeneopen{}\mBbbB{}  \mtimes{}  \mBbbZ{}  \mtimes{}  \{a:Id|  (a  \mmember{}  A)\}    List  \mtimes{}  V  List  \mtimes{}  V\mkleeneclose{}  [2;1;1]\mcdot{}  THEN  Auto)
  THEN  RepeatFor  4  (D  -2)
  THEN  Reduce  0
  THEN  Auto)




Home Index