Step
*
1
3
2
1
of Lemma
cs-ref-map3-predecided
1. [V] : Type
2. L : consensus-state3(V) List@i
3. v : V@i
4. ∀[v':V]. v' = v ∈ V supposing (CONSIDERING[v'] ∈ L) ∨ (COMMITED[v'] ∈ L) 
   supposing (CONSIDERING[v] ∈ L) ∨ (COMMITED[v] ∈ L)
5. ∀v:V. ((COMMITED[v] ∈ L) 
⇐⇒ cs-ref-map3(L) = Decided[v] ∈ consensus-state2(V))
6. filter(λx.cs-is-committed(x);L) = [] ∈ (consensus-state3(V) List)
⊢ (¬(filter(λx.cs-is-considering(x);L) = [] ∈ (consensus-state3(V) List)))
⇒ (PREDECIDED[cs-considered-val(hd(filter(λx.cs-is-considering(x);L)))] = PREDECIDED[v] ∈ consensus-state2(V))
⇒ (CONSIDERING[v] ∈ L)
BY
{ ((InstLemma `filter_type` [⌜consensus-state3(V)⌝;⌜λx.cs-is-considering(x)⌝;⌜L⌝]⋅ THENA Auto)
   THEN (GenConclAtAddr [1;1;2] THENA (Reduce 0 THEN Auto))
   THEN Reduce (-2)
   THEN D -2
   THEN All Reduce
   THEN (D 0 THENA Auto)
   THEN Try ((D -1 THEN Complete (Auto)))) }
1
1. [V] : Type
2. L : consensus-state3(V) List@i
3. v : V@i
4. ∀[v':V]. v' = v ∈ V supposing (CONSIDERING[v'] ∈ L) ∨ (COMMITED[v'] ∈ L) 
   supposing (CONSIDERING[v] ∈ L) ∨ (COMMITED[v] ∈ L)
5. ∀v:V. ((COMMITED[v] ∈ L) 
⇐⇒ cs-ref-map3(L) = Decided[v] ∈ consensus-state2(V))
6. filter(λx.cs-is-committed(x);L) = [] ∈ (consensus-state3(V) List)
7. filter(λx.cs-is-considering(x);L) ∈ {x:consensus-state3(V)| ↑cs-is-considering(x)}  List
8. u : {x:consensus-state3(V)| ↑cs-is-considering(x)} 
9. v2 : {x:consensus-state3(V)| ↑cs-is-considering(x)}  List
10. filter(λx.cs-is-considering(x);L) = [u / v2] ∈ ({x:consensus-state3(V)| ↑cs-is-considering(x)}  List)@i
11. ¬([u / v2] = [] ∈ (consensus-state3(V) List))@i
⊢ (PREDECIDED[cs-considered-val(u)] = PREDECIDED[v] ∈ consensus-state2(V)) 
⇒ (CONSIDERING[v] ∈ L)
Latex:
Latex:
1.  [V]  :  Type
2.  L  :  consensus-state3(V)  List@i
3.  v  :  V@i
4.  \mforall{}[v':V].  v'  =  v  supposing  (CONSIDERING[v']  \mmember{}  L)  \mvee{}  (COMMITED[v']  \mmember{}  L) 
      supposing  (CONSIDERING[v]  \mmember{}  L)  \mvee{}  (COMMITED[v]  \mmember{}  L)
5.  \mforall{}v:V.  ((COMMITED[v]  \mmember{}  L)  \mLeftarrow{}{}\mRightarrow{}  cs-ref-map3(L)  =  Decided[v])
6.  filter(\mlambda{}x.cs-is-committed(x);L)  =  []
\mvdash{}  (\mneg{}(filter(\mlambda{}x.cs-is-considering(x);L)  =  []))
{}\mRightarrow{}  (PREDECIDED[cs-considered-val(hd(filter(\mlambda{}x.cs-is-considering(x);L)))]  =  PREDECIDED[v])
{}\mRightarrow{}  (CONSIDERING[v]  \mmember{}  L)
By
Latex:
((InstLemma  `filter\_type`  [\mkleeneopen{}consensus-state3(V)\mkleeneclose{};\mkleeneopen{}\mlambda{}x.cs-is-considering(x)\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (GenConclAtAddr  [1;1;2]  THENA  (Reduce  0  THEN  Auto))
  THEN  Reduce  (-2)
  THEN  D  -2
  THEN  All  Reduce
  THEN  (D  0  THENA  Auto)
  THEN  Try  ((D  -1  THEN  Complete  (Auto))))
Home
Index