Nuprl Lemma : CLK_ClockFun-eq2

[MsgType:ValueAllType]. ∀[f:CLK_headers_type{i:l}(MsgType)]. ∀[es:EO+(Message(f))]. ∀[e:E].
  (CLK_ClockVal(MsgType;f)@e
  if e ∈b CLK_msg'base(MsgType;f)
      then if first(e)
           then imax(snd(CLK_msg'base(MsgType;f)@e);0) 1
           else imax(snd(CLK_msg'base(MsgType;f)@e);CLK_ClockVal(MsgType;f)@pred(e)) 1
           fi 
    if first(e) then 0
    else CLK_ClockVal(MsgType;f)@pred(e)
    fi 
  ∈ ℤ)


Proof




Definitions occuring in Statement :  CLK_ClockFun: CLK_ClockVal(MsgType;f)@e CLK_msg'base: CLK_msg'base(MsgType;f) CLK_headers_type: CLK_headers_type{i:l}(MsgType) Message: Message(f) classfun-res: X@e member-eclass: e ∈b X event-ordering+: EO+(Info) es-first: first(e) es-pred: pred(e) es-E: E imax: imax(a;b) vatype: ValueAllType ifthenelse: if then else fi  uall: [x:A]. B[x] pi2: snd(t) add: m natural_number: $n int: equal: t ∈ T
Definitions unfolded in proof :  vatype: ValueAllType uall: [x:A]. B[x] CLK_headers_type: CLK_headers_type{i:l}(MsgType) l_all: (∀x∈L.P[x]) all: x:A. B[x] and: P ∧ Q member: t ∈ T so_lambda: λ2x.t[x] subtype_rel: A ⊆B prop: so_apply: x[s] iff: ⇐⇒ Q implies:  Q listp: List+ name: Name CLK_headers: CLK_headers() rev_implies:  Q or: P ∨ Q uimplies: supposing a guard: {T} CLK_headers_fun: CLK_headers_fun(MsgType) name_eq: name_eq(x;y) name-deq: NameDeq list-deq: list-deq(eq) list_ind: list_ind cons: [a b] band: p ∧b q ifthenelse: if then else fi  atom-deq: AtomDeq eq_atom: =a y btrue: tt nil: [] it: null: null(as) CLK_ClockFun: CLK_ClockVal(MsgType;f)@e CLK_Clock: CLK_Clock(MsgType;f) CLK_msg'base: CLK_msg'base(MsgType;f) encodes-msg-type: hdr encodes T bool: 𝔹 unit: Unit uiff: uiff(P;Q) bfalse: ff exists: x:A. B[x] sq_type: SQType(T) bnot: ¬bb assert: b false: False CLK_upd_clock: CLK_upd_clock(MsgType) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] top: Top pi2: snd(t)

Latex:
\mforall{}[MsgType:ValueAllType].  \mforall{}[f:CLK\_headers\_type\{i:l\}(MsgType)].  \mforall{}[es:EO+(Message(f))].  \mforall{}[e:E].
    (CLK\_ClockVal(MsgType;f)@e
    =  if  e  \mmember{}\msubb{}  CLK\_msg'base(MsgType;f)
            then  if  first(e)
                      then  imax(snd(CLK\_msg'base(MsgType;f)@e);0)  +  1
                      else  imax(snd(CLK\_msg'base(MsgType;f)@e);CLK\_ClockVal(MsgType;f)@pred(e))  +  1
                      fi 
        if  first(e)  then  0
        else  CLK\_ClockVal(MsgType;f)@pred(e)
        fi  )



Date html generated: 2016_05_17-PM-02_46_12
Last ObjectModification: 2015_12_29-PM-10_19_07

Theory : lamport!s!clocks


Home Index