Step
*
of Lemma
pv11_p1_ldr_active2
∀Cmd:ValueAllType. ∀f:pv11_p1_headers_type{i:l}(Cmd). ∀es:EO+(Message(f)). ∀e:E. ∀ldrs_uid:Id ⟶ ℤ.
∀v:pv11_p1_Ballot_Num() × 𝔹 × ((ℤ × Cmd) List).
(v ∈ pv11_p1_LeaderState(Cmd;ldrs_uid;f)(e)
⇒ let bnum,active,proposals1 = v in
(↑active)
⇒ (↓∃e':E
∃pvals:(pv11_p1_Ballot_Num() × ℤ × Cmd) List
∃proposals:(ℤ × Cmd) List
∃b:𝔹
((e' <loc e)
∧ <bnum, pvals> ∈ pv11_p1_adopted'base(Cmd;f)(e')
∧ <bnum, b, proposals> ∈ pv11_p1_LeaderState(Cmd;ldrs_uid;f)(e'))))
BY
{ MemoryInvariant' }
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. e : E@i
14. ldrs_uid : Id ⟶ ℤ@i
15. v1 : pv11_p1_Ballot_Num()@i
16. v3 : 𝔹@i
17. v4 : (ℤ × Cmd) List@i
18. <v1, v3, v4> ∈
Memory-loc-class(pv11_p1_on_propose(Cmd) + pv11_p1_when_adopted(Cmd;ldrs_uid) + ...;λloc.{pv11_p1_init_leader(Cmd)
loc};... (+) ...)(e)
19. x1 : pv11_p1_Ballot_Num()@i'
20. x2 : (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i'
21. e' : E@i'
22. s1 : pv11_p1_Ballot_Num()@i'
23. s3 : 𝔹@i'
24. s4 : (ℤ × Cmd) List@i'
25. (e' <loc e)@i'
26. inr (inl <x1, x2>) ∈ pv11_p1_propose'base(Cmd;f) (+) pv11_p1_adopted'base(Cmd;f) (+) pv11_p1_preempted'base(Cmd;f)(\000Ce')@i'
27. <s1, s3, s4> ∈
Memory-loc-class(pv11_p1_on_propose(Cmd) + pv11_p1_when_adopted(Cmd;ldrs_uid) + ...;λloc.{pv11_p1_init_leader(Cmd)
loc};... (+) ...)(e')@i'
28. (↑s3)
⇒ (↓∃e':E
∃pvals:(pv11_p1_Ballot_Num() × ℤ × Cmd) List
∃proposals:(ℤ × Cmd) List
∃b:𝔹
((e' <loc e)
∧ <s1, pvals> ∈ pv11_p1_adopted'base(Cmd;f)(e')
∧ <s1, b, proposals> ∈ pv11_p1_LeaderState(Cmd;ldrs_uid;f)(e')))@i'
29. x1 = s1 ∈ pv11_p1_Ballot_Num()
⊢ ↓∃e':E
∃pvals:(pv11_p1_Ballot_Num() × ℤ × Cmd) List
∃proposals:(ℤ × Cmd) List
∃b:𝔹
((e' <loc e)
∧ <s1, pvals> ∈ pv11_p1_adopted'base(Cmd;f)(e')
∧ <s1, b, proposals> ∈ pv11_p1_LeaderState(Cmd;ldrs_uid;f)(e'))
Latex:
Latex:
\mforall{}Cmd:ValueAllType. \mforall{}f:pv11\_p1\_headers\_type\{i:l\}(Cmd). \mforall{}es:EO+(Message(f)). \mforall{}e:E. \mforall{}ldrs$_\mbackslash{}ff7\000Cbuid}$:Id {}\mrightarrow{} \mBbbZ{}.
\mforall{}v:pv11\_p1\_Ballot\_Num() \mtimes{} \mBbbB{} \mtimes{} ((\mBbbZ{} \mtimes{} Cmd) List).
(v \mmember{} pv11\_p1\_LeaderState(Cmd;ldrs$_{uid}$;f)(e)
{}\mRightarrow{} let bnum,active,proposals1 = v in
(\muparrow{}active)
{}\mRightarrow{} (\mdownarrow{}\mexists{}e':E
\mexists{}pvals:(pv11\_p1\_Ballot\_Num() \mtimes{} \mBbbZ{} \mtimes{} Cmd) List
\mexists{}proposals:(\mBbbZ{} \mtimes{} Cmd) List
\mexists{}b:\mBbbB{}
((e' <loc e)
\mwedge{} <bnum, pvals> \mmember{} pv11\_p1\_adopted'base(Cmd;f)(e')
\mwedge{} <bnum, b, proposals> \mmember{} pv11\_p1\_LeaderState(Cmd;ldrs$_{uid}$;f)(e\000C'))))
By
Latex:
MemoryInvariant'
Home
Index