Step * 2 1 of Lemma archive-consensus-accum-num


1. Type
2. Id List
3. : ℕ+
4. (V List) ─→ V
5. v0 V
6. IdDeq ∈ EqDecider({b:Id| (b ∈ A)} )
7. ys consensus-rcv(V;A) List@i
8. y2 {b:Id| (b ∈ A)} @i
9. y4 : ℕ@i
10. y5 V@i
11. Vote[y2;y4;y5] ∈ consensus-rcv(V;A)
12. v1 : 𝔹@i
13. v3 : ℤ@i
14. v5 {a:Id| (a ∈ A)}  List@i
15. v7 List@i
16. v8 V@i
17. consensus-accum-num-state(t;f;v0;ys) = <v1, v3, v5, v7, v8> ∈ (𝔹 × ℤ × {a:Id| (a ∈ A)}  List × List × V)@i
18. (((2 t) 1) ≤ ||remove-repeats(IdDeq;map(λp.(fst(p));votes-from-inning(v3 2;ys)))||) supposing 
       ((votes-from-inning(v3 1;ys) [] ∈ (({b:Id| (b ∈ A)}  × V) List)) and 
       1 < v3)@i
19. y4 < v3 1
20. ∀[v@0:V]. ∀[i:ℤ].  ↑v1 supposing archive-condition(V;A;t;f;i;v@0;ys)@i
21. filter(λr.v3 1 <inning(r);ys) [] ∈ (consensus-rcv(V;A) List)@i
22. ||v5|| ||v7|| ∈ ℤ@i
23. zip(v5;v7) votes-from-inning(v3 1;ys) ∈ (({b:Id| (b ∈ A)}  × V) List)@i
24. 0 ≤ v3@i
25. 1 ≤ v3 supposing ¬↑null(ys)@i
26. ||values-for-distinct(IdDeq;votes-from-inning(v3 1;ys))|| ≤ (2 t)@i
27. filter(λr.v3 1 <inning(r);ys [Vote[y2;y4;y5]]) [] ∈ (consensus-rcv(V;A) List)@i
28. ||v5|| ||v7|| ∈ ℤ@i
29. zip(v5;v7) votes-from-inning(v3 1;ys [Vote[y2;y4;y5]]) ∈ (({b:Id| (b ∈ A)}  × V) List)@i
30. 0 ≤ v3@i
31. 1 ≤ v3 supposing ¬↑null(ys [Vote[y2;y4;y5]])@i
32. ||values-for-distinct(IdDeq;votes-from-inning(v3 1;ys [Vote[y2;y4;y5]]))|| ≤ (2 t)@i
33. v@0 V
34. : ℤ
35. 0 < i
36. ||values-for-distinct(IdDeq;votes-from-inning(i 1;ys))|| ≤ (2 t)
37. ↑null(filter(λr.i 1 <inning(r);ys))
38. y4 i ∈ ℤ
39. v@0 y5 ∈ V
⊢ False
BY
((Assert i < v3 BY
          Auto')
   THEN (Assert votes-from-inning(v3 1;ys) [] BY
               OnMaybeHyp 36 (\h. ((RW assert_pushdownC THENA Auto)
                                   THEN Using [`i',⌈v3 1⌉(FLemma `votes-from-inning-is-nil` [h])⋅
                                   THEN Auto)))
   THEN OnMaybeHyp 18 (\h. ((D THENA Complete (Auto)) THEN HypSubst' (-2) (-1) THEN (D -1 THENA Complete (Auto))))) }

1
1. Type
2. Id List
3. : ℕ+
4. (V List) ─→ V
5. v0 V
6. IdDeq ∈ EqDecider({b:Id| (b ∈ A)} )
7. ys consensus-rcv(V;A) List@i
8. y2 {b:Id| (b ∈ A)} @i
9. y4 : ℕ@i
10. y5 V@i
11. Vote[y2;y4;y5] ∈ consensus-rcv(V;A)
12. v1 : 𝔹@i
13. v3 : ℤ@i
14. v5 {a:Id| (a ∈ A)}  List@i
15. v7 List@i
16. v8 V@i
17. consensus-accum-num-state(t;f;v0;ys) = <v1, v3, v5, v7, v8> ∈ (𝔹 × ℤ × {a:Id| (a ∈ A)}  List × List × V)@i
18. y4 < v3 1
19. ∀[v@0:V]. ∀[i:ℤ].  ↑v1 supposing archive-condition(V;A;t;f;i;v@0;ys)@i
20. filter(λr.v3 1 <inning(r);ys) [] ∈ (consensus-rcv(V;A) List)@i
21. ||v5|| ||v7|| ∈ ℤ@i
22. zip(v5;v7) votes-from-inning(v3 1;ys) ∈ (({b:Id| (b ∈ A)}  × V) List)@i
23. 0 ≤ v3@i
24. 1 ≤ v3 supposing ¬↑null(ys)@i
25. ||values-for-distinct(IdDeq;votes-from-inning(v3 1;ys))|| ≤ (2 t)@i
26. filter(λr.v3 1 <inning(r);ys [Vote[y2;y4;y5]]) [] ∈ (consensus-rcv(V;A) List)@i
27. ||v5|| ||v7|| ∈ ℤ@i
28. zip(v5;v7) votes-from-inning(v3 1;ys [Vote[y2;y4;y5]]) ∈ (({b:Id| (b ∈ A)}  × V) List)@i
29. 0 ≤ v3@i
30. 1 ≤ v3 supposing ¬↑null(ys [Vote[y2;y4;y5]])@i
31. ||values-for-distinct(IdDeq;votes-from-inning(v3 1;ys [Vote[y2;y4;y5]]))|| ≤ (2 t)@i
32. v@0 V
33. : ℤ
34. 0 < i
35. ||values-for-distinct(IdDeq;votes-from-inning(i 1;ys))|| ≤ (2 t)
36. ↑null(filter(λr.i 1 <inning(r);ys))
37. y4 i ∈ ℤ
38. v@0 y5 ∈ V
39. i < v3
40. votes-from-inning(v3 1;ys) []
41. ((2 t) 1) ≤ ||remove-repeats(IdDeq;map(λp.(fst(p));votes-from-inning(v3 2;ys)))||
⊢ False


Latex:



1.  V  :  Type
2.  A  :  Id  List
3.  t  :  \mBbbN{}\msupplus{}
4.  f  :  (V  List)  {}\mrightarrow{}  V
5.  v0  :  V
6.  IdDeq  \mmember{}  EqDecider(\{b:Id|  (b  \mmember{}  A)\}  )
7.  ys  :  consensus-rcv(V;A)  List@i
8.  y2  :  \{b:Id|  (b  \mmember{}  A)\}  @i
9.  y4  :  \mBbbN{}@i
10.  y5  :  V@i
11.  Vote[y2;y4;y5]  \mmember{}  consensus-rcv(V;A)
12.  v1  :  \mBbbB{}@i
13.  v3  :  \mBbbZ{}@i
14.  v5  :  \{a:Id|  (a  \mmember{}  A)\}    List@i
15.  v7  :  V  List@i
16.  v8  :  V@i
17.  consensus-accum-num-state(t;f;v0;ys)  =  <v1,  v3,  v5,  v7,  v8>@i
18.  (((2  *  t)  +  1)  \mleq{}  ||remove-repeats(IdDeq;map(\mlambda{}p.(fst(p));votes-from-inning(v3 
                                                                                                -  2;ys)))||)  supposing 
              ((votes-from-inning(v3  -  1;ys)  =  [])  and 
              1  <  v3)@i
19.  y4  <  v3  -  1
20.  \mforall{}[v@0:V].  \mforall{}[i:\mBbbZ{}].    \muparrow{}v1  supposing  archive-condition(V;A;t;f;i;v@0;ys)@i
21.  filter(\mlambda{}r.v3  -  1  <z  inning(r);ys)  =  []@i
22.  ||v5||  =  ||v7||@i
23.  zip(v5;v7)  =  votes-from-inning(v3  -  1;ys)@i
24.  0  \mleq{}  v3@i
25.  1  \mleq{}  v3  supposing  \mneg{}\muparrow{}null(ys)@i
26.  ||values-for-distinct(IdDeq;votes-from-inning(v3  -  1;ys))||  \mleq{}  (2  *  t)@i
27.  filter(\mlambda{}r.v3  -  1  <z  inning(r);ys  @  [Vote[y2;y4;y5]])  =  []@i
28.  ||v5||  =  ||v7||@i
29.  zip(v5;v7)  =  votes-from-inning(v3  -  1;ys  @  [Vote[y2;y4;y5]])@i
30.  0  \mleq{}  v3@i
31.  1  \mleq{}  v3  supposing  \mneg{}\muparrow{}null(ys  @  [Vote[y2;y4;y5]])@i
32.  ||values-for-distinct(IdDeq;votes-from-inning(v3  -  1;ys  @  [Vote[y2;y4;y5]]))||  \mleq{}  (2  *  t)@i
33.  v@0  :  V
34.  i  :  \mBbbZ{}
35.  0  <  i
36.  ||values-for-distinct(IdDeq;votes-from-inning(i  -  1;ys))||  \mleq{}  (2  *  t)
37.  \muparrow{}null(filter(\mlambda{}r.i  -  1  <z  inning(r);ys))
38.  y4  =  i
39.  v@0  =  y5
\mvdash{}  False


By

((Assert  i  <  v3  BY
                Auto')
  THEN  (Assert  votes-from-inning(v3  -  1;ys)  \msim{}  []  BY
                          OnMaybeHyp  36  (\mbackslash{}h.  ((RW  assert\_pushdownC  h  THENA  Auto)
                                                                  THEN  Using  [`i',\mkleeneopen{}v3  -  1\mkleeneclose{}]  (FLemma  `votes-from-inning-is-nil`  [h])\mcdot{}
                                                                  THEN  Auto)))
  THEN  OnMaybeHyp  18  (\mbackslash{}h.  ((D  h  THENA  Complete  (Auto))
                                                    THEN  HypSubst'  (-2)  (-1)
                                                    THEN  (D  -1  THENA  Complete  (Auto)))))




Home Index