Step * 1 1 1 2 1 of Lemma cs-ref-map3-predecided

.....subterm..... T:t
1:n
1. Type
2. consensus-state3(V) List@i
3. V@i
4. ∀[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. ∀v':V. (COMMITED[v'] ∈ L))@i
7. (CONSIDERING[v] ∈ L)@i
8. filter(λx.cs-is-committed(x);L) [] ∈ (consensus-state3(V) List)
9. ¬(filter(λx.cs-is-considering(x);L) [] ∈ (consensus-state3(V) List))
⊢ cs-considered-val(hd(filter(λx.cs-is-considering(x);L))) v ∈ V
BY
((MoveToConcl (-1) THEN Thin (-1))
   THEN (InstLemma `filter_type` [⌈consensus-state3(V)⌉;⌈λx.cs-is-considering(x)⌉;⌈L⌉]⋅ THENA Auto)
   THEN (GenConclAtAddr [1;1;2] THENA (Reduce THEN Auto))
   THEN -2
   THEN Reduce 0
   THEN Auto) }

1
1. Type
2. consensus-state3(V) List@i
3. V@i
4. ∀[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. ∀v':V. (COMMITED[v'] ∈ L))@i
7. (CONSIDERING[v] ∈ L)@i
8. filter(λx.cs-is-considering(x);L) ∈ {x:consensus-state3(V)| ↑((λx.cs-is-considering(x)) x)}  List
9. {x:consensus-state3(V)| ↑((λx.cs-is-considering(x)) x)} 
10. v2 {x:consensus-state3(V)| ↑((λx.cs-is-considering(x)) x)}  List
11. filter(λx.cs-is-considering(x);L) [u v2] ∈ ({x:consensus-state3(V)| ↑((λx.cs-is-considering(x)) x)}  List)@i
12. ¬([u v2] [] ∈ (consensus-state3(V) List))@i
⊢ cs-considered-val(u) v ∈ V


Latex:


.....subterm.....  T:t
1:n
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.  \mforall{}v':V.  (\mneg{}(COMMITED[v']  \mmember{}  L))@i
7.  (CONSIDERING[v]  \mmember{}  L)@i
8.  filter(\mlambda{}x.cs-is-committed(x);L)  =  []
9.  \mneg{}(filter(\mlambda{}x.cs-is-considering(x);L)  =  [])
\mvdash{}  cs-considered-val(hd(filter(\mlambda{}x.cs-is-considering(x);L)))  =  v


By

((MoveToConcl  (-1)  THEN  Thin  (-1))
  THEN  (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  D  -2
  THEN  Reduce  0
  THEN  Auto)




Home Index