Step
*
of Lemma
new_23_sig_quorum_state_fun_eq
∀Cmd:ValueAllType. ∀notify,propose:Atom List. ∀f:new_23_sig_headers_type{i:l}(Cmd;notify;propose). ∀es:EO+(Message(f)).
∀e:E. ∀nr:ℤ × ℤ.
  (new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;e)
  = if first(e) then <[], []>
    if pred(e) ∈b new_23_sig_vote'base(Cmd;notify;propose;f)
      then new_23_sig_add_to_quorum(Cmd) nr loc(e) new_23_sig_vote'base(Cmd;notify;propose;f)@pred(e) 
           new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
    else new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
    fi 
  ∈ (Cmd List × (Id List)))
BY
{ StartEmlProof }
1
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. nr : ℤ × ℤ@i
⊢ new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;e)
= if first(e) then <[], []>
  if pred(e) ∈b new_23_sig_vote'base(Cmd;notify;propose;f)
    then new_23_sig_add_to_quorum(Cmd) nr loc(e) new_23_sig_vote'base(Cmd;notify;propose;f)@pred(e) 
         new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
  else new_23_sig_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
  fi 
∈ (Cmd List × (Id List))
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{}nr:\mBbbZ{}  \mtimes{}  \mBbbZ{}.
    (new\_23\_sig\_QuorumStateFun(Cmd;notify;propose;f;nr;es;e)
    =  if  first(e)  then  <[],  []>
        if  pred(e)  \mmember{}\msubb{}  new\_23\_sig\_vote'base(Cmd;notify;propose;f)
            then  new\_23\_sig\_add\_to\_quorum(Cmd)  nr  loc(e) 
                      new\_23\_sig\_vote'base(Cmd;notify;propose;f)@pred(e) 
                      new\_23\_sig\_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
        else  new\_23\_sig\_QuorumStateFun(Cmd;notify;propose;f;nr;es;pred(e))
        fi  )
By
Latex:
StartEmlProof
Home
Index