Nuprl Lemma : new_23_sig_rounds_strict_inc

Cmd:ValueAllType. ∀notify,propose:Atom List. ∀f:new_23_sig_headers_type{i:l}(Cmd;notify;propose). ∀es:EO+(Message(f)).
e1,e2:E. ∀n,round1,round2:ℤ.
  ((∃z:ℤ × ℤ × Cmd
     ∃round:ℤ
      ∃e:E
       (e1 ≤loc 
       ∧ (e <loc e2)
       ∧ z ∈ new_23_sig_RoundInfo(Cmd;notify;propose;f)(e)
       ∧ round ∈ new_23_sig_NewRoundsState(Cmd;notify;propose;f) n(e)
       ∧ let z,cmd 
         in let n',round' 
            in (n' n ∈ ℤ) ∧ round < round'))
   (e1 <loc e2)
   round1 ∈ new_23_sig_NewRoundsState(Cmd;notify;propose;f) n(e1)
   round2 ∈ new_23_sig_NewRoundsState(Cmd;notify;propose;f) n(e2)
   round1 < round2)


Proof




Definitions occuring in Statement :  new_23_sig_NewRoundsState: new_23_sig_NewRoundsState(Cmd;notify;propose;f) new_23_sig_RoundInfo: new_23_sig_RoundInfo(Cmd;notify;propose;f) new_23_sig_headers_type: new_23_sig_headers_type{i:l}(Cmd;notify;propose) Message: Message(f) classrel: v ∈ X(e) event-ordering+: EO+(Info) es-le: e ≤loc e'  es-locl: (e <loc e') es-E: E list: List vatype: ValueAllType less_than: a < b all: x:A. B[x] exists: x:A. B[x] implies:  Q and: P ∧ Q apply: a spread: spread def product: x:A × B[x] int: atom: Atom equal: t ∈ T
Definitions unfolded in proof :  vatype: ValueAllType all: x:A. B[x] implies:  Q new_23_sig_NewRoundsState: new_23_sig_NewRoundsState(Cmd;notify;propose;f) member: t ∈ T squash: T uall: [x:A]. B[x] prop: subtype_rel: A ⊆B so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] true: True uimplies: supposing a guard: {T} iff: ⇐⇒ Q and: P ∧ Q Memory1: Memory1(init;tr;X) so_lambda: λ2x.t[x] exists: x:A. B[x] cand: c∧ B trans: Trans(T;x,y.E[x; y]) decidable: Dec(P) or: P ∨ Q satisfiable_int_formula: satisfiable_int_formula(fmla) false: False not: ¬A top: Top new_23_sig_update_round: new_23_sig_update_round(Cmd) bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) band: p ∧b q ifthenelse: if then else fi  bfalse: ff sq_type: SQType(T) bnot: ¬bb assert: b nequal: a ≠ b ∈  new_23_sig_RoundInfo: new_23_sig_RoundInfo(Cmd;notify;propose;f) new_23_sig_vote'base: new_23_sig_vote'base(Cmd;notify;propose;f) new_23_sig_retry'base: new_23_sig_retry'base(Cmd;notify;propose;f) listp: List+ name: Name rev_implies:  Q name_eq: name_eq(x;y) name-deq: NameDeq list-deq: list-deq(eq) list_ind: list_ind cons: [a b] atom-deq: AtomDeq eq_atom: =a y new_23_sig_headers_type: new_23_sig_headers_type{i:l}(Cmd;notify;propose) so_apply: x[s] sq_stable: SqStable(P) new_23_sig_headers: new_23_sig_headers(notify;propose) new_23_sig_headers_fun: new_23_sig_headers_fun(Cmd;notify;propose) encodes-msg-type: hdr encodes T nil: [] null: null(as) new_23_sig_vote2retry: new_23_sig_vote2retry(Cmd) less_than: a < b

Latex:
\mforall{}Cmd:ValueAllType.  \mforall{}notify,propose:Atom  List.  \mforall{}f:new\_23\_sig\_headers\_type\{i:l\}(Cmd;notify;propose).
\mforall{}es:EO+(Message(f)).  \mforall{}e1,e2:E.  \mforall{}n,round1,round2:\mBbbZ{}.
    ((\mexists{}z:\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd
          \mexists{}round:\mBbbZ{}
            \mexists{}e:E
              (e1  \mleq{}loc  e 
              \mwedge{}  (e  <loc  e2)
              \mwedge{}  z  \mmember{}  new\_23\_sig\_RoundInfo(Cmd;notify;propose;f)(e)
              \mwedge{}  round  \mmember{}  new\_23\_sig\_NewRoundsState(Cmd;notify;propose;f)  n(e)
              \mwedge{}  let  z,cmd  =  z 
                  in  let  n',round'  =  z 
                        in  (n'  =  n)  \mwedge{}  round  <  round'))
    {}\mRightarrow{}  (e1  <loc  e2)
    {}\mRightarrow{}  round1  \mmember{}  new\_23\_sig\_NewRoundsState(Cmd;notify;propose;f)  n(e1)
    {}\mRightarrow{}  round2  \mmember{}  new\_23\_sig\_NewRoundsState(Cmd;notify;propose;f)  n(e2)
    {}\mRightarrow{}  round1  <  round2)



Date html generated: 2016_05_17-PM-02_05_07
Last ObjectModification: 2016_01_18-AM-09_34_28

Theory : 2!3!consensus!with!signatures


Home Index