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)))))
  
 (
ws1
W.(
ws2
W.
a:Id. ((a 
 ws1) 
 (a 
 ws2))))
  
 (
e:E(Proposal)
       
Q:Id List
        ((Q 
 W)
        
 (
l:E(VoteState) List
            ((
a
Q.(
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:
            (
a
Q.
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: (
x
L. 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: (
x
L.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