Step * of Lemma cs-ref-map-unchanged

[V:Type]
  ((∀v1,v2:V.  Dec(v1 v2 ∈ 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)
               (∀x,y:ts-reachable(consensus-ts4(V;A;W)).
                    ((x ts-rel(consensus-ts4(V;A;W)) y)
                     (∀i:ℕ
                          ((∀v:V. (in state x, inning could commit v   in state y, inning could commit ))
                              ((f y[i] x[i] ∈ consensus-state3(V))
                                ∨ (∃v:V
                                    ((f y[i] COMMITED[v] ∈ consensus-state3(V))
                                    ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V)))))) supposing 
                             (i < ||f y|| and 
                             i < ||f x||)))))))))
BY
((RepeatFor ((D THENA Auto))
    THEN (Assert (x ∈ ConsensusState) ∧ (y ∈ ConsensusState) BY
                ((DVar `x' THEN DVar `y') THEN All (RepUR ``ts-type consensus-ts4``) THEN Complete (Auto)))
    THEN -1
    THEN Auto)
   THEN (InstLemma `consensus-state3-cases` [⌈V⌉;⌈x[i]⌉]⋅ THENA Auto)
   THEN SplitOrHyps
   THEN ExRepD
   THEN SplitOrHyps
   THEN OnMaybeHyp (\h. ((Unfold `cs-ref-map-constraints` h
                            THEN (InstHyp [⌈x⌉;⌈i⌉h⋅ THENA Auto)
                            THEN -1
                            THEN Thin (-2)
                            THEN (D -1 THENA Auto))
                           THEN Auto
                           THEN Try ((SimpleInstHyp ⌈v⌉ (-1)⋅ THENA Auto))
                           THEN Auto
                           THEN ThinTrivial))) }

1
1. [V] Type
2. ∀v1,v2:V.  Dec(v1 v2 ∈ V)@i
3. Id List@i
4. {a:Id| (a ∈ A)}  List List@i
5. two-intersection(A;W)@i
6. ConsensusState ─→ (consensus-state3(V) List)@i
7. ∀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 could commit v  ∧ in state s, inning could commit v' ))
          ∧ (f s[i] WITHDRAWN ∈ consensus-state3(V) ⇐⇒ ¬(∃v:V. in state s, inning could commit ))
          ∧ (∀v:V
               ((f s[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state s, inning has committed v)
               ∧ (f s[i] CONSIDERING[v] ∈ consensus-state3(V)
                 ⇐⇒ in state s, inning could commit 
                     ∧ in state s, inning has committed v)
                     ∧ (∀v':V. (in state s, inning could commit v'   (v' v ∈ V)))))))))@i
8. ts-reachable(consensus-ts4(V;A;W))@i
9. ts-reachable(consensus-ts4(V;A;W))@i
10. x ∈ ConsensusState
11. y ∈ ConsensusState
12. ts-rel(consensus-ts4(V;A;W)) y@i
13. : ℕ@i
14. i < ||f x||
15. i < ||f y||
16. ∀v:V. (in state x, inning could commit v   in state y, inning could commit )@i
17. x[i] INITIAL ∈ consensus-state3(V)
18. (f x[i] WITHDRAWN ∈ consensus-state3(V))  (∃v:V. in state x, inning could commit ))
19. (f x[i] WITHDRAWN ∈ consensus-state3(V))  ¬(∃v:V. in state x, inning could commit )
20. ∀v:V
      ((f x[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state x, inning has committed v)
      ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V)
        ⇐⇒ in state x, inning could commit 
            ∧ in state x, inning has committed v)
            ∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))))
21. ∃v,v':V. ((¬(v v' ∈ V)) ∧ in state x, inning could commit v  ∧ in state x, inning could commit v' )
22. x[i] INITIAL ∈ consensus-state3(V)
⊢ (f y[i] x[i] ∈ consensus-state3(V))
∨ (∃v:V. ((f y[i] COMMITED[v] ∈ consensus-state3(V)) ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V))))

2
1. [V] Type
2. ∀v1,v2:V.  Dec(v1 v2 ∈ V)@i
3. Id List@i
4. {a:Id| (a ∈ A)}  List List@i
5. two-intersection(A;W)@i
6. ConsensusState ─→ (consensus-state3(V) List)@i
7. ∀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 could commit v  ∧ in state s, inning could commit v' ))
          ∧ (f s[i] WITHDRAWN ∈ consensus-state3(V) ⇐⇒ ¬(∃v:V. in state s, inning could commit ))
          ∧ (∀v:V
               ((f s[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state s, inning has committed v)
               ∧ (f s[i] CONSIDERING[v] ∈ consensus-state3(V)
                 ⇐⇒ in state s, inning could commit 
                     ∧ in state s, inning has committed v)
                     ∧ (∀v':V. (in state s, inning could commit v'   (v' v ∈ V)))))))))@i
8. ts-reachable(consensus-ts4(V;A;W))@i
9. ts-reachable(consensus-ts4(V;A;W))@i
10. x ∈ ConsensusState
11. y ∈ ConsensusState
12. ts-rel(consensus-ts4(V;A;W)) y@i
13. : ℕ@i
14. i < ||f x||
15. i < ||f y||
16. ∀v:V. (in state x, inning could commit v   in state y, inning could commit )@i
17. x[i] WITHDRAWN ∈ consensus-state3(V)
18. (f x[i] INITIAL ∈ consensus-state3(V))
 (∃v,v':V. ((¬(v v' ∈ V)) ∧ in state x, inning could commit v  ∧ in state x, inning could commit v' ))
19. (f x[i] INITIAL ∈ consensus-state3(V))  ∃v,v':V
                                                 ((¬(v v' ∈ V))
                                                 ∧ in state x, inning could commit 
                                                 ∧ in state x, inning could commit v' )
20. ∀v:V
      ((f x[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state x, inning has committed v)
      ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V)
        ⇐⇒ in state x, inning could commit 
            ∧ in state x, inning has committed v)
            ∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))))
21. ¬(∃v:V. in state x, inning could commit )
22. x[i] WITHDRAWN ∈ consensus-state3(V)
⊢ (f y[i] x[i] ∈ consensus-state3(V))
∨ (∃v:V. ((f y[i] COMMITED[v] ∈ consensus-state3(V)) ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V))))

3
1. [V] Type
2. ∀v1,v2:V.  Dec(v1 v2 ∈ V)@i
3. Id List@i
4. {a:Id| (a ∈ A)}  List List@i
5. two-intersection(A;W)@i
6. ConsensusState ─→ (consensus-state3(V) List)@i
7. ∀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 could commit v  ∧ in state s, inning could commit v' ))
          ∧ (f s[i] WITHDRAWN ∈ consensus-state3(V) ⇐⇒ ¬(∃v:V. in state s, inning could commit ))
          ∧ (∀v:V
               ((f s[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state s, inning has committed v)
               ∧ (f s[i] CONSIDERING[v] ∈ consensus-state3(V)
                 ⇐⇒ in state s, inning could commit 
                     ∧ in state s, inning has committed v)
                     ∧ (∀v':V. (in state s, inning could commit v'   (v' v ∈ V)))))))))@i
8. ts-reachable(consensus-ts4(V;A;W))@i
9. ts-reachable(consensus-ts4(V;A;W))@i
10. x ∈ ConsensusState
11. y ∈ ConsensusState
12. ts-rel(consensus-ts4(V;A;W)) y@i
13. : ℕ@i
14. i < ||f x||
15. i < ||f y||
16. ∀v:V. (in state x, inning could commit v   in state y, inning could commit )@i
17. V
18. x[i] CONSIDERING[v] ∈ consensus-state3(V)
19. (f x[i] INITIAL ∈ consensus-state3(V))
 (∃v,v':V. ((¬(v v' ∈ V)) ∧ in state x, inning could commit v  ∧ in state x, inning could commit v' ))
20. (f x[i] INITIAL ∈ consensus-state3(V))  ∃v,v':V
                                                 ((¬(v v' ∈ V))
                                                 ∧ in state x, inning could commit 
                                                 ∧ in state x, inning could commit v' )
21. (f x[i] WITHDRAWN ∈ consensus-state3(V))  (∃v:V. in state x, inning could commit ))
22. (f x[i] WITHDRAWN ∈ consensus-state3(V))  ¬(∃v:V. in state x, inning could commit )
23. ∀v:V
      ((f x[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state x, inning has committed v)
      ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V)
        ⇐⇒ in state x, inning could commit 
            ∧ in state x, inning has committed v)
            ∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))))
24. (f x[i] COMMITED[v] ∈ consensus-state3(V))  in state x, inning has committed v
25. (f x[i] CONSIDERING[v] ∈ consensus-state3(V))  in state x, inning could commit 
∧ in state x, inning has committed v)
∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))
26. in state x, inning could commit 
27. ¬in state x, inning has committed v
28. ∀v':V. (in state x, inning could commit v'   (v' v ∈ V))
⊢ (f y[i] x[i] ∈ consensus-state3(V))
∨ (∃v:V. ((f y[i] COMMITED[v] ∈ consensus-state3(V)) ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V))))

4
1. [V] Type
2. ∀v1,v2:V.  Dec(v1 v2 ∈ V)@i
3. Id List@i
4. {a:Id| (a ∈ A)}  List List@i
5. two-intersection(A;W)@i
6. ConsensusState ─→ (consensus-state3(V) List)@i
7. ∀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 could commit v  ∧ in state s, inning could commit v' ))
          ∧ (f s[i] WITHDRAWN ∈ consensus-state3(V) ⇐⇒ ¬(∃v:V. in state s, inning could commit ))
          ∧ (∀v:V
               ((f s[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state s, inning has committed v)
               ∧ (f s[i] CONSIDERING[v] ∈ consensus-state3(V)
                 ⇐⇒ in state s, inning could commit 
                     ∧ in state s, inning has committed v)
                     ∧ (∀v':V. (in state s, inning could commit v'   (v' v ∈ V)))))))))@i
8. ts-reachable(consensus-ts4(V;A;W))@i
9. ts-reachable(consensus-ts4(V;A;W))@i
10. x ∈ ConsensusState
11. y ∈ ConsensusState
12. ts-rel(consensus-ts4(V;A;W)) y@i
13. : ℕ@i
14. i < ||f x||
15. i < ||f y||
16. ∀v:V. (in state x, inning could commit v   in state y, inning could commit )@i
17. V
18. x[i] COMMITED[v] ∈ consensus-state3(V)
19. (f x[i] INITIAL ∈ consensus-state3(V))
 (∃v,v':V. ((¬(v v' ∈ V)) ∧ in state x, inning could commit v  ∧ in state x, inning could commit v' ))
20. (f x[i] INITIAL ∈ consensus-state3(V))  ∃v,v':V
                                                 ((¬(v v' ∈ V))
                                                 ∧ in state x, inning could commit 
                                                 ∧ in state x, inning could commit v' )
21. (f x[i] WITHDRAWN ∈ consensus-state3(V))  (∃v:V. in state x, inning could commit ))
22. (f x[i] WITHDRAWN ∈ consensus-state3(V))  ¬(∃v:V. in state x, inning could commit )
23. ∀v:V
      ((f x[i] COMMITED[v] ∈ consensus-state3(V) ⇐⇒ in state x, inning has committed v)
      ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V)
        ⇐⇒ in state x, inning could commit 
            ∧ in state x, inning has committed v)
            ∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))))
24. (f x[i] CONSIDERING[v] ∈ consensus-state3(V))
 (in state x, inning could commit 
   ∧ in state x, inning has committed v)
   ∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V))))
25. (f x[i] CONSIDERING[v] ∈ consensus-state3(V))  in state x, inning could commit 
∧ in state x, inning has committed v)
∧ (∀v':V. (in state x, inning could commit v'   (v' v ∈ V)))
26. in state x, inning has committed v
27. x[i] COMMITED[v] ∈ consensus-state3(V)
⊢ (f y[i] x[i] ∈ consensus-state3(V))
∨ (∃v:V. ((f y[i] COMMITED[v] ∈ consensus-state3(V)) ∧ (f x[i] CONSIDERING[v] ∈ consensus-state3(V))))


Latex:


\mforall{}[V:Type]
    ((\mforall{}v1,v2:V.    Dec(v1  =  v2))
    {}\mRightarrow{}  (\mforall{}A:Id  List.  \mforall{}W:\{a:Id|  (a  \mmember{}  A)\}    List  List.
                (two-intersection(A;W)
                {}\mRightarrow{}  (\mforall{}f:ConsensusState  {}\mrightarrow{}  (consensus-state3(V)  List)
                            (cs-ref-map-constraints(V;A;W;f)
                            {}\mRightarrow{}  (\mforall{}x,y:ts-reachable(consensus-ts4(V;A;W)).
                                        ((x  ts-rel(consensus-ts4(V;A;W))  y)
                                        {}\mRightarrow{}  (\mforall{}i:\mBbbN{}
                                                    ((\mforall{}v:V
                                                            (in  state  x,  inning  i  could  commit  v 
                                                            {}\mRightarrow{}  in  state  y,  inning  i  could  commit  v  ))
                                                          {}\mRightarrow{}  ((f  y[i]  =  f  x[i])
                                                                \mvee{}  (\mexists{}v:V
                                                                        ((f  y[i]  =  COMMITED[v])
                                                                        \mwedge{}  (f  x[i]  =  CONSIDERING[v])))))  supposing 
                                                          (i  <  ||f  y||  and 
                                                          i  <  ||f  x||)))))))))


By

((RepeatFor  9  ((D  0  THENA  Auto))
    THEN  (Assert  (x  \mmember{}  ConsensusState)  \mwedge{}  (y  \mmember{}  ConsensusState)  BY
                            ((DVar  `x'  THEN  DVar  `y')
                              THEN  All  (RepUR  ``ts-type  consensus-ts4``)
                              THEN  Complete  (Auto)))
    THEN  D  -1
    THEN  Auto)
  THEN  (InstLemma  `consensus-state3-cases`  [\mkleeneopen{}V\mkleeneclose{};\mkleeneopen{}f  x[i]\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  SplitOrHyps
  THEN  ExRepD
  THEN  SplitOrHyps
  THEN  OnMaybeHyp  7  (\mbackslash{}h.  ((Unfold  `cs-ref-map-constraints`  h
                                                    THEN  (InstHyp  [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}i\mkleeneclose{}]  h\mcdot{}  THENA  Auto)
                                                    THEN  D  -1
                                                    THEN  Thin  (-2)
                                                    THEN  (D  -1  THENA  Auto))
                                                  THEN  Auto
                                                  THEN  Try  ((SimpleInstHyp  \mkleeneopen{}v\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto))
                                                  THEN  Auto
                                                  THEN  ThinTrivial)))




Home Index