Nuprl Lemma : pv11_p1-ilf

(∀[loc:Id]. ∀[accpts:bag(Id)]. ∀[Cmd:{T:Type| valueall-type(T)} ]. ∀[mf:pv11_p1_headers_type{i:l}(Cmd)].
 ∀[es:EO+(Message(mf))]. ∀[e:E]. ∀[d:ℤ]. ∀[i:Id]. ∀[m:Message(mf)].
   {<d, i, m> ∈ ((pv11_p1_scout_output(Cmd;accpts;mf) (pv11_p1_init_ballot_num() loc) o pv11_p1_p1b'base(Cmd;mf)) o
                pv11_p1_ScoutState(Cmd;accpts;mf) (pv11_p1_init_ballot_num() loc))(e)
   ⇐⇒ ((header(e) = ``pv11_p1 p1b`` ∈ Name)
       ∧ has-es-info-type(es;e;mf;Id
         × pv11_p1_Ballot_Num()
         × pv11_p1_Ballot_Num()
         × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List)))
       ∧ ((pv11_p1_init_ballot_num() loc) = (fst(snd(msgval(e)))) ∈ pv11_p1_Ballot_Num())
       ∧ (d = 0 ∈ ℤ)
       ∧ (i = loc(e) ∈ Id)
       ∧ (↓(((pv11_p1_init_ballot_num() loc) = (fst(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num())
           ∧ #(fst(pv11_p1_ScoutStateFun(Cmd;accpts;mf;pv11_p1_init_ballot_num() loc;es;e))) < pv11_p1_threshold(accpts)
           ∧ (m
             = make-Msg(``pv11_p1 adopted``;<pv11_p1_init_ballot_num() loc
                                            , snd(pv11_p1_ScoutStateFun(Cmd;accpts;mf;pv11_p1_init_ballot_num() 
                                                                                      loc;es;e))
                                            >)
             ∈ Message(mf)))
           ∨ ((¬((pv11_p1_init_ballot_num() loc) = (fst(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num()))
             ∧ (m = make-Msg(``pv11_p1 preempted``;fst(snd(snd(msgval(e))))) ∈ Message(mf))))})
∧ (∀[z3:ℤ]. ∀[z1:pv11_p1_Ballot_Num()]. ∀[reps,accpts:bag(Id)]. ∀[Cmd:{T:Type| valueall-type(T)} ]. ∀[z4:Cmd].
   ∀[mf:pv11_p1_headers_type{i:l}(Cmd)]. ∀[es:EO+(Message(mf))]. ∀[e:E]. ∀[d:ℤ]. ∀[i:Id]. ∀[m:Message(mf)].
     {<d, i, m> ∈ ((pv11_p1_commander_output(Cmd;accpts;reps;mf) <z1, z3, z4> o pv11_p1_p2b'base(Cmd;mf)) o pv11_p1_Comm\000CanderState(Cmd;accpts;mf) z1 z3)(e)
     ⇐⇒ ((header(e) = ``pv11_p1 p2b`` ∈ Name)
         ∧ has-es-info-type(es;e;mf;Id × pv11_p1_Ballot_Num() × ℤ × pv11_p1_Ballot_Num()))
         ∧ ((z1 = (fst(snd(msgval(e)))) ∈ pv11_p1_Ballot_Num()) ∧ (z3 = (fst(snd(snd(msgval(e))))) ∈ ℤ))
         ∧ (d = 0 ∈ ℤ)
         ∧ (↓((z1 = (snd(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num())
             ∧ #(pv11_p1_CommanderStateFun(Cmd;accpts;mf;z1;z3;es;e)) < pv11_p1_threshold(accpts)
             ∧ i ↓∈ reps
             ∧ (m = make-Msg([decision];<z3, z4>) ∈ Message(mf)))
             ∨ ((¬(z1 = (snd(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num()))
               ∧ (i = loc(e) ∈ Id)
               ∧ (m = make-Msg(``pv11_p1 preempted``;snd(snd(snd(msgval(e))))) ∈ Message(mf))))})
∧ (∀[loc:Id]. ∀[param:pv11_p1_Ballot_Num()]. ∀[accpts:bag(Id)]. ∀[Cmd:{T:Type| valueall-type(T)} ].
   ∀[mf:pv11_p1_headers_type{i:l}(Cmd)]. ∀[es:EO+(Message(mf))]. ∀[e:E]. ∀[d:ℤ]. ∀[i:Id]. ∀[m:Message(mf)].
     {<d, i, m> ∈ ((pv11_p1_scout_output(Cmd;accpts;mf) (pv11_p1_upd_bnum() param loc) o pv11_p1_p1b'base(Cmd;mf)) o
                  pv11_p1_ScoutState(Cmd;accpts;mf) (pv11_p1_upd_bnum() param loc))(e)
     ⇐⇒ ((header(e) = ``pv11_p1 p1b`` ∈ Name)
         ∧ has-es-info-type(es;e;mf;Id
           × pv11_p1_Ballot_Num()
           × pv11_p1_Ballot_Num()
           × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List)))
         ∧ ((pv11_p1_upd_bnum() param loc) = (fst(snd(msgval(e)))) ∈ pv11_p1_Ballot_Num())
         ∧ (d = 0 ∈ ℤ)
         ∧ (i = loc(e) ∈ Id)
         ∧ (↓(((pv11_p1_upd_bnum() param loc) = (fst(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num())
             ∧ #(fst(pv11_p1_ScoutStateFun(Cmd;accpts;mf;pv11_p1_upd_bnum() param 
                                                         loc;es;e))) < pv11_p1_threshold(accpts)
             ∧ (m
               = make-Msg(``pv11_p1 adopted``;<pv11_p1_upd_bnum() param loc
                                              , snd(pv11_p1_ScoutStateFun(Cmd;accpts;mf;pv11_p1_upd_bnum() param 
                                                                                        loc;es;e))
                                              >)
               ∈ Message(mf)))
             ∨ ((¬((pv11_p1_upd_bnum() param loc) = (fst(snd(snd(msgval(e))))) ∈ pv11_p1_Ballot_Num()))
               ∧ (m = make-Msg(``pv11_p1 preempted``;fst(snd(snd(msgval(e))))) ∈ Message(mf))))})
∧ (∀[Cmd:{T:Type| valueall-type(T)} ]. ∀[accpts,ldrs:bag(Id)]. ∀[ldrs_uid:Id ⟶ ℤ]. ∀[reps:bag(Id)].
   ∀[mf:pv11_p1_headers_type{i:l}(Cmd)]. ∀[es:EO+(Message(mf))]. ∀[e:E]. ∀[d:ℤ]. ∀[i:Id]. ∀[m:Message(mf)].
     {<d, i, m> ∈ pv11_p1_main(Cmd;accpts;ldrs;ldrs_uid;reps;mf)(e)
     ⇐⇒ ↓(loc(e) ↓∈ ldrs
          ∧ ((((((d = 0 ∈ ℤ) ∧ (m = make-Msg(``pv11_p1 p1a``;<loc(e), pv11_p1_init_ballot_num() loc(e)>) ∈ Message(mf)) \000C∧ i ↓∈ accpts)
            ∧ (↑first(e)))
            ∨ ((no ((pv11_p1_scout_output(Cmd;accpts;mf) (pv11_p1_init_ballot_num() loc(e)) o
                    pv11_p1_p1b'base(Cmd;mf)) o pv11_p1_ScoutState(Cmd;accpts;mf) 
                                                (pv11_p1_init_ballot_num() loc(e))) prior to e)
              ∧ <d, i, m> ∈ {((pv11_p1_scout_output(Cmd;accpts;mf) (pv11_p1_init_ballot_num() loc(e)) o
                              pv11_p1_p1b'base(Cmd;mf)) o pv11_p1_ScoutState(Cmd;accpts;mf) 
                                                          (pv11_p1_init_ballot_num() loc(e)))}(e)))
            ∨ (∃e':{e':E| e' ≤loc e } 
                ∃z1:pv11_p1_Ballot_Num()
                 ∃z3:ℤ
                  ∃z4:Cmd
                   (((((header(e') = [propose] ∈ Name) ∧ has-es-info-type(es;e';mf;ℤ × Cmd))
                   ∧ ((↑(fst(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;mf;es;e')))))
                     ∧ (¬↑(pv11_p1_in_domain(Cmd) (fst(msgval(e'))) 
                           (snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;mf;es;e')))))))
                   ∧ (z1 = (fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;mf;es;e'))) ∈ pv11_p1_Ballot_Num())
                   ∧ (<z3, z4> = msgval(e') ∈ (ℤ × Cmd)))
                   ∨ (((header(e') = ``pv11_p1 adopted`` ∈ Name)
                      ∧ has-es-info-type(es;e';mf;pv11_p1_Ballot_Num() × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List)))
                     ∧ ((fst(msgval(e'))) = (fst(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;mf;es;e'))) ∈ pv11_p1_Ballot_Num())
                     ∧ ((<z3, z4> ↓∈ snd(snd(pv11_p1_LeaderStateFun(Cmd;ldrs_uid;...;...;...))) ∧ ...) ∨ ...)
                     ∧ ...))
                   ∧ ...)))
            ∨ ...))
          ∨ ...})


Proof




Definitions occuring in Statement :  pv11_p1_main: pv11_p1_main(Cmd;accpts;ldrs;ldrs_uid;reps;mf),  pv11_p1_LeaderStateFun: pv11_p1_LeaderStateFun(Cmd;ldrs_uid;mf;es;e),  pv11_p1_scout_output: pv11_p1_scout_output(Cmd;accpts;mf),  pv11_p1_ScoutStateFun: pv11_p1_ScoutStateFun(Cmd;accpts;mf;x;es;e),  pv11_p1_ScoutState: pv11_p1_ScoutState(Cmd;accpts;mf),  pv11_p1_commander_output: pv11_p1_commander_output(Cmd;accpts;reps;mf),  pv11_p1_CommanderStateFun: pv11_p1_CommanderStateFun(Cmd;accpts;mf;x;zzs;es;e),  pv11_p1_CommanderState: pv11_p1_CommanderState(Cmd;accpts;mf),  pv11_p1_AcceptorStateFun: pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;mf;es;e),  pv11_p1_init_ballot_num: pv11_p1_init_ballot_num(),  pv11_p1_p2b'base: pv11_p1_p2b'base(Cmd;mf),  pv11_p1_p1b'base: pv11_p1_p1b'base(Cmd;mf),  pv11_p1_threshold: pv11_p1_threshold(accpts),  pv11_p1_in_domain: pv11_p1_in_domain(Cmd),  pv11_p1_pmax: pv11_p1_pmax(Cmd;ldrs_uid),  pv11_p1_headers_type: pv11_p1_headers_type{i:l}(Cmd),  pv11_p1_lt_bnum: pv11_p1_lt_bnum(ldrs_uid),  pv11_p1_upd_bnum: pv11_p1_upd_bnum(),  pv11_p1_is_bnum: pv11_p1_is_bnum(),  pv11_p1_Ballot_Num: pv11_p1_Ballot_Num(),  msg-interface: Interface,  make-Msg: make-Msg(hdr;val),  es-info-body: msgval(e),  has-es-info-type: has-es-info-type(es;e;f;T),  es-header: header(e),  Message: Message(f),  eclass2: (X o Y),  eclass1: (f o X),  no-classrel-in-interval: (no X between start and e),  no-prior-classrel: (no X prior to e),  classrel: v ∈ X(e),  eo-forward: eo.e,  event-ordering+: EO+(Info),  es-le: e ≤loc e' ,  es-first: first(e),  es-loc: loc(e),  es-E: E,  Id: Id,  name: Name,  l_member: (x ∈ l),  cons: [a / b],  nil: [],  list: T List,  valueall-type: valueall-type(T),  assert: ↑b,  less_than: a < b,  uall: ∀[x:A]. B[x],  guard: {T},  pi1: fst(t),  pi2: snd(t),  exists: ∃x:A. B[x],  iff: P ⇐⇒ Q,  not: ¬A,  squash: ↓T,  or: P ∨ Q,  and: P ∧ Q,  set: {x:A| B[x]} ,  apply: f a,  function: x:A ⟶ B[x],  pair: <a, b>,  product: x:A × B[x],  natural_number: $n,  int: ℤ,  token: "$token",  universe: Type,  equal: s = t ∈ T,  bag-member: x ↓∈ bs,  bag-size: #(bs),  bag: bag(T)
Definitions unfolded in proof :  and: P ∧ Q,  uall: ∀[x:A]. B[x],  member: t ∈ T,  pv11_p1_headers_type: pv11_p1_headers_type{i:l}(Cmd),  subtype_rel: A ⊆r B,  listp: A List+,  name: Name,  prop: ℙ,  implies: P ⇒ Q,  sq_stable: SqStable(P),  l_all: (∀x∈L.P[x]),  all: ∀x:A. B[x],  so_lambda: λ2x.t[x],  vatype: ValueAllType,  so_apply: x[s],  iff: P ⇐⇒ Q,  int_seg: {i..j-},  lelt: i ≤ j < k,  le: A ≤ B,  less_than': less_than'(a;b),  false: False,  not: ¬A,  less_than: a < b,  squash: ↓T,  length: ||as||,  list_ind: list_ind,  pv11_p1_headers: pv11_p1_headers(),  cons: [a / b],  nil: [],  it: ⋅,  true: True,  select: L[n],  subtract: n - m,  uimplies: b supposing a,  guard: {T},  rev_implies: P ⇐ Q,  pv11_p1_headers_fun: pv11_p1_headers_fun(Cmd),  name_eq: name_eq(x;y),  name-deq: NameDeq,  list-deq: list-deq(eq),  band: p ∧b q,  ifthenelse: if b then t else f fi ,  atom-deq: AtomDeq,  eq_atom: x =a y,  bfalse: ff,  btrue: tt,  null: null(as),  cand: A c∧ B,  has-es-info-type: has-es-info-type(es;e;f;T),  classrel: v ∈ X(e),  bag-member: x ↓∈ bs,  make-msg-interface: make-msg-interface(i;l;m),  equal-info-body: v = body(e),  pv11_p1_p1b'base: pv11_p1_p1b'base(Cmd;mf),  encodes-msg-type: hdr encodes T,  uiff: uiff(P;Q),  pv11_p1_scout_output: pv11_p1_scout_output(Cmd;accpts;mf),  spreadn: spread4,  top: Top,  so_lambda: λ2x y.t[x; y],  so_apply: x[s1;s2],  pi2: snd(t),  pi1: fst(t),  bool: 𝔹,  unit: Unit,  nat: ℕ,  exists: ∃x:A. B[x],  or: P ∨ Q,  sq_type: SQType(T),  bnot: ¬bb,  assert: ↑b,  msg-interface: Interface,  pv11_p1_preempted'send: pv11_p1_preempted'send(Cmd;mf),  mk-msg-interface: mk-msg-interface(l;m),  pv11_p1_adopted'send: pv11_p1_adopted'send(Cmd;mf),  pv11_p1_p2b'base: pv11_p1_p2b'base(Cmd;mf),  pv11_p1_commander_output: pv11_p1_commander_output(Cmd;accpts;reps;mf),  spreadn: spread3,  pv11_p1_decision'broadcast: pv11_p1_decision'broadcast(Cmd;mf),  pv11_p1_main: pv11_p1_main(Cmd;accpts;ldrs;ldrs_uid;reps;mf),  sq_or: a ↓∨ b,  pv11_p1_Leader: pv11_p1_Leader(Cmd;accpts;ldrs_uid;reps;mf),  pv11_p1_SpawnFirstScout: pv11_p1_SpawnFirstScout(Cmd;accpts;mf),  pv11_p1_LeaderPropose: pv11_p1_LeaderPropose(Cmd;ldrs_uid;mf),  pv11_p1_propose'base: pv11_p1_propose'base(Cmd;mf),  pv11_p1_LeaderAdopted: pv11_p1_LeaderAdopted(Cmd;ldrs_uid;mf),  pv11_p1_adopted'base: pv11_p1_adopted'base(Cmd;mf),  pv11_p1_Commander: pv11_p1_Commander(Cmd;accpts;reps;mf),  pv11_p1_CommanderNotify: pv11_p1_CommanderNotify(Cmd;accpts;mf),  pv11_p1_CommanderOutput: pv11_p1_CommanderOutput(Cmd;accpts;reps;mf),  pv11_p1_LeaderPreempted: pv11_p1_LeaderPreempted(Cmd;ldrs_uid;mf),  pv11_p1_preempted'base: pv11_p1_preempted'base(Cmd;mf),  pv11_p1_Scout: pv11_p1_Scout(Cmd;accpts;mf),  pv11_p1_ScoutNotify: pv11_p1_ScoutNotify(Cmd;accpts;mf),  pv11_p1_ScoutOutput: pv11_p1_ScoutOutput(Cmd;accpts;mf),  pv11_p1_Acceptor: pv11_p1_Acceptor(Cmd;ldrs_uid;mf),  pv11_p1_AcceptorsP1a: pv11_p1_AcceptorsP1a(Cmd;ldrs_uid;mf),  let: let,  pv11_p1_p1a'base: pv11_p1_p1a'base(Cmd;mf),  pv11_p1_AcceptorsP2a: pv11_p1_AcceptorsP2a(Cmd;ldrs_uid;mf),  pv11_p1_p2a'base: pv11_p1_p2a'base(Cmd;mf),  pv11_p1_leader_propose: pv11_p1_leader_propose(Cmd),  pv11_p1_leader_adopted: pv11_p1_leader_adopted(Cmd;ldrs_uid),  bag-map: bag-map(f;bs),  pv11_p1_update_proposals: pv11_p1_update_proposals(Cmd),  bag-append: as + bs,  bag-filter: [x∈b|p[x]],  pv11_p1_pmax: pv11_p1_pmax(Cmd;ldrs_uid),  mapfilter: mapfilter(f;P;L),  pv11_p1_p2a'broadcast: pv11_p1_p2a'broadcast(Cmd;mf),  pv11_p1_leader_preempted: pv11_p1_leader_preempted(Cmd;ldrs_uid),  pv11_p1_p1a'broadcast: pv11_p1_p1a'broadcast(Cmd;mf),  empty-bag: {},  hint: hint(t),  pv11_p1_p1b'send: pv11_p1_p1b'send(Cmd;mf),  pv11_p1_p2b'send: pv11_p1_p2b'send(Cmd;mf),  decidable: Dec(P),  pv11_p1_init_ballot_num: pv11_p1_init_ballot_num(),  pv11_p1_mk_bnum: pv11_p1_mk_bnum()

Latex:
(\mforall{}[loc:Id].  \mforall{}[accpts:bag(Id)].  \mforall{}[Cmd:\{T:Type|  valueall-type(T)\}  ].
  \mforall{}[mf:pv11\_p1\_headers\_type\{i:l\}(Cmd)].  \mforall{}[es:EO+(Message(mf))].  \mforall{}[e:E].  \mforall{}[d:\mBbbZ{}].  \mforall{}[i:Id].
  \mforall{}[m:Message(mf)].
      \{<d,  i,  m>  \mmember{}  ((pv11\_p1\_scout\_output(Cmd;accpts;mf)  (pv11\_p1\_init\_ballot\_num()  loc)  o
                                  pv11\_p1\_p1b'base(Cmd;mf))  o  pv11\_p1\_ScoutState(Cmd;accpts;mf) 
                                                                                          (pv11\_p1\_init\_ballot\_num()  loc))(e)
      \mLeftarrow{}{}\mRightarrow{}  ((header(e)  =  ``pv11\_p1  p1b``)
              \mwedge{}  has-es-info-type(es;e;mf;Id
                  \mtimes{}  pv11\_p1\_Ballot\_Num()
                  \mtimes{}  pv11\_p1\_Ballot\_Num()
                  \mtimes{}  ((pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List)))
              \mwedge{}  ((pv11\_p1\_init\_ballot\_num()  loc)  =  (fst(snd(msgval(e)))))
              \mwedge{}  (d  =  0)
              \mwedge{}  (i  =  loc(e))
              \mwedge{}  (\mdownarrow{}(((pv11\_p1\_init\_ballot\_num()  loc)  =  (fst(snd(snd(msgval(e))))))
                      \mwedge{}  \#(fst(pv11\_p1\_ScoutStateFun(Cmd;accpts;mf;pv11\_p1\_init\_ballot\_num() 
                                                                                                              loc;es;e)))  <  pv11\_p1\_threshold(accpts)
                      \mwedge{}  (m
                          =  make-Msg(``pv11\_p1  adopted``;<pv11\_p1\_init\_ballot\_num()  loc
                                                                                        ,  snd(pv11\_p1\_ScoutStateFun(Cmd;accpts;mf;... 
                                                                                                                                                                            loc;es;e))
                                                                                        >)))
                      \mvee{}  ((\mneg{}((pv11\_p1\_init\_ballot\_num()  loc)  =  (fst(snd(snd(msgval(e)))))))
                          \mwedge{}  (m  =  make-Msg(``pv11\_p1  preempted``;fst(snd(snd(msgval(e))))))))\})
\mwedge{}  (\mforall{}[z3:\mBbbZ{}].  \mforall{}[z1:pv11\_p1\_Ballot\_Num()].  \mforall{}[reps,accpts:bag(Id)].  \mforall{}[Cmd:\{T:Type|  valueall-type(T)\}  ].
      \mforall{}[z4:Cmd].  \mforall{}[mf:pv11\_p1\_headers\_type\{i:l\}(Cmd)].  \mforall{}[es:EO+(Message(mf))].  \mforall{}[e:E].  \mforall{}[d:\mBbbZ{}].  \mforall{}[i:Id].
      \mforall{}[m:Message(mf)].
          \{<d,  i,  m>  \mmember{}  ((pv11\_p1\_commander\_output(Cmd;accpts;reps;mf) 
                                        <z1,  z3,  z4>  o  pv11\_p1\_p2b'base(Cmd;mf))  o
                                    pv11\_p1\_CommanderState(Cmd;accpts;mf)  z1  z3)(e)
          \mLeftarrow{}{}\mRightarrow{}  ((header(e)  =  ``pv11\_p1  p2b``)
                  \mwedge{}  has-es-info-type(es;e;mf;Id  \mtimes{}  pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  pv11\_p1\_Ballot\_Num()))
                  \mwedge{}  ((z1  =  (fst(snd(msgval(e)))))  \mwedge{}  (z3  =  (fst(snd(snd(msgval(e)))))))
                  \mwedge{}  (d  =  0)
                  \mwedge{}  (\mdownarrow{}((z1  =  (snd(snd(snd(msgval(e))))))
                          \mwedge{}  \#(pv11\_p1\_CommanderStateFun(Cmd;accpts;mf;z1;z3;es;e))  <  pv11\_p1\_threshold(accpts)
                          \mwedge{}  i  \mdownarrow{}\mmember{}  reps
                          \mwedge{}  (m  =  make-Msg([decision];<z3,  z4>)))
                          \mvee{}  ((\mneg{}(z1  =  (snd(snd(snd(msgval(e)))))))
                              \mwedge{}  (i  =  loc(e))
                              \mwedge{}  (m  =  make-Msg(``pv11\_p1  preempted``;snd(snd(snd(msgval(e))))))))\})
\mwedge{}  (\mforall{}[loc:Id].  \mforall{}[param:pv11\_p1\_Ballot\_Num()].  \mforall{}[accpts:bag(Id)].  \mforall{}[Cmd:\{T:Type|  valueall-type(T)\}  ].
      \mforall{}[mf:pv11\_p1\_headers\_type\{i:l\}(Cmd)].  \mforall{}[es:EO+(Message(mf))].  \mforall{}[e:E].  \mforall{}[d:\mBbbZ{}].  \mforall{}[i:Id].
      \mforall{}[m:Message(mf)].
          \{<d,  i,  m>  \mmember{}  ((pv11\_p1\_scout\_output(Cmd;accpts;mf)  (pv11\_p1\_upd\_bnum()  param  loc)  o
                                      pv11\_p1\_p1b'base(Cmd;mf))  o  pv11\_p1\_ScoutState(Cmd;accpts;mf) 
                                                                                              (pv11\_p1\_upd\_bnum()  param  loc))(e)
          \mLeftarrow{}{}\mRightarrow{}  ((header(e)  =  ``pv11\_p1  p1b``)
                  \mwedge{}  has-es-info-type(es;e;mf;Id
                      \mtimes{}  pv11\_p1\_Ballot\_Num()
                      \mtimes{}  pv11\_p1\_Ballot\_Num()
                      \mtimes{}  ((pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List)))
                  \mwedge{}  ((pv11\_p1\_upd\_bnum()  param  loc)  =  (fst(snd(msgval(e)))))
                  \mwedge{}  (d  =  0)
                  \mwedge{}  (i  =  loc(e))
                  \mwedge{}  (\mdownarrow{}(((pv11\_p1\_upd\_bnum()  param  loc)  =  (fst(snd(snd(msgval(e))))))
                          \mwedge{}  \#(fst(pv11\_p1\_ScoutStateFun(Cmd;accpts;mf;pv11\_p1\_upd\_bnum()  param 
                                                                                                                  loc;es;e)))  <  pv11\_p1\_threshold(accpts)
                          \mwedge{}  (m
                              =  make-Msg(``pv11\_p1  adopted``;<pv11\_p1\_upd\_bnum()  param  loc
                                                                                            ,  snd(pv11\_p1\_ScoutStateFun(Cmd;accpts;mf;... 
                                                                                                                                                                                param 
                                                                                                                                                                                loc;es;e))
                                                                                            >)))
                          \mvee{}  ((\mneg{}((pv11\_p1\_upd\_bnum()  param  loc)  =  (fst(snd(snd(msgval(e)))))))
                              \mwedge{}  (m  =  make-Msg(``pv11\_p1  preempted``;fst(snd(snd(msgval(e))))))))\})
\mwedge{}  (\mforall{}[Cmd:\{T:Type|  valueall-type(T)\}  ].  \mforall{}[accpts,ldrs:bag(Id)].  \mforall{}[ldrs$_{uid}$:Id\000C  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[reps:bag(Id)].
      \mforall{}[mf:pv11\_p1\_headers\_type\{i:l\}(Cmd)].  \mforall{}[es:EO+(Message(mf))].  \mforall{}[e:E].  \mforall{}[d:\mBbbZ{}].  \mforall{}[i:Id].
      \mforall{}[m:Message(mf)].
          \{<d,  i,  m>  \mmember{}  pv11\_p1\_main(Cmd;accpts;ldrs;ldrs$_{uid}$;reps;mf)(e)
          \mLeftarrow{}{}\mRightarrow{}  \mdownarrow{}(loc(e)  \mdownarrow{}\mmember{}  ldrs
                    \mwedge{}  ((((((d  =  0)  \mwedge{}  (m  =  make-Msg(``pv11\_p1  p1a``;<loc(e),  pv11\_p1\_init\_ballot\_num()  loc(e)>)\000C)  \mwedge{}  i  \mdownarrow{}\mmember{}  accpts)
                        \mwedge{}  (\muparrow{}first(e)))
                        \mvee{}  ((no  ((pv11\_p1\_scout\_output(Cmd;accpts;mf)  (pv11\_p1\_init\_ballot\_num()  loc(e))  o
                                        pv11\_p1\_p1b'base(Cmd;mf))  o  pv11\_p1\_ScoutState(Cmd;accpts;mf) 
                                                                                                (pv11\_p1\_init\_ballot\_num()  loc(e)))  prior  to  e)
                            \mwedge{}  <d,  i,  m>  \mmember{}  \{((pv11\_p1\_scout\_output(Cmd;accpts;mf) 
                                                              (pv11\_p1\_init\_ballot\_num()  loc(e))  o  pv11\_p1\_p1b'base(Cmd;mf))  o
                                                          pv11\_p1\_ScoutState(Cmd;accpts;mf)  (pv11\_p1\_init\_ballot\_num()  loc(e)))\}(
                                                        e)))
                        \mvee{}  (\mexists{}e':\{e':E|  e'  \mleq{}loc  e  \} 
                                \mexists{}z1:pv11\_p1\_Ballot\_Num()
                                  \mexists{}z3:\mBbbZ{}
                                    \mexists{}z4:Cmd
                                      (((((header(e')  =  [propose])  \mwedge{}  has-es-info-type(es;e';mf;\mBbbZ{}  \mtimes{}  Cmd))
                                      \mwedge{}  ((\muparrow{}(fst(snd(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;mf;es;e\000C')))))
                                          \mwedge{}  (\mneg{}\muparrow{}(pv11\_p1\_in\_domain(Cmd)  (fst(msgval(e'))) 
                                                      (snd(snd(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;mf;e\000Cs;e')))))))
                                      \mwedge{}  (z1  =  (fst(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}$;mf;es;e'\000C))))
                                      \mwedge{}  (<z3,  z4>  =  msgval(e')))
                                      \mvee{}  (((header(e')  =  ``pv11\_p1  adopted``)
                                            \mwedge{}  has-es-info-type(es;e';mf;pv11\_p1\_Ballot\_Num()  \mtimes{}  ((pv11\_p1\_Ballot\_Num()
                                                                                                                                                  \mtimes{}  \mBbbZ{}
                                                                                                                                                  \mtimes{}  Cmd)  List)))
                                          \mwedge{}  ((fst(msgval(e')))  =  (fst(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid\mbackslash{}f\000Cf7d$;mf;es;e'))))
                                          \mwedge{}  ((<z3,  z4>  \mdownarrow{}\mmember{}  snd(snd(pv11\_p1\_LeaderStateFun(Cmd;ldrs$_{uid}\mbackslash{}\000Cff24;mf;es;e')))
                                              \mwedge{}  (\mneg{}(\mexists{}p2:Cmd.  (<z3,  p2>  \mmember{}  pv11\_p1\_pmax(Cmd;ldrs$_{uid}$)  \000C(snd(msgval(e')))))))
                                              \mvee{}  (\mexists{}v2:pv11\_p1\_Ballot\_Num()
                                                      (<v2,  z3,  z4>  \mdownarrow{}\mmember{}  snd(msgval(e'))
                                                      \mwedge{}  (\mneg{}(\mexists{}z5:pv11\_p1\_Ballot\_Num().  \mexists{}z8:Cmd.  ((\muparrow{}(v2  ...  ...))  \mwedge{}  ...))))))
                                          \mwedge{}  ...))
                                      \mwedge{}  ...)))
                        \mvee{}  ...))
                    \mvee{}  ...\})



Date html generated: 2016_05_17-PM-03_08_39
Last ObjectModification: 2016_04_03-PM-09_39_05

Theory : paxos!synod


Home Index