Step
*
of Lemma
consensus-ts4-ref-map
∀[V:Type]
  ((∃v,v':V. (¬(v = v' ∈ V)))
  
⇒ (∀v,v':V.  Dec(v = v' ∈ V))
  
⇒ (∀A:Id List. ∀W:{a:Id| (a ∈ A)}  List List.
        (two-intersection(A;W) 
⇒ (∃f:ConsensusState ─→ (consensus-state3(V) List). cs-ref-map-constraints(V;A;W;f)))))
BY
{ (Unfold `cs-ref-map-constraints` 0
   THEN (InstLemma `consensus-ts4-ref-map1` []
         THEN RepeatFor 6 ((ParallelLast' THENA Auto))
         THEN Unfold `guard` -1
         THEN (Skolemize (-1) `F' THENA Auto)
         THEN Thin (-3))
   ) }
1
1. [V] : Type
2. ∃v,v':V. (¬(v = v' ∈ V))@i
3. ∀v,v':V.  Dec(v = v' ∈ V)@i
4. A : Id List@i
5. W : {a:Id| (a ∈ A)}  List List@i
6. two-intersection(A;W)@i
7. F : s:ConsensusState ─→ i:ℤ ─→ consensus-state3(V)
8. ∀s:ConsensusState. ∀i:ℤ.
     (((F s i) = INITIAL ∈ consensus-state3(V)
      
⇐⇒ ∃v,v':V. ((¬(v = v' ∈ V)) ∧ in state s, inning i could commit v  ∧ in state s, inning i could commit v' ))
     ∧ ((F s i) = WITHDRAWN ∈ consensus-state3(V) 
⇐⇒ ¬(∃v:V. in state s, inning i could commit v ))
     ∧ (∀v:V
          (((F s i) = COMMITED[v] ∈ consensus-state3(V) 
⇐⇒ in state s, inning i has committed v)
          ∧ ((F s i) = CONSIDERING[v] ∈ consensus-state3(V)
            
⇐⇒ in state s, inning i could commit v 
                ∧ (¬in state s, inning i has committed v)
                ∧ (∀v':V. (in state s, inning i could commit v'  
⇒ (v' = v ∈ V)))))))
⊢ ∃f:ConsensusState ─→ (consensus-state3(V) List)
   ∀s:ConsensusState. ∀i:ℕ.
     ((i < ||f s|| 
⇐⇒ ∃a:{a:Id| (a ∈ A)} . (i ≤ Inning(s;a)))
     ∧ (i < ||f s||
       
⇒ ((f s[i] = INITIAL ∈ consensus-state3(V)
           
⇐⇒ ∃v,v':V
                ((¬(v = v' ∈ V)) ∧ in state s, inning i could commit v  ∧ in state s, inning i could commit v' ))
          ∧ (f s[i] = WITHDRAWN ∈ consensus-state3(V) 
⇐⇒ ¬(∃v:V. in state s, inning i could commit v ))
          ∧ (∀v:V
               ((f s[i] = COMMITED[v] ∈ consensus-state3(V) 
⇐⇒ in state s, inning i has committed v)
               ∧ (f s[i] = CONSIDERING[v] ∈ consensus-state3(V)
                 
⇐⇒ in state s, inning i could commit v 
                     ∧ (¬in state s, inning i has committed v)
                     ∧ (∀v':V. (in state s, inning i could commit v'  
⇒ (v' = v ∈ V)))))))))
Latex:
\mforall{}[V:Type]
    ((\mexists{}v,v':V.  (\mneg{}(v  =  v')))
    {}\mRightarrow{}  (\mforall{}v,v':V.    Dec(v  =  v'))
    {}\mRightarrow{}  (\mforall{}A:Id  List.  \mforall{}W:\{a:Id|  (a  \mmember{}  A)\}    List  List.
                (two-intersection(A;W)
                {}\mRightarrow{}  (\mexists{}f:ConsensusState  {}\mrightarrow{}  (consensus-state3(V)  List).  cs-ref-map-constraints(V;A;W;f)))))
By
(Unfold  `cs-ref-map-constraints`  0
  THEN  (InstLemma  `consensus-ts4-ref-map1`  []
              THEN  RepeatFor  6  ((ParallelLast'  THENA  Auto))
              THEN  Unfold  `guard`  -1
              THEN  (Skolemize  (-1)  `F'  THENA  Auto)
              THEN  Thin  (-3))
  )
Home
Index