Step * of Lemma rsc4_quorum_invariant

es:EO'. e1:E. Cmd:ValueAllType. n,round:. p:Cmd List  (Id List).
  (p  rsc4_QuorumState(Cmd) <n, round>(e1)
   let cmds,locs = p 
     in no_repeats(Id;locs)
         (||locs|| = ||cmds||)
         (i:||locs||. (e:E. ((e <loc e1)  <<<n, round>, cmds[i]>, locs[i] rsc4_vote'base(Cmd)(e)))))
BY
{ (MemoryInvariant
   THEN (Decide i = 0 THENA Auto)
   THEN Try (((RWO "select_cons_tl" 0 THENA Auto) THEN BackThruSomeHyp THEN Auto))
   THEN (HypSubst' (-1) 0 THENA Auto)
   THEN Reduce 0
   THEN D 0
   THEN InstConcl [e']
   THEN Auto) }



\mforall{}es:EO'.  \mforall{}e1:E.  \mforall{}Cmd:ValueAllType.  \mforall{}n,round:\mBbbZ{}.  \mforall{}p:Cmd  List  \mtimes{}  (Id  List).
    (p  \mmember{}  rsc4\_QuorumState(Cmd)  <n,  round>(e1)
    {}\mRightarrow{}  let  cmds,locs  =  p 
          in  no\_repeats(Id;locs)
                \mwedge{}  (||locs||  =  ||cmds||)
                \mwedge{}  (\mforall{}i:\mBbbN{}||locs||
                          (\mdownarrow{}\mexists{}e:E.  ((e  <loc  e1)  \mwedge{}  <<<n,  round>,  cmds[i]>,  locs[i]>  \mmember{}  rsc4\_vote'base(Cmd)(e)))))


By


(MemoryInvariant
  THEN  (Decide  i  =  0  THENA  Auto)\mcdot{}
  THEN  Try  (((RWO  "select\_cons\_tl"  0  THENA  Auto)  THEN  BackThruSomeHyp  THEN  Auto)\mcdot{})
  THEN  (HypSubst'  (-1)  0  THENA  Auto)
  THEN  Reduce  0
  THEN  D  0
  THEN  InstConcl  [\mkleeneopen{}e'\mkleeneclose{}]\mcdot{}
  THEN  Auto)



Home Index