Step
*
1
1
5
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. False supposing ∀[i:ℕ||L||]. (¬↑cs-is-committed(L[i]))@i
5. (COMMITED[v] ∈ L)@i
6. ∀[v':V]. v' = v ∈ V supposing (CONSIDERING[v'] ∈ L) ∨ (COMMITED[v'] ∈ L)
7. filter(λx.cs-is-committed(x);L) ∈ {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List
8. u : {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)}
9. v2 : {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List
10. filter(λx.cs-is-committed(x);L) = [u / v2] ∈ ({x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List)@i
11. ¬([u / v2] = [] ∈ (consensus-state3(V) List))@i
⊢ cs-committed-val(u) = v ∈ V
BY
{ (BackThruSomeHyp THEN OrRight THEN Auto) }
1
1. V : Type
2. L : consensus-state3(V) List@i
3. v : V@i
4. False supposing ∀[i:ℕ||L||]. (¬↑cs-is-committed(L[i]))@i
5. (COMMITED[v] ∈ L)@i
6. ∀[v':V]. v' = v ∈ V supposing (CONSIDERING[v'] ∈ L) ∨ (COMMITED[v'] ∈ L)
7. filter(λx.cs-is-committed(x);L) ∈ {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List
8. u : {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)}
9. v2 : {x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List
10. filter(λx.cs-is-committed(x);L) = [u / v2] ∈ ({x:consensus-state3(V)| ↑((λx.cs-is-committed(x)) x)} List)@i
11. ¬([u / v2] = [] ∈ (consensus-state3(V) List))@i
⊢ (COMMITED[cs-committed-val(u)] ∈ L)
Latex:
1. V : Type
2. L : consensus-state3(V) List@i
3. v : V@i
4. False supposing \mforall{}[i:\mBbbN{}||L||]. (\mneg{}\muparrow{}cs-is-committed(L[i]))@i
5. (COMMITED[v] \mmember{} L)@i
6. \mforall{}[v':V]. v' = v supposing (CONSIDERING[v'] \mmember{} L) \mvee{} (COMMITED[v'] \mmember{} L)
7. filter(\mlambda{}x.cs-is-committed(x);L) \mmember{} \{x:consensus-state3(V)| \muparrow{}((\mlambda{}x.cs-is-committed(x)) x)\} List
8. u : \{x:consensus-state3(V)| \muparrow{}((\mlambda{}x.cs-is-committed(x)) x)\}
9. v2 : \{x:consensus-state3(V)| \muparrow{}((\mlambda{}x.cs-is-committed(x)) x)\} List
10. filter(\mlambda{}x.cs-is-committed(x);L) = [u / v2]@i
11. \mneg{}([u / v2] = [])@i
\mvdash{} cs-committed-val(u) = v
By
(BackThruSomeHyp THEN OrRight THEN Auto)
Home
Index