Step * 1 1 of Lemma archive-condition-one-one


1. Type
2. Id List
3. IdDeq ∈ EqDecider({b:Id| (b ∈ A)} )
4. : ℕ+
5. (V List) ─→ V
6. consensus-rcv(V;A) List
7. n1 : ℤ
8. n2 : ℤ
9. v1 V
10. v2 V
11. L1 consensus-rcv(V;A) List
12. consensus-rcv(V;A)
13. (L1 [r]) ∈ (consensus-rcv(V;A) List)
14. L1 [] ∈ (consensus-rcv(V;A) List)
15. ((r Init[v1] ∈ consensus-rcv(V;A)) ∧ (n1 0 ∈ ℤ))
∨ ((0 ≤ n1) ∧ (∃a:{a:Id| (a ∈ A)} (r Vote[a;n1;v1] ∈ consensus-rcv(V;A))))
16. ((L1 [] ∈ (consensus-rcv(V;A) List))
∧ (((r Init[v2] ∈ consensus-rcv(V;A)) ∧ (n2 0 ∈ ℤ))
  ∨ ((0 ≤ n2) ∧ (∃a:{a:Id| (a ∈ A)} (r Vote[a;n2;v2] ∈ consensus-rcv(V;A))))))
∨ ((0 < n2
  ∧ (||values-for-distinct(IdDeq;votes-from-inning(n2 1;L1))|| ≤ (2 t))
  ∧ (↑null(filter(λr.n2 1 <inning(r);L1))))
  ∧ ((∃a:{a:Id| (a ∈ A)} (r Vote[a;n2;v2] ∈ consensus-rcv(V;A)))
    ∨ ((((2 t) 1) ≤ ||values-for-distinct(IdDeq;votes-from-inning(n2 1;L1 [r]))||)
      ∧ ((f values-for-distinct(IdDeq;votes-from-inning(n2 1;L1 [r]))) v2 ∈ V))))
⊢ {(n1 n2 ∈ ℤ) ∧ (v1 v2 ∈ V)}
BY
((((DVar `L1' THEN Auto) THEN All Reduce THEN -2 THEN ExRepD)
    THENL [(HypSubst' (-3) (-1) THENA Auto); (HypSubst' (-2) (-1) THENA Auto)]
   )
   THEN ThinVar `r'
   THEN RepeatFor ((SplitOrHyps THEN ExRepD))
   THEN AllHyps h.(Progress
                   (Unfold `consensus-rcv` h)⋅
                   THEN Progress
                   (RepUR ``cs-initial-rcv cs-rcv-vote`` h)⋅
                   THEN MoveToHyp h
                   THEN AutoSimpHyp Auto (-1)
                   THEN Try (Complete (Auto))) }

1
1. Type
2. Id List
3. IdDeq ∈ EqDecider({b:Id| (b ∈ A)} )
4. : ℕ+
5. (V List) ─→ V
6. consensus-rcv(V;A) List
7. n1 : ℤ
8. n2 : ℤ
9. v1 V
10. v2 V
11. [] [] ∈ (consensus-rcv(V;A) List)
12. n1 0 ∈ ℤ
13. 0 < n2
14. ||values-for-distinct(IdDeq;votes-from-inning(n2 1;[]))|| ≤ (2 t)
15. True
16. ((2 t) 1) ≤ ||values-for-distinct(IdDeq;votes-from-inning(n2 1;[Init[v1]]))||
17. (f values-for-distinct(IdDeq;votes-from-inning(n2 1;[Init[v1]]))) v2 ∈ V
⊢ (n1 n2 ∈ ℤ) ∧ (v1 v2 ∈ V)

2
1. Type
2. Id List
3. IdDeq ∈ EqDecider({b:Id| (b ∈ A)} )
4. : ℕ+
5. (V List) ─→ V
6. consensus-rcv(V;A) List
7. n1 : ℤ
8. n2 : ℤ
9. v1 V
10. v2 V
11. [] [] ∈ (consensus-rcv(V;A) List)
12. 0 ≤ n1
13. {a:Id| (a ∈ A)} 
14. 0 < n2
15. ||values-for-distinct(IdDeq;votes-from-inning(n2 1;[]))|| ≤ (2 t)
16. True
17. ((2 t) 1) ≤ ||values-for-distinct(IdDeq;votes-from-inning(n2 1;[Vote[a;n1;v1]]))||
18. (f values-for-distinct(IdDeq;votes-from-inning(n2 1;[Vote[a;n1;v1]]))) v2 ∈ V
⊢ (n1 n2 ∈ ℤ) ∧ (v1 v2 ∈ V)


Latex:



1.  V  :  Type
2.  A  :  Id  List
3.  IdDeq  \mmember{}  EqDecider(\{b:Id|  (b  \mmember{}  A)\}  )
4.  t  :  \mBbbN{}\msupplus{}
5.  f  :  (V  List)  {}\mrightarrow{}  V
6.  L  :  consensus-rcv(V;A)  List
7.  n1  :  \mBbbZ{}
8.  n2  :  \mBbbZ{}
9.  v1  :  V
10.  v2  :  V
11.  L1  :  consensus-rcv(V;A)  List
12.  r  :  consensus-rcv(V;A)
13.  L  =  (L1  @  [r])
14.  L1  =  []
15.  ((r  =  Init[v1])  \mwedge{}  (n1  =  0))  \mvee{}  ((0  \mleq{}  n1)  \mwedge{}  (\mexists{}a:\{a:Id|  (a  \mmember{}  A)\}  .  (r  =  Vote[a;n1;v1])))
16.  ((L1  =  [])
\mwedge{}  (((r  =  Init[v2])  \mwedge{}  (n2  =  0))  \mvee{}  ((0  \mleq{}  n2)  \mwedge{}  (\mexists{}a:\{a:Id|  (a  \mmember{}  A)\}  .  (r  =  Vote[a;n2;v2])))))
\mvee{}  ((0  <  n2
    \mwedge{}  (||values-for-distinct(IdDeq;votes-from-inning(n2  -  1;L1))||  \mleq{}  (2  *  t))
    \mwedge{}  (\muparrow{}null(filter(\mlambda{}r.n2  -  1  <z  inning(r);L1))))
    \mwedge{}  ((\mexists{}a:\{a:Id|  (a  \mmember{}  A)\}  .  (r  =  Vote[a;n2;v2]))
        \mvee{}  ((((2  *  t)  +  1)  \mleq{}  ||values-for-distinct(IdDeq;votes-from-inning(n2  -  1;L1  @  [r]))||)
            \mwedge{}  ((f  values-for-distinct(IdDeq;votes-from-inning(n2  -  1;L1  @  [r])))  =  v2))))
\mvdash{}  \{(n1  =  n2)  \mwedge{}  (v1  =  v2)\}


By

((((DVar  `L1'  THEN  Auto)  THEN  All  Reduce  THEN  D  -2  THEN  ExRepD)
    THENL  [(HypSubst'  (-3)  (-1)  THENA  Auto);  (HypSubst'  (-2)  (-1)  THENA  Auto)]
  )
  THEN  ThinVar  `r'
  THEN  RepeatFor  2  ((SplitOrHyps  THEN  ExRepD))
  THEN  AllHyps  h.(Progress
                                  (Unfold  `consensus-rcv`  h)\mcdot{}
                                  THEN  Progress
                                  (RepUR  ``cs-initial-rcv  cs-rcv-vote``  h)\mcdot{}
                                  THEN  MoveToHyp  0  h
                                  THEN  AutoSimpHyp  Auto  (-1)
                                  THEN  Try  (Complete  (Auto)))  )




Home Index