Step
*
of Lemma
archive-condition-append-init
∀[V:Type]
  ∀A:Id List. ∀t:ℕ. ∀f:(V List) ─→ V. ∀L:consensus-rcv(V;A) List. ∀n:ℤ. ∀v,v2:V.
    (archive-condition(V;A;t;f;n;v;L @ [Init[v2]])
    
⇐⇒ {(L = [] ∈ (consensus-rcv(V;A) List)) ∧ (n = 0 ∈ ℤ) ∧ (v2 = v ∈ V)})
BY
{ (Unfold `archive-condition` 0 THEN Auto) }
1
1. V : Type
2. A : Id List@i
3. t : ℕ@i
4. f : (V List) ─→ V@i
5. L : consensus-rcv(V;A) List@i
6. n : ℤ@i
7. v : V@i
8. v2 : V@i
9. ∃L':consensus-rcv(V;A) List
    ∃r:consensus-rcv(V;A)
     (((L @ [Init[v2]]) = (L' @ [r]) ∈ (consensus-rcv(V;A) List))
     ∧ (((L' = [] ∈ (consensus-rcv(V;A) List))
       ∧ (((r = Init[v] ∈ consensus-rcv(V;A)) ∧ (n = 0 ∈ ℤ))
         ∨ ((0 ≤ n) ∧ (∃a:{a:Id| (a ∈ A)} . (r = Vote[a;n;v] ∈ consensus-rcv(V;A))))))
       ∨ ((0 < n
         ∧ (||values-for-distinct(IdDeq;votes-from-inning(n - 1;L'))|| ≤ (2 * t))
         ∧ (↑null(filter(λr.n - 1 <z inning(r);L'))))
         ∧ ((∃a:{a:Id| (a ∈ A)} . (r = Vote[a;n;v] ∈ consensus-rcv(V;A)))
           ∨ ((((2 * t) + 1) ≤ ||values-for-distinct(IdDeq;votes-from-inning(n - 1;L @ [Init[v2]]))||)
             ∧ ((f values-for-distinct(IdDeq;votes-from-inning(n - 1;L @ [Init[v2]]))) = v ∈ V))))))@i
⊢ {(L = [] ∈ (consensus-rcv(V;A) List)) ∧ (n = 0 ∈ ℤ) ∧ (v2 = v ∈ V)}
2
1. [V] : Type
2. A : Id List@i
3. t : ℕ@i
4. f : (V List) ─→ V@i
5. L : consensus-rcv(V;A) List@i
6. n : ℤ@i
7. v : V@i
8. v2 : V@i
9. {(L = [] ∈ (consensus-rcv(V;A) List)) ∧ (n = 0 ∈ ℤ) ∧ (v2 = v ∈ V)}@i
⊢ ∃L':consensus-rcv(V;A) List
   ∃r:consensus-rcv(V;A)
    (((L @ [Init[v2]]) = (L' @ [r]) ∈ (consensus-rcv(V;A) List))
    ∧ (((L' = [] ∈ (consensus-rcv(V;A) List))
      ∧ (((r = Init[v] ∈ consensus-rcv(V;A)) ∧ (n = 0 ∈ ℤ))
        ∨ ((0 ≤ n) ∧ (∃a:{a:Id| (a ∈ A)} . (r = Vote[a;n;v] ∈ consensus-rcv(V;A))))))
      ∨ ((0 < n
        ∧ (||values-for-distinct(IdDeq;votes-from-inning(n - 1;L'))|| ≤ (2 * t))
        ∧ (↑null(filter(λr.n - 1 <z inning(r);L'))))
        ∧ ((∃a:{a:Id| (a ∈ A)} . (r = Vote[a;n;v] ∈ consensus-rcv(V;A)))
          ∨ ((((2 * t) + 1) ≤ ||values-for-distinct(IdDeq;votes-from-inning(n - 1;L @ [Init[v2]]))||)
            ∧ ((f values-for-distinct(IdDeq;votes-from-inning(n - 1;L @ [Init[v2]]))) = v ∈ V))))))
Latex:
\mforall{}[V:Type]
    \mforall{}A:Id  List.  \mforall{}t:\mBbbN{}.  \mforall{}f:(V  List)  {}\mrightarrow{}  V.  \mforall{}L:consensus-rcv(V;A)  List.  \mforall{}n:\mBbbZ{}.  \mforall{}v,v2:V.
        (archive-condition(V;A;t;f;n;v;L  @  [Init[v2]])  \mLeftarrow{}{}\mRightarrow{}  \{(L  =  [])  \mwedge{}  (n  =  0)  \mwedge{}  (v2  =  v)\})
By
(Unfold  `archive-condition`  0  THEN  Auto)
Home
Index