Step
*
of Lemma
rsc4-vote2
[Cmd:ValueAllType]. 
[clients:bag(Id)]. 
[cmdeq:EqDecider(Cmd)]. 
[coeff,flrs:
]. 
[locs:bag(Id)]. 
[es:EO']. 
[e:E].
[rcvr:Id]. 
[num,rnd:
]. 
[c:Cmd]. 
[sndr:Id].
  (<rcvr, rsc4_vote'msg(Cmd;<<<num, rnd>, c>, sndr>)> 
 rsc4_Main(e)
  

 loc(e) 
 locs
      
 (rcvr 
 locs 
 (sndr = loc(e)))
      
 (
e':{e':E| e' 
loc e } 
           ((
max:
. 
missing:
 List. (<max, missing> 
 rsc4_ReplicaState(Cmd)(e') 
 ((max < num) 
 (num 
 missing))))
           
 (
c':Cmd
               ((
((e = e') 
 (c = c') 
 (rnd = 0))
                  
 ((
e1:{e1:E| e1 
loc e } 
                        (((
maxr:
. (maxr 
 rsc4_NewRoundsState(Cmd) num(e1) 
 (maxr < rnd)))
                        
 (<<num, rnd>, c> 
 rsc4_retry'base(Cmd)(e1)
                          
 (
sndr':Id. <<<num, rnd>, c>, sndr'> 
 rsc4_vote'base(Cmd)(e1))))
                        
 (e = e1)))
                    
 (no rsc4_Notify(Cmd;clients) num between e' and e)))
               
 (<num, c'> 
 rsc4_propose'base(Cmd)(e')
                 
 (
rnd':
. 
sndr':Id. <<<num, rnd'>, c'>, sndr'> 
 rsc4_vote'base(Cmd)(e'))))))))
BY
{ (InstLemma `rsc4-vote` []
   THEN RepUR ``rsc4_ReplicaState rsc4_NewRoundsState rsc4_retry'base rsc4_vote'base rsc4_propose'base rsc4_vote'msg`` 0
   THEN Trivial) }
\mforall{}[Cmd:ValueAllType].  \mforall{}[clients:bag(Id)].  \mforall{}[cmdeq:EqDecider(Cmd)].  \mforall{}[coeff,flrs:\mBbbZ{}].  \mforall{}[locs:bag(Id)].
\mforall{}[es:EO'].  \mforall{}[e:E].  \mforall{}[rcvr:Id].  \mforall{}[num,rnd:\mBbbZ{}].  \mforall{}[c:Cmd].  \mforall{}[sndr:Id].
    (<rcvr,  rsc4\_vote'msg(Cmd;<<<num,  rnd>,  c>,  sndr>)>  \mmember{}  rsc4\_Main(e)
    \mLeftarrow{}{}\mRightarrow{}  loc(e)  \mdownarrow{}\mmember{}  locs
            \mwedge{}  (rcvr  \mdownarrow{}\mmember{}  locs  \mwedge{}  (sndr  =  loc(e)))
            \mwedge{}  (\mdownarrow{}\mexists{}e':\{e':E|  e'  \mleq{}loc  e  \} 
                      ((\mdownarrow{}\mexists{}max:\mBbbZ{}
                              \mexists{}missing:\mBbbZ{}  List
                                (<max,  missing>  \mmember{}  rsc4\_ReplicaState(Cmd)(e')  \mwedge{}  ((max  <  num)  \mvee{}  (num  \mmember{}  missing))))
                      \mwedge{}  (\mexists{}c':Cmd
                              ((\mdownarrow{}((e  =  e')  \mwedge{}  (c  =  c')  \mwedge{}  (rnd  =  0))
                                    \mvee{}  ((\mdownarrow{}\mexists{}e1:\{e1:E|  e1  \mleq{}loc  e  \} 
                                                (((\mdownarrow{}\mexists{}maxr:\mBbbZ{}.  (maxr  \mmember{}  rsc4\_NewRoundsState(Cmd)  num(e1)  \mwedge{}  (maxr  <  rnd)))
                                                \mwedge{}  (<<num,  rnd>,  c>  \mmember{}  rsc4\_retry'base(Cmd)(e1)
                                                    \mdownarrow{}\mvee{}  (\mexists{}sndr':Id.  <<<num,  rnd>,  c>,  sndr'>  \mmember{}  rsc4\_vote'base(Cmd)(e1))))
                                                \mwedge{}  (e  =  e1)))
                                        \mwedge{}  (no  rsc4\_Notify(Cmd;clients)  num  between  e'  and  e)))
                              \mwedge{}  (<num,  c'>  \mmember{}  rsc4\_propose'base(Cmd)(e')
                                  \mdownarrow{}\mvee{}  (\mexists{}rnd':\mBbbZ{}.  \mexists{}sndr':Id.  <<<num,  rnd'>,  c'>,  sndr'>  \mmember{}  rsc4\_vote'base(Cmd)(e'))))))))
By
(InstLemma  `rsc4-vote`  []
  THEN  ...
  THEN  Trivial)
Home
Index