Step
*
2
of Lemma
pv11_p1_ldr_fun_mem_adopted
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. e1 : E@i
14. e2 : E@i
15. ldrs_uid : Id ─→ ℤ@i
16. pvals : (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i
17. s : ℤ@i
18. c : Cmd@i
19. (e1 <loc e2)@i
20. <fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)), pvals> ∈ pv11_p1_adopted'base(Cmd;f)(e1)@i
21. (↓(<s, c> ∈ snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)))))
∨ (∃b:pv11_p1_Ballot_Num(). (↓(<b, s, c> ∈ pvals)))@i
22. case inr (inl <fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)), pvals>) 
 of inl(x) =>
 True
 | inr(x) =>
 case x
  of inl(x) =>
  let bnum,pvals = x 
  in let bnum1,active1,proposals1 = pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1) in 
     let bnum2,active2,proposals2 = pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e2) in 
     (bnum1 = bnum ∈ pv11_p1_Ballot_Num())
     
⇒ (∀s:ℤ. ∀b:pv11_p1_Ballot_Num(). ∀c:Cmd.
           (((<s, c> ∈ proposals1) ∨ (<b, s, c> ∈ pvals)) 
⇒ (↑(pv11_p1_in_domain(Cmd) s proposals2))))
  | inr(x) =>
  True
⊢ ↑(pv11_p1_in_domain(Cmd) s (snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e2)))))
BY
{ (AllReduce THEN RepeatFor 4 (UsePairEta [1] (-1)) THEN Auto) }
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. e1 : E@i
14. e2 : E@i
15. ldrs_uid : Id ─→ ℤ@i
16. pvals : (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i
17. s : ℤ@i
18. c : Cmd@i
19. (e1 <loc e2)@i
20. <fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)), pvals> ∈ pv11_p1_adopted'base(Cmd;f)(e1)@i
21. (↓(<s, c> ∈ snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)))))
∨ (∃b:pv11_p1_Ballot_Num(). (↓(<b, s, c> ∈ pvals)))@i
22. ((fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)))
= (fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)))
∈ pv11_p1_Ballot_Num())
⇒ (∀s:ℤ. ∀b:pv11_p1_Ballot_Num(). ∀c:Cmd.
      (((<s, c> ∈ snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e1)))) ∨ (<b, s, c> ∈ pvals))
      
⇒ (↑(pv11_p1_in_domain(Cmd) s (snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e2))))))))
⊢ ↑(pv11_p1_in_domain(Cmd) s (snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;f;es;e2)))))
Latex:
Latex:
1.  Cmd  :  \{T:Type|  valueall-type(T)\}  @i'
2.  f  :  pv11\_p1\_headers\_type\{i:l\}(Cmd)@i'
3.  (f  [decision])  =  (\mBbbZ{}  \mtimes{}  Cmd)
4.  (f  [propose])  =  (\mBbbZ{}  \mtimes{}  Cmd)
5.  (f  ``pv11\_p1  adopted``)  =  (pv11\_p1\_Ballot\_Num()  \mtimes{}  ((pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List))
6.  (f  ``pv11\_p1  preempted``)  =  pv11\_p1\_Ballot\_Num()
7.  (f  ``pv11\_p1  p2b``)  =  (Id  \mtimes{}  pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  pv11\_p1\_Ballot\_Num())
8.  (f  ``pv11\_p1  p2a``)  =  (Id  \mtimes{}  pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)
9.  (f  ``pv11\_p1  p1b``)
=  (Id  \mtimes{}  pv11\_p1\_Ballot\_Num()  \mtimes{}  pv11\_p1\_Ballot\_Num()  \mtimes{}  ((pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List))
10.  (f  ``pv11\_p1  p1a``)  =  (Id  \mtimes{}  pv11\_p1\_Ballot\_Num())
11.  f  \mmember{}  Name  {}\mrightarrow{}  Type
12.  es  :  EO+(Message(f))@i'
13.  e1  :  E@i
14.  e2  :  E@i
15.  ldrs$_{uid}$  :  Id  {}\mrightarrow{}  \mBbbZ{}@i
16.  pvals  :  (pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List@i
17.  s  :  \mBbbZ{}@i
18.  c  :  Cmd@i
19.  (e1  <loc  e2)@i
20.  <fst(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;es;e1)),  pvals>  \mmember{}  pv11\_p1\_ado\000Cpted'base(Cmd;f)(e1)@i
21.  (\mdownarrow{}(<s,  c>  \mmember{}  snd(snd(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;es;e1)))))
\mvee{}  (\mexists{}b:pv11\_p1\_Ballot\_Num().  (\mdownarrow{}(<b,  s,  c>  \mmember{}  pvals)))@i
22.  case  inr  (inl  <fst(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;es;e1)),  pvals>\000C) 
  of  inl(x)  =>
  True
  |  inr(x)  =>
  case  x
    of  inl(x)  =>
    let  bnum,pvals  =  x 
    in  let  bnum1,active1,proposals1  =  pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;es\000C;e1)  in 
          let  bnum2,active2,proposals2  =  pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;es\000C;e2)  in 
          (bnum1  =  bnum)
          {}\mRightarrow{}  (\mforall{}s:\mBbbZ{}.  \mforall{}b:pv11\_p1\_Ballot\_Num().  \mforall{}c:Cmd.
                      (((<s,  c>  \mmember{}  proposals1)  \mvee{}  (<b,  s,  c>  \mmember{}  pvals))
                      {}\mRightarrow{}  (\muparrow{}(pv11\_p1\_in\_domain(Cmd)  s  proposals2))))
    |  inr(x)  =>
    True
\mvdash{}  \muparrow{}(pv11\_p1\_in\_domain(Cmd)  s  (snd(snd(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;f;\000Ces;e2)))))
By
Latex:
(AllReduce  THEN  RepeatFor  4  (UsePairEta  [1]  (-1))  THEN  Auto)
Home
Index