Step
*
1
1
6
1
1
1
1
1
of Lemma
cs-ref-map3-decided
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. False supposing ∀[i:ℕ||L||]. (¬↑cs-is-committed(L[i]))@i
6. cs-committed-val(hd(filter(λx.cs-is-committed(x);L))) = v ∈ V
7. filter(λx.cs-is-committed(x);L) ∈ {x:consensus-state3(V)| ↑cs-is-committed(x)}  List
8. u : {x:consensus-state3(V)| ↑cs-is-committed(x)} 
9. w : {x:consensus-state3(V)| ↑cs-is-committed(x)}  List
10. filter(λx.cs-is-committed(x);L) = [u / w] ∈ ({x:consensus-state3(V)| ↑cs-is-committed(x)}  List)@i
11. ¬([u / w] = [] ∈ (consensus-state3(V) List))@i
12. (u ∈ filter(λx.cs-is-committed(x);L))
⊢ (COMMITED[cs-committed-val(u)] ∈ L)
BY
{ (RWO "member_filter" (-1) THEN 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. False supposing ∀[i:ℕ||L||]. (¬↑cs-is-committed(L[i]))@i
6. cs-committed-val(hd(filter(λx.cs-is-committed(x);L))) = v ∈ V
7. filter(λx.cs-is-committed(x);L) ∈ {x:consensus-state3(V)| ↑cs-is-committed(x)}  List
8. u : {x:consensus-state3(V)| ↑cs-is-committed(x)} 
9. w : {x:consensus-state3(V)| ↑cs-is-committed(x)}  List
10. filter(λx.cs-is-committed(x);L) = [u / w] ∈ ({x:consensus-state3(V)| ↑cs-is-committed(x)}  List)@i
11. ¬([u / w] = [] ∈ (consensus-state3(V) List))@i
12. (u ∈ L)
13. ↑((λx.cs-is-committed(x)) u)
⊢ (COMMITED[cs-committed-val(u)] ∈ L)
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.  False  supposing  \mforall{}[i:\mBbbN{}||L||].  (\mneg{}\muparrow{}cs-is-committed(L[i]))@i
6.  cs-committed-val(hd(filter(\mlambda{}x.cs-is-committed(x);L)))  =  v
7.  filter(\mlambda{}x.cs-is-committed(x);L)  \mmember{}  \{x:consensus-state3(V)|  \muparrow{}cs-is-committed(x)\}    List
8.  u  :  \{x:consensus-state3(V)|  \muparrow{}cs-is-committed(x)\} 
9.  w  :  \{x:consensus-state3(V)|  \muparrow{}cs-is-committed(x)\}    List
10.  filter(\mlambda{}x.cs-is-committed(x);L)  =  [u  /  w]@i
11.  \mneg{}([u  /  w]  =  [])@i
12.  (u  \mmember{}  filter(\mlambda{}x.cs-is-committed(x);L))
\mvdash{}  (COMMITED[cs-committed-val(u)]  \mmember{}  L)
By
(RWO  "member\_filter"  (-1)  THEN  Auto)
Home
Index