Step * of Lemma new_23_sig_replica_state_from_proposal

Cmd:ValueAllType. ∀notify,propose:Atom List. ∀f:new_23_sig_headers_type{i:l}(Cmd;notify;propose). ∀es:EO+(Message(f)).
e:E. ∀slots:set-sig{i:l}(ℤ). ∀s:set-sig-set(slots).
  (s ∈ new_23_sig_ReplicaState(Cmd;notify;propose;slots;f)(e)
   (∀n:ℤ
        ((↑(set-sig-member(slots) s))
         (∃e':E
             ∃c:Cmd
              ((e' <loc e)
              ∧ <n, c> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')
              ∧ (¬↑(set-sig-member(slots) new_23_sig_ReplicaStateFun(Cmd;notify;propose;slots;f;es;e'))))))))
BY
MemoryInvariant }

1
1. Cmd {T:Type| valueall-type(T)} @i'
2. notify Atom List@i
3. propose Atom List@i
4. 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@i
13. slots set-sig{i:l}(ℤ)@i'
14. set-sig-set(slots)@i
15. s ∈
     Memory-loc-class(new_23_sig_update_replica(Cmd;slots);λloc.{set-sig-empty(slots)};...)(e)
16. set-sig-set(slots)@i
17. set-sig-empty(slots) ∈ set-sig-set(slots)
18. : ℤ@i
19. ↑(set-sig-member(slots) v)@i
⊢ ∃e':E
   ∃c:Cmd
    ((e' <loc e)
    ∧ <n, c> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')
    ∧ (¬↑(set-sig-member(slots) let x,y new_23_sig_ReplicaState(Cmd;notify;propose;slots;f) es e' in x)))

2
1. Cmd {T:Type| valueall-type(T)} @i'
2. notify Atom List@i
3. propose Atom List@i
4. 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@i
13. slots set-sig{i:l}(ℤ)@i'
14. set-sig-set(slots)@i
15. s ∈
     Memory-loc-class(new_23_sig_update_replica(Cmd;slots);λloc.{set-sig-empty(slots)};...)(e)
16. a1 : ℤ@i
17. a2 Cmd@i
18. e' E@i
19. s1 set-sig-set(slots)@i
20. (e' <loc e)@i
21. <a1, a2> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')@i
22. s1 ∈
     Memory-loc-class(new_23_sig_update_replica(Cmd;slots);λloc.{set-sig-empty(slots)};...)(e')@i
23. ∀n:ℤ
      ((↑(set-sig-member(slots) s1))
       (∃e':E
           ∃c:Cmd
            ((e' <loc e)
            ∧ <n, c> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')
            ∧ (¬↑(set-sig-member(slots) 
                  let x,y new_23_sig_ReplicaState(Cmd;notify;propose;slots;f) es e' 
                  in x)))))@i
24. : ℤ@i
25. a1 ∈ ℤ
⊢ ∃e':E
   ∃c:Cmd
    ((e' <loc e)
    ∧ <n, c> ∈ new_23_sig_Proposal(Cmd;notify;propose;f)(e')
    ∧ (¬↑(set-sig-member(slots) let x,y new_23_sig_ReplicaState(Cmd;notify;propose;slots;f) es e' in x)))


Latex:


Latex:
\mforall{}Cmd:ValueAllType.  \mforall{}notify,propose:Atom  List.  \mforall{}f:new\_23\_sig\_headers\_type\{i:l\}(Cmd;notify;propose).
\mforall{}es:EO+(Message(f)).  \mforall{}e:E.  \mforall{}slots:set-sig\{i:l\}(\mBbbZ{}).  \mforall{}s:set-sig-set(slots).
    (s  \mmember{}  new\_23\_sig\_ReplicaState(Cmd;notify;propose;slots;f)(e)
    {}\mRightarrow{}  (\mforall{}n:\mBbbZ{}
                ((\muparrow{}(set-sig-member(slots)  n  s))
                {}\mRightarrow{}  (\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 
                                        new\_23\_sig\_ReplicaStateFun(Cmd;notify;propose;slots;f;es;e'))))))))


By


Latex:
MemoryInvariant




Home Index