Step * of Lemma three-cs-archive-invariant

[V:Type]
  ∀eq:EqDecider(V). ∀A:Id List. ∀t:ℕ+. ∀f:(V List) ⟶ V.
    ((∀vs:V List. (f vs ∈ vs) supposing ||vs|| ≥ )
     (∀s:ts-reachable(three-consensus-ts(V;A;t;f)). ∀v:V. ∀a:{a:Id| (a ∈ A)} . ∀n:ℤ. ∀L:consensus-rcv(V;A) List.
          (L ≤ a
           archive-condition(V;A;t;f;n;v;L)
           (∃a∈A. (||s a|| ≥ ) ∧ (hd(s a) Init[v] ∈ consensus-rcv(V;A))))))
BY
((RepeatFor ((D THENA Auto))
    THEN (InstLemma `decidable-equal-deq` [⌜V⌝]⋅ THENA Auto)
    THEN (Assert ∀s:{a:Id| (a ∈ A)}  ⟶ (consensus-rcv(V;A) List). ∀v:V.
                   Dec((∃a∈A. (||s a|| ≥ ) ∧ (hd(s a) Init[v] ∈ consensus-rcv(V;A)))) BY
                (Unfold `and` 0
                 THEN Fold `cand` 0
                 THEN (UnivCD THENA Auto)
                 THEN GenConcl ⌜L ∈ ({a:Id| (a ∈ A)}  List)⌝⋅
                 THEN Auto)))
   THEN (Assert ts-reachable(three-consensus-ts(V;A;t;f)) ⊆({a:Id| (a ∈ A)}  ⟶ (consensus-rcv(V;A) List)) BY
               (D THEN Auto THEN (-1) THEN DoSubsume THEN Auto))
   THEN ((BLemma `ts-reachable-induction` THENA Auto)
         THEN Try ((RepUR ``ts-init three-consensus-ts`` 0
                    THEN Auto
                    THEN (FLemma `iseg_nil` [-2] THENA Auto)
                    THEN DVar `L'
                    THEN Reduce (-1)
                    THEN Auto
                    THEN FLemma `archive-condition-nil` [-2]
                    THEN Auto))
         THEN Auto⋅
         THEN ∀h:hyp. (Unfold `ts-rel` THEN RepUR ``three-consensus-ts`` THEN ExRepD) )⋅}

1
1. [V] Type
2. eq EqDecider(V)@i
3. Id List@i
4. : ℕ+@i
5. (V List) ⟶ V@i
6. ∀vs:V List. (f vs ∈ vs) supposing ||vs|| ≥ @i
7. ∀x,y:V.  Dec(x y ∈ V)
8. ∀s:{a:Id| (a ∈ A)}  ⟶ (consensus-rcv(V;A) List). ∀v:V.
     Dec((∃a∈A. (||s a|| ≥ ) ∧ (hd(s a) Init[v] ∈ consensus-rcv(V;A))))
9. ts-reachable(three-consensus-ts(V;A;t;f)) ⊆({a:Id| (a ∈ A)}  ⟶ (consensus-rcv(V;A) List))
10. ts-reachable(three-consensus-ts(V;A;t;f))@i
11. ts-reachable(three-consensus-ts(V;A;t;f))@i
12. ∀v:V. ∀a:{a:Id| (a ∈ A)} . ∀n:ℤ. ∀L:consensus-rcv(V;A) List.
      (L ≤ a
       archive-condition(V;A;t;f;n;v;L)
       (∃a∈A. (||s a|| ≥ ) ∧ (hd(s a) Init[v] ∈ consensus-rcv(V;A))))@i
13. a1 {a:Id| (a ∈ A)} @i
14. consensus-rcv(V;A)@i
15. ∀b:{a:Id| (a ∈ A)} . ∀i:ℕ. ∀v:V.
      ((e Vote[b;i;v] ∈ consensus-rcv(V;A))
       ((∃L:consensus-rcv(V;A) List. (L ≤ b ∧ archive-condition(V;A;t;f;i;v;L))) ∧ (e ∈ a1))))@i
16. ∀b:{a:Id| (a ∈ A)} ((¬(b a1 ∈ Id))  ((y b) (s b) ∈ (consensus-rcv(V;A) List)))@i
17. (y a1) ((s a1) [e]) ∈ (consensus-rcv(V;A) List)@i
18. V@i
19. {a:Id| (a ∈ A)} @i
20. : ℤ@i
21. consensus-rcv(V;A) List@i
22. L ≤ a@i
23. archive-condition(V;A;t;f;n;v;L)@i
⊢ (∃a∈A. (||y a|| ≥ ) ∧ (hd(y a) Init[v] ∈ consensus-rcv(V;A)))


Latex:


Latex:
\mforall{}[V:Type]
    \mforall{}eq:EqDecider(V).  \mforall{}A:Id  List.  \mforall{}t:\mBbbN{}\msupplus{}.  \mforall{}f:(V  List)  {}\mrightarrow{}  V.
        ((\mforall{}vs:V  List.  (f  vs  \mmember{}  vs)  supposing  ||vs||  \mgeq{}  1  )
        {}\mRightarrow{}  (\mforall{}s:ts-reachable(three-consensus-ts(V;A;t;f)).  \mforall{}v:V.  \mforall{}a:\{a:Id|  (a  \mmember{}  A)\}  .  \mforall{}n:\mBbbZ{}.
                \mforall{}L:consensus-rcv(V;A)  List.
                    (L  \mleq{}  s  a
                    {}\mRightarrow{}  archive-condition(V;A;t;f;n;v;L)
                    {}\mRightarrow{}  (\mexists{}a\mmember{}A.  (||s  a||  \mgeq{}  1  )  \mwedge{}  (hd(s  a)  =  Init[v])))))


By


Latex:
((RepeatFor  6  ((D  0  THENA  Auto))
    THEN  (InstLemma  `decidable-equal-deq`  [\mkleeneopen{}V\mkleeneclose{}]\mcdot{}  THENA  Auto)
    THEN  (Assert  \mforall{}s:\{a:Id|  (a  \mmember{}  A)\}    {}\mrightarrow{}  (consensus-rcv(V;A)  List).  \mforall{}v:V.
                                  Dec((\mexists{}a\mmember{}A.  (||s  a||  \mgeq{}  1  )  \mwedge{}  (hd(s  a)  =  Init[v])))  BY
                            (Unfold  `and`  0
                              THEN  Fold  `cand`  0
                              THEN  (UnivCD  THENA  Auto)
                              THEN  GenConcl  \mkleeneopen{}A  =  L\mkleeneclose{}\mcdot{}
                              THEN  Auto)))
  THEN  (Assert  ts-reachable(three-consensus-ts(V;A;t;f))  \msubseteq{}r  (\{a:Id|  (a  \mmember{}  A)\}    {}\mrightarrow{}  (consensus-rcv(V;A)  \000CList))  BY
                          (D  0  THEN  Auto  THEN  D  (-1)  THEN  DoSubsume  THEN  Auto))
  THEN  ((BLemma  `ts-reachable-induction`  THENA  Auto)
              THEN  Try  ((RepUR  ``ts-init  three-consensus-ts``  0
                                    THEN  Auto
                                    THEN  (FLemma  `iseg\_nil`  [-2]  THENA  Auto)
                                    THEN  DVar  `L'
                                    THEN  Reduce  (-1)
                                    THEN  Auto
                                    THEN  FLemma  `archive-condition-nil`  [-2]
                                    THEN  Auto))
              THEN  Auto\mcdot{}
              THEN  \mforall{}h:hyp.  (Unfold  `ts-rel`  h  THEN  RepUR  ``three-consensus-ts``  h  THEN  ExRepD)  )\mcdot{})




Home Index