Paxos-spec2-body{i:l}(Info;es;T;Reserve;VoteState;Proposal;Vote;W;Decide) ==
  (e:E(VoteState)
     e':E(Reserve)
      ((Reserve(e') = Reservation(VoteState(e)))
       (loc(e') = Name(VoteState(e)))
       MaxVote(es;T;Vote;e';Info(VoteState(e)))))
   (ws1W.(ws2W.a:Id. ((a  ws1)  (a  ws2))))
   (e:E(Proposal)
       Q:Id List
        ((Q  W)
         (l:E(VoteState) List
            ((aQ.(e'l. (Name(VoteState(e')) = a)
                 (Reservation(VoteState(e')) = (fst(Proposal(e))))))
             let b' = imax-list(map(e'.Ballot(VoteState(e'));l)) in
                  (b' = (-1))
                   ((0  b')
                     (b' < (fst(Proposal(e))))
                     (e'l. Info(VoteState(e'))
                      = (inl <b', snd(Proposal(e))> )))))))
   (e1,e2:E(Proposal).
       (((fst(Proposal(e1))) = (fst(Proposal(e2))))
        (Proposal(e1) = Proposal(e2))))
   (e:E(Vote)
       ((e':E(Reserve). (e' loc e   (Reserve(e')  (fst(Vote(e))))))
        (e':E(Proposal). (Proposal(e') = Vote(e)))))
   (d:E(Decide)
       Q:Id List
        ((Q  W)
         (b:
            (aQ.e:E(Vote). ((loc(e) = a)  (Vote(e) = <b, Decide(d)>))))))



Definitions :  MaxVote: MaxVote(es;T;Vote;e;s),  paxos-state-name: Name(s),  paxos-state-reservation: Reservation(s),  let: let,  imax-list: imax-list(L),  map: map(f;as),  lambda: x.A[x],  paxos-state-ballot: Ballot(s),  or: P  Q,  minus: -n,  natural_number: $n,  less_than: a < b,  l_exists: (xL. P[x]),  union: left + right,  unit: Unit,  paxos-state-info: Info(s),  inl: inl x ,  pi2: snd(t),  int: ,  implies: P  Q,  es-le: e loc e' ,  le: A  B,  pi1: fst(t),  all: x:A. B[x],  l_member: (x  l),  list: type List,  l_all: (xL.P[x]),  exists: x:A. B[x],  es-E-interface: E(X),  and: P  Q,  Id: Id,  es-loc: loc(e),  equal: s = t,  product: x:A  B[x],  nat: ,  pair: <a, b>,  eclass-val: X(e)
FDL editor aliases :  Paxos-spec2-body

Paxos-spec2-body\{i:l\}(Info;es;T;Reserve;VoteState;Proposal;Vote;W;Decide)  ==
    (\mforall{}e:E(VoteState)
          \mexists{}e':E(Reserve)
            ((Reserve(e')  =  Reservation(VoteState(e)))
            \mwedge{}  (loc(e')  =  Name(VoteState(e)))
            \mwedge{}  MaxVote(es;T;Vote;e';Info(VoteState(e)))))
    \mwedge{}  (\mforall{}ws1\mmember{}W.(\mforall{}ws2\mmember{}W.\mexists{}a:Id.  ((a  \mmember{}  ws1)  \mwedge{}  (a  \mmember{}  ws2))))
    \mwedge{}  (\mforall{}e:E(Proposal)
              \mexists{}Q:Id  List
                ((Q  \mmember{}  W)
                \mwedge{}  (\mexists{}l:E(VoteState)  List
                        ((\mforall{}a\mmember{}Q.(\mexists{}e'\mmember{}l.  (Name(VoteState(e'))  =  a)
                                \mwedge{}  (Reservation(VoteState(e'))  =  (fst(Proposal(e))))))
                        \mwedge{}  let  b'  =  imax-list(map(\mlambda{}e'.Ballot(VoteState(e'));l))  in
                                    (b'  =  (-1))
                                    \mvee{}  ((0  \mleq{}  b')
                                        \mwedge{}  (b'  <  (fst(Proposal(e))))
                                        \mwedge{}  (\mexists{}e'\mmember{}l.  Info(VoteState(e'))  =  (inl  <b',  snd(Proposal(e))>  )))))))
    \mwedge{}  (\mforall{}e1,e2:E(Proposal).
              (((fst(Proposal(e1)))  =  (fst(Proposal(e2))))  {}\mRightarrow{}  (Proposal(e1)  =  Proposal(e2))))
    \mwedge{}  (\mforall{}e:E(Vote)
              ((\mforall{}e':E(Reserve).  (e'  \mleq{}loc  e    {}\mRightarrow{}  (Reserve(e')  \mleq{}  (fst(Vote(e))))))
              \mwedge{}  (\mexists{}e':E(Proposal).  (Proposal(e')  =  Vote(e)))))
    \mwedge{}  (\mforall{}d:E(Decide)
              \mexists{}Q:Id  List
                ((Q  \mmember{}  W)  \mwedge{}  (\mexists{}b:\mBbbN{}.  (\mforall{}a\mmember{}Q.\mexists{}e:E(Vote).  ((loc(e)  =  a)  \mwedge{}  (Vote(e)  =  <b,  Decide(d)>))))))


Date html generated: 2010_08_28-PM-12_46_41
Last ObjectModification: 2010_04_16-AM-10_49_45

Home Index