Nuprl Lemma : mk-msg-equal

∀[f:Name ⟶ Type]. ∀[auth1,auth2:𝔹]. ∀[hdr1,hdr2:Name]. ∀[val1:f hdr1]. ∀[val2:f hdr2].
  (mk-msg(auth1;hdr1;val1) = mk-msg(auth2;hdr2;val2) ∈ Message(f)
  ⇐⇒ {auth1 = auth2 ∧ (hdr1 = hdr2 ∈ Name) ∧ (val1 = val2 ∈ (f hdr1))})


Proof




Definitions occuring in Statement :  mk-msg: mk-msg(auth;hdr;val),  Message: Message(f),  name: Name,  bool: 𝔹,  uall: ∀[x:A]. B[x],  guard: {T},  iff: P ⇐⇒ Q,  and: P ∧ Q,  apply: f a,  function: x:A ⟶ B[x],  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  guard: {T},  uall: ∀[x:A]. B[x],  member: t ∈ T,  iff: P ⇐⇒ Q,  and: P ∧ Q,  implies: P ⇒ Q,  mk-msg: mk-msg(auth;hdr;val),  Message: Message(f),  make-basicMsg: make-basicMsg(hdr;val),  basicMessage: basicMessage(f),  so_lambda: λ2x.t[x],  so_apply: x[s],  subtype_rel: A ⊆r B,  uimplies: b supposing a,  all: ∀x:A. B[x],  top: Top,  pi1: fst(t),  sq_type: SQType(T),  assert: ↑b,  ifthenelse: if b then t else f fi ,  btrue: tt,  true: True,  prop: ℙ,  rev_implies: P ⇐ Q,  pi2: snd(t),  squash: ↓T,  name: Name

Latex:
\mforall{}[f:Name  {}\mrightarrow{}  Type].  \mforall{}[auth1,auth2:\mBbbB{}].  \mforall{}[hdr1,hdr2:Name].  \mforall{}[val1:f  hdr1].  \mforall{}[val2:f  hdr2].
    (mk-msg(auth1;hdr1;val1)  =  mk-msg(auth2;hdr2;val2)
    \mLeftarrow{}{}\mRightarrow{}  \{auth1  =  auth2  \mwedge{}  (hdr1  =  hdr2)  \mwedge{}  (val1  =  val2)\})



Date html generated: 2016_05_17-AM-08_57_33
Last ObjectModification: 2016_01_17-PM-08_32_49

Theory : messages


Home Index