Step
*
of Lemma
pv11_p1_commander_state_from_p2bs
∀Cmd:ValueAllType. ∀f:pv11_p1_headers_type{i:l}(Cmd). ∀es:EO+(Message(f)). ∀start,e,e0:E. ∀accpts,ldrs:bag(Id).
∀ldrs_uid:Id ─→ ℤ. ∀reps:bag(Id). ∀b:pv11_p1_Ballot_Num(). ∀s:ℤ. ∀c:Cmd. ∀waitfor:bag(Id). ∀i,l:Id.
  (start ≤loc e 
  
⇒ Inj(Id;ℤ;ldrs_uid)
  
⇒ pv11_p1_message-constraint{paxos-v11-part1.esh:o}(Cmd; accpts; ldrs; ldrs_uid; reps; f; es)
  
⇒ pv11_p1_p2a'send(Cmd;f) i <l, b, s, c> ∈ pv11_p1_main(Cmd;accpts;ldrs;ldrs_uid;reps;f)(e0)
  
⇒ (waitfor = pv11_p1_CommanderStateFun(Cmd;accpts;f;b;s;es.start;e) ∈ bag(Id))
  
⇒ (↓∃L:E List
        ((waitfor = [i∈accpts|¬bi ∈b map(λe.loc(e);L))] ∈ bag(Id))
        ∧ (∀e':E
             ((e' ∈ L)
             
⇒ ((e' < e)
                ∧ loc(e') ↓∈ accpts
                ∧ (b = (fst(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e'))) ∈ pv11_p1_Ballot_Num())
                ∧ (<b, s, c> ∈ snd(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e')))))))))
BY
{ StartEmlProof }
1
1. Cmd : {T:Type| valueall-type(T)} @i'
2. f : pv11_p1_headers_type{i:l}(Cmd)@i'
3. (f [decision]) = (ℤ × Cmd) ∈ Type
4. (f [propose]) = (ℤ × Cmd) ∈ Type
5. (f ``pv11_p1 adopted``) = (pv11_p1_Ballot_Num() × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List)) ∈ Type
6. (f ``pv11_p1 preempted``) = pv11_p1_Ballot_Num() ∈ Type
7. (f ``pv11_p1 p2b``) = (Id × pv11_p1_Ballot_Num() × ℤ × pv11_p1_Ballot_Num()) ∈ Type
8. (f ``pv11_p1 p2a``) = (Id × pv11_p1_Ballot_Num() × ℤ × Cmd) ∈ Type
9. (f ``pv11_p1 p1b``)
= (Id × pv11_p1_Ballot_Num() × pv11_p1_Ballot_Num() × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List))
∈ Type
10. (f ``pv11_p1 p1a``) = (Id × pv11_p1_Ballot_Num()) ∈ Type
11. f ∈ Name ─→ Type
12. es : EO+(Message(f))@i'
13. start : E@i
14. e : E@i
15. e0 : E@i
16. accpts : bag(Id)@i
17. ldrs : bag(Id)@i
18. ldrs_uid : Id ─→ ℤ@i
19. reps : bag(Id)@i
20. b : pv11_p1_Ballot_Num()@i
21. s : ℤ@i
22. c : Cmd@i
23. waitfor : bag(Id)@i
24. i : Id@i
25. l : Id@i
26. start ≤loc e @i
27. Inj(Id;ℤ;ldrs_uid)@i
28. pv11_p1_message-constraint{paxos-v11-part1.esh:o}(Cmd; accpts; ldrs; ldrs_uid; reps; f; es)@i
29. pv11_p1_p2a'send(Cmd;f) i <l, b, s, c> ∈ pv11_p1_main(Cmd;accpts;ldrs;ldrs_uid;reps;f)(e0)@i
30. waitfor = pv11_p1_CommanderStateFun(Cmd;accpts;f;b;s;es.start;e) ∈ bag(Id)@i
⊢ ↓∃L:E List
    ((waitfor = [i∈accpts|¬bi ∈b map(λe.loc(e);L))] ∈ bag(Id))
    ∧ (∀e':E
         ((e' ∈ L)
         
⇒ ((e' < e)
            ∧ loc(e') ↓∈ accpts
            ∧ (b = (fst(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e'))) ∈ pv11_p1_Ballot_Num())
            ∧ (<b, s, c> ∈ snd(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e')))))))
Latex:
Latex:
\mforall{}Cmd:ValueAllType.  \mforall{}f:pv11\_p1\_headers\_type\{i:l\}(Cmd).  \mforall{}es:EO+(Message(f)).  \mforall{}start,e,e0:E.
\mforall{}accpts,ldrs:bag(Id).  \mforall{}ldrs$_{uid}$:Id  {}\mrightarrow{}  \mBbbZ{}.  \mforall{}reps:bag(Id).  \mforall{}b:pv11\_p1\_Ballot\_Nu\000Cm().  \mforall{}s:\mBbbZ{}.  \mforall{}c:Cmd.
\mforall{}waitfor:bag(Id).  \mforall{}i,l:Id.
    (start  \mleq{}loc  e 
    {}\mRightarrow{}  Inj(Id;\mBbbZ{};ldrs$_{uid}$)
    {}\mRightarrow{}  pv11\_p1\_message-constraint\{paxos-v11-part1.esh:o\}(Cmd;  accpts;  ldrs;  ldrs$_{uid\mbackslash{}ff7\000Cd$;  reps;  f;  es)
    {}\mRightarrow{}  pv11\_p1\_p2a'send(Cmd;f)  i  <l,  b,  s,  c>  \mmember{}  pv11\_p1\_main(Cmd;accpts;ldrs;ldrs$_{uid\mbackslash{}ff\000C7d$;reps;f)(e0)
    {}\mRightarrow{}  (waitfor  =  pv11\_p1\_CommanderStateFun(Cmd;accpts;f;b;s;es.start;e))
    {}\mRightarrow{}  (\mdownarrow{}\mexists{}L:E  List
                ((waitfor  =  [i\mmember{}accpts|\mneg{}\msubb{}i  \mmember{}\msubb{}  map(\mlambda{}e.loc(e);L))])
                \mwedge{}  (\mforall{}e':E
                          ((e'  \mmember{}  L)
                          {}\mRightarrow{}  ((e'  <  e)
                                \mwedge{}  loc(e')  \mdownarrow{}\mmember{}  accpts
                                \mwedge{}  (b  =  (fst(pv11\_p1\_AcceptorStateFun(Cmd;ldrs$_{uid}$;f;es;e')))\000C)
                                \mwedge{}  (<b,  s,  c>  \mmember{}  snd(pv11\_p1\_AcceptorStateFun(Cmd;ldrs$_{uid}$;f;e\000Cs;e')))))))))
By
Latex:
StartEmlProof
Home
Index