Step
*
1
2
of Lemma
new_23_sig_round_info_classrel2
1. Cmd : {T:Type| valueall-type(T)} 
2. propose : Atom List@i
3. notify : Atom List
4. f : new_23_sig_headers_type{i:l}(Cmd;notify;propose)
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. nrc : ℤ × ℤ × Cmd
14. ((header(e) = ``new_23_sig retry`` ∈ Name) ∧ nrc = body(e))
∨ (has-es-info-type(es;e;f;ℤ × ℤ × Cmd × Id)
  ∧ (header(e) = ``new_23_sig vote`` ∈ Name)
  ∧ ((fst(fst(nrc))) = (fst(fst(fst(msgval(e))))) ∈ ℤ)
  ∧ ((snd(fst(nrc))) = (snd(fst(fst(msgval(e))))) ∈ ℤ)
  ∧ ((snd(nrc)) = (snd(fst(msgval(e)))) ∈ Cmd))
⊢ nrc ∈ new_23_sig_RoundInfo(Cmd;notify;propose;f)(e)
BY
{ (MaUseClassRel 0 THEN D 0 THEN Auto THEN Try (DProdsAndUnions) THEN AllReduce) }
1
1. Cmd : {T:Type| valueall-type(T)} 
2. propose : Atom List@i
3. notify : Atom List
4. f : new_23_sig_headers_type{i:l}(Cmd;notify;propose)
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. n3 : ℤ
14. n4 : ℤ
15. n2 : Cmd
16. header(e) = ``new_23_sig retry`` ∈ Name
17. <<n3, n4>, n2> = body(e)
⊢ <<n3, n4>, n2> ∈ new_23_sig_retry'base(Cmd;notify;propose;f)(e)
∨ <<n3, n4>, n2> ∈ (new_23_sig_vote2retry(Cmd) o new_23_sig_vote'base(Cmd;notify;propose;f))(e)
2
1. Cmd : {T:Type| valueall-type(T)} 
2. propose : Atom List@i
3. notify : Atom List
4. f : new_23_sig_headers_type{i:l}(Cmd;notify;propose)
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. n3 : ℤ
14. n4 : ℤ
15. n2 : Cmd
16. has-es-info-type(es;e;f;ℤ × ℤ × Cmd × Id)
17. header(e) = ``new_23_sig vote`` ∈ Name
18. n3 = (fst(fst(fst(msgval(e))))) ∈ ℤ
19. n4 = (snd(fst(fst(msgval(e))))) ∈ ℤ
20. n2 = (snd(fst(msgval(e)))) ∈ Cmd
⊢ <<n3, n4>, n2> ∈ new_23_sig_retry'base(Cmd;notify;propose;f)(e)
∨ <<n3, n4>, n2> ∈ (new_23_sig_vote2retry(Cmd) o new_23_sig_vote'base(Cmd;notify;propose;f))(e)
Latex:
Latex:
1.  Cmd  :  \{T:Type|  valueall-type(T)\} 
2.  propose  :  Atom  List@i
3.  notify  :  Atom  List
4.  f  :  new\_23\_sig\_headers\_type\{i:l\}(Cmd;notify;propose)
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.  nrc  :  \mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd
14.  ((header(e)  =  ``new\_23\_sig  retry``)  \mwedge{}  nrc  =  body(e))
\mvee{}  (has-es-info-type(es;e;f;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id)
    \mwedge{}  (header(e)  =  ``new\_23\_sig  vote``)
    \mwedge{}  ((fst(fst(nrc)))  =  (fst(fst(fst(msgval(e))))))
    \mwedge{}  ((snd(fst(nrc)))  =  (snd(fst(fst(msgval(e))))))
    \mwedge{}  ((snd(nrc))  =  (snd(fst(msgval(e))))))
\mvdash{}  nrc  \mmember{}  new\_23\_sig\_RoundInfo(Cmd;notify;propose;f)(e)
By
Latex:
(MaUseClassRel  0  THEN  D  0  THEN  Auto  THEN  Try  (DProdsAndUnions)  THEN  AllReduce)
Home
Index