Step
*
2
2
1
1
1
2
2
1
of Lemma
consensus-refinement5
1. V : Type
2. A : Id List@i
3. W : {a:Id| (a ∈ A)}  List List@i
4. 1 < ||W||@i
5. two-intersection(A;W)@i
6. x1 : ConsensusState@i
7. x2 : Knowledge(ConsensusState)@i
8. ts-init(consensus-ts5(V;A;W)) (ts-rel(consensus-ts5(V;A;W))^*) <x1, x2>@i
9. v : V@i
10. ∀a:{a:Id| (a ∈ A)} 
      ((Inning(x1;a) = 0 ∈ ℤ)
      ∧ (Estimate(x1;a) = 0 : v ∈ i:ℤ fp-> V)
      ∧ (Knowledge(x2;a) = mk_fpf(A;λb.<0, ff>) ∈ b:Id fp-> ℤ × (ℤ × V + Top)))@i
11. u : {a:Id| (a ∈ A)} @i
12. v1 : {a:Id| (a ∈ A)}  List@i
13. ¬(u ∈ v1)
⊢ Archive(v)@u allowed in state λa.if a ∈b v1) then [Archive(v)] else [] fi 
∧ λa.if (IdDeq u a) ∨ba ∈b v1) then [Archive(v)] else [] fi  = λa.if a ∈b v1)
                                                                  then [Archive(v)]
                                                                  else []
                                                                  fi  after Archive(v)@u
BY
{ (D 0 THEN D 0 THEN Reduce 0 THEN Auto) }
1
1. V : Type
2. A : Id List@i
3. W : {a:Id| (a ∈ A)}  List List@i
4. 1 < ||W||@i
5. two-intersection(A;W)@i
6. x1 : ConsensusState@i
7. x2 : Knowledge(ConsensusState)@i
8. ts-init(consensus-ts5(V;A;W)) (ts-rel(consensus-ts5(V;A;W))^*) <x1, x2>@i
9. v : V@i
10. ∀a:{a:Id| (a ∈ A)} 
      ((Inning(x1;a) = 0 ∈ ℤ)
      ∧ (Estimate(x1;a) = 0 : v ∈ i:ℤ fp-> V)
      ∧ (Knowledge(x2;a) = mk_fpf(A;λb.<0, ff>) ∈ b:Id fp-> ℤ × (ℤ × V + Top)))@i
11. u : {a:Id| (a ∈ A)} @i
12. v1 : {a:Id| (a ∈ A)}  List@i
13. ¬(u ∈ v1)
14. v@0 : V@i
15. Archive(v) = Archive(v@0) ∈ consensus-event(V;A)@i
⊢ let i,est,knw = consensus-accum-state(A;if u ∈b v1) then [Archive(v)] else [] fi ) in 
(¬(i ∈ fpf-domain(est))) ∧ may consider v@0 in inning i based on knowledge (knw)
2
1. V : Type
2. A : Id List@i
3. W : {a:Id| (a ∈ A)}  List List@i
4. 1 < ||W||@i
5. two-intersection(A;W)@i
6. x1 : ConsensusState@i
7. x2 : Knowledge(ConsensusState)@i
8. ts-init(consensus-ts5(V;A;W)) (ts-rel(consensus-ts5(V;A;W))^*) <x1, x2>@i
9. v : V@i
10. ∀a:{a:Id| (a ∈ A)} 
      ((Inning(x1;a) = 0 ∈ ℤ)
      ∧ (Estimate(x1;a) = 0 : v ∈ i:ℤ fp-> V)
      ∧ (Knowledge(x2;a) = mk_fpf(A;λb.<0, ff>) ∈ b:Id fp-> ℤ × (ℤ × V + Top)))@i
11. u : {a:Id| (a ∈ A)} @i
12. v1 : {a:Id| (a ∈ A)}  List@i
13. ¬(u ∈ v1)
14. b : {a:Id| (a ∈ A)} @i
15. i : ℕ@i
16. z : ℕi × V?@i
17. Archive(v) = consensus-message(b;i;z) ∈ consensus-event(V;A)@i
⊢ let i',est,knw = consensus-accum-state(A;if b ∈b v1) then [Archive(v)] else [] fi ) in 
(i ≤ i')
∧ case z
   of inl(p) =>
   let j,v = p 
   in (↑j ∈ dom(est)) ∧ (∀k:ℤ. (j < k 
⇒ k < i 
⇒ (¬↑k ∈ dom(est)))) ∧ (v = est(j) ∈ V)
   | inr(a) =>
   ∀j:ℤ. (j < i 
⇒ (¬↑j ∈ dom(est)))
3
1. V : Type
2. A : Id List@i
3. W : {a:Id| (a ∈ A)}  List List@i
4. 1 < ||W||@i
5. two-intersection(A;W)@i
6. x1 : ConsensusState@i
7. x2 : Knowledge(ConsensusState)@i
8. ts-init(consensus-ts5(V;A;W)) (ts-rel(consensus-ts5(V;A;W))^*) <x1, x2>@i
9. v : V@i
10. ∀a:{a:Id| (a ∈ A)} 
      ((Inning(x1;a) = 0 ∈ ℤ)
      ∧ (Estimate(x1;a) = 0 : v ∈ i:ℤ fp-> V)
      ∧ (Knowledge(x2;a) = mk_fpf(A;λb.<0, ff>) ∈ b:Id fp-> ℤ × (ℤ × V + Top)))@i
11. u : {a:Id| (a ∈ A)} @i
12. v1 : {a:Id| (a ∈ A)}  List@i
13. ¬(u ∈ v1)
14. b : {a:Id| (a ∈ A)} @i
15. ¬(b = u ∈ Id)@i
⊢ if (IdDeq u b) ∨bb ∈b v1) then [Archive(v)] else [] fi 
= if b ∈b v1) then [Archive(v)] else [] fi 
∈ (consensus-event(V;A) List)
4
1. V : Type
2. A : Id List@i
3. W : {a:Id| (a ∈ A)}  List List@i
4. 1 < ||W||@i
5. two-intersection(A;W)@i
6. x1 : ConsensusState@i
7. x2 : Knowledge(ConsensusState)@i
8. ts-init(consensus-ts5(V;A;W)) (ts-rel(consensus-ts5(V;A;W))^*) <x1, x2>@i
9. v : V@i
10. ∀a:{a:Id| (a ∈ A)} 
      ((Inning(x1;a) = 0 ∈ ℤ)
      ∧ (Estimate(x1;a) = 0 : v ∈ i:ℤ fp-> V)
      ∧ (Knowledge(x2;a) = mk_fpf(A;λb.<0, ff>) ∈ b:Id fp-> ℤ × (ℤ × V + Top)))@i
11. u : {a:Id| (a ∈ A)} @i
12. v1 : {a:Id| (a ∈ A)}  List@i
13. ¬(u ∈ v1)
⊢ if (IdDeq u u) ∨bu ∈b v1) then [Archive(v)] else [] fi 
= (if u ∈b v1) then [Archive(v)] else [] fi  @ [Archive(v)])
∈ (consensus-event(V;A) List)
Latex:
1.  V  :  Type
2.  A  :  Id  List@i
3.  W  :  \{a:Id|  (a  \mmember{}  A)\}    List  List@i
4.  1  <  ||W||@i
5.  two-intersection(A;W)@i
6.  x1  :  ConsensusState@i
7.  x2  :  Knowledge(ConsensusState)@i
8.  ts-init(consensus-ts5(V;A;W)) 
      (ts-rel(consensus-ts5(V;A;W))\^{}*) 
      <x1,  x2>@i
9.  v  :  V@i
10.  \mforall{}a:\{a:Id|  (a  \mmember{}  A)\} 
            ((Inning(x1;a)  =  0)  \mwedge{}  (Estimate(x1;a)  =  0  :  v)  \mwedge{}  (Knowledge(x2;a)  =  mk\_fpf(A;\mlambda{}b.ɘ,  ff>)))@i
11.  u  :  \{a:Id|  (a  \mmember{}  A)\}  @i
12.  v1  :  \{a:Id|  (a  \mmember{}  A)\}    List@i
13.  \mneg{}(u  \mmember{}  v1)
\mvdash{}  Archive(v)@u  allowed  in  state  \mlambda{}a.if  a  \mmember{}\msubb{}  v1)  then  [Archive(v)]  else  []  fi 
\mwedge{}  \mlambda{}a.if  (IdDeq  u  a)  \mvee{}\msubb{}a  \mmember{}\msubb{}  v1)  then  [Archive(v)]  else  []  fi    =  \mlambda{}a.if  a  \mmember{}\msubb{}  v1)
                                                                                                                                    then  [Archive(v)]
                                                                                                                                    else  []
                                                                                                                                    fi    after  Archive(v)@u
By
(D  0  THEN  D  0  THEN  Reduce  0  THEN  Auto)
Home
Index