Step * of Lemma pi2-consensus-rcvs-to-consensus-events

[V:Type]. ∀[A:Id List]. ∀[t:ℕ+]. ∀[f:(V List) ─→ V]. ∀[v0:V]. ∀[L:consensus-rcv(V;A) List].
  ((snd(consensus-rcvs-to-consensus-events(f;t;v0;L))) L ∈ (consensus-rcv(V;A) List))
BY
(Auto
   THEN MoveToConcl (-1)
   THEN BLemma `last_induction`
   THEN Auto
   THEN MoveToConcl (-1)
   THEN RepUR ``consensus-rcvs-to-consensus-events`` 0
   THEN Try (Complete (Auto))
   THEN (RW (AddrC [2;2;1] (LemmaC `list_accum_append`)) THENA Auto)
   THEN (GenConclAtAddrType ⌈consensus-event(V;A) List × (consensus-rcv(V;A) List)⌉ [1;2;1]⋅
         THENA (Auto THEN GenConclAtAddrType ⌈𝔹 × ℤ × {a:Id| (a ∈ A)}  List × List × V⌉ [2;1]⋅ THEN Auto)
         )
   THEN Thin (-1)
   THEN -1
   THEN Reduce 0
   THEN Auto) }

1
1. Type
2. Id List
3. : ℕ+
4. (V List) ─→ V
5. v0 V
6. ys consensus-rcv(V;A) List@i
7. consensus-rcv(V;A)@i
8. v1 consensus-event(V;A) List@i
9. v2 consensus-rcv(V;A) List@i
10. v2 ys ∈ (consensus-rcv(V;A) List)@i
⊢ (snd(let b,i,as,vs,v accumulate (with value and list item r):
                          consensus-accum-num((2 t) 1;f;s;r)
                         over list:
                           v2 [y]
                         with starting value:
                          <ff, 0, [], [], v0>in <v1
                                                   if rcv-vote?(y)
                                                     then let a,i,v rcvd-vote(y) in 
                                                          [consensus-message(a;i 1;inl <i, v>)]
                                                     else []
                                                     fi 
                                                   if b
                                                     then if null(as)
                                                          then [Archive(v); NextInning]
                                                          else map(λn.NextInning;upto(i 
                                                                   ||filter(λx.is-inning-event(x);v1)||))
                                                               [Archive(v); NextInning]
                                                          fi 
                                                     else []
                                                     fi 
                                                  v2 [y]
                                                  >))
(ys [y])
∈ (consensus-rcv(V;A) List)


Latex:


\mforall{}[V:Type].  \mforall{}[A:Id  List].  \mforall{}[t:\mBbbN{}\msupplus{}].  \mforall{}[f:(V  List)  {}\mrightarrow{}  V].  \mforall{}[v0:V].  \mforall{}[L:consensus-rcv(V;A)  List].
    ((snd(consensus-rcvs-to-consensus-events(f;t;v0;L)))  =  L)


By

(Auto
  THEN  MoveToConcl  (-1)
  THEN  BLemma  `last\_induction`
  THEN  Auto
  THEN  MoveToConcl  (-1)
  THEN  RepUR  ``consensus-rcvs-to-consensus-events``  0
  THEN  Try  (Complete  (Auto))
  THEN  (RW  (AddrC  [2;2;1]  (LemmaC  `list\_accum\_append`))  0  THENA  Auto)
  THEN  (GenConclAtAddrType  \mkleeneopen{}consensus-event(V;A)  List  \mtimes{}  (consensus-rcv(V;A)  List)\mkleeneclose{}  [1;2;1]\mcdot{}
              THENA  (Auto
                            THEN  GenConclAtAddrType  \mkleeneopen{}\mBbbB{}  \mtimes{}  \mBbbZ{}  \mtimes{}  \{a:Id|  (a  \mmember{}  A)\}    List  \mtimes{}  V  List  \mtimes{}  V\mkleeneclose{}  [2;1]\mcdot{}
                            THEN  Auto)
              )
  THEN  Thin  (-1)
  THEN  D  -1
  THEN  Reduce  0
  THEN  Auto)




Home Index