Step
*
1
of Lemma
new_23_sig_replica_state_from_proposal
1. Cmd : {T:Type| valueall-type(T)} @i'
2. notify : Atom List@i
3. propose : Atom List@i
4. f : new_23_sig_headers_type{i:l}(Cmd;notify;propose)@i'
5. (f propose) = (ℤ × Cmd) ∈ Type
6. (f notify) = (ℤ × Cmd) ∈ Type
7. (f ``new_23_sig decided``) = (ℤ × Cmd) ∈ Type
8. (f ``new_23_sig retry``) = (ℤ × ℤ × Cmd) ∈ Type
9. (f ``new_23_sig vote``) = (ℤ × ℤ × Cmd × Id) ∈ Type
10. f ∈ Name ─→ Type
11. es : EO+(Message(f))@i'
12. e : E@i
13. slots : set-sig{i:l}(ℤ)@i'
14. s : set-sig-set(slots)@i
15. s ∈
     Memory-loc-class(new_23_sig_update_replica(Cmd;slots);λloc.{set-sig-empty(slots)};...)(e)
16. v : set-sig-set(slots)@i
17. v = set-sig-empty(slots) ∈ set-sig-set(slots)
18. n : ℤ@i
19. ↑(set-sig-member(slots) n v)@i
⊢ ∃e':E
   ∃c:Cmd
    ((e' <loc e)
    ∧ <n, c> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')
    ∧ (¬↑(set-sig-member(slots) n let x,y = new_23_sig_ReplicaState(Cmd;notify;propose;slots;f) es e' in x)))
BY
{ ((HypSubst (-3) (-1) THENA Auto) THEN RWO "set-sig-empty-prop2" (-1) THEN Auto) }
Latex:
Latex:
1.  Cmd  :  \{T:Type|  valueall-type(T)\}  @i'
2.  notify  :  Atom  List@i
3.  propose  :  Atom  List@i
4.  f  :  new\_23\_sig\_headers\_type\{i:l\}(Cmd;notify;propose)@i'
5.  (f  propose)  =  (\mBbbZ{}  \mtimes{}  Cmd)
6.  (f  notify)  =  (\mBbbZ{}  \mtimes{}  Cmd)
7.  (f  ``new\_23\_sig  decided``)  =  (\mBbbZ{}  \mtimes{}  Cmd)
8.  (f  ``new\_23\_sig  retry``)  =  (\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)
9.  (f  ``new\_23\_sig  vote``)  =  (\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id)
10.  f  \mmember{}  Name  {}\mrightarrow{}  Type
11.  es  :  EO+(Message(f))@i'
12.  e  :  E@i
13.  slots  :  set-sig\{i:l\}(\mBbbZ{})@i'
14.  s  :  set-sig-set(slots)@i
15.  s  \mmember{}
          Memory-loc-class(new\_23\_sig\_update\_replica(Cmd;slots);\mlambda{}loc.\{set-sig-empty(slots)\};...)(e)
16.  v  :  set-sig-set(slots)@i
17.  v  =  set-sig-empty(slots)
18.  n  :  \mBbbZ{}@i
19.  \muparrow{}(set-sig-member(slots)  n  v)@i
\mvdash{}  \mexists{}e':E
      \mexists{}c:Cmd
        ((e'  <loc  e)
        \mwedge{}  <n,  c>  \mmember{}  new\_23\_sig\_Proposal(Cmd;notify;propose;f)(e')
        \mwedge{}  (\mneg{}\muparrow{}(set-sig-member(slots)  n 
                    let  x,y  =  new\_23\_sig\_ReplicaState(Cmd;notify;propose;slots;f)  es  e' 
                    in  x)))
By
Latex:
((HypSubst  (-3)  (-1)  THENA  Auto)  THEN  RWO  "set-sig-empty-prop2"  (-1)  THEN  Auto)
Home
Index