{ [S,V:Type]. [M:IdLnk  Id  Type]. [l:IdLnk]. [s:S]. [v:V].
  [L:(t:Id  (S  V  (M[l;t] List))) List].
    (tagged-messages(l;s;v;L)  {m:Msg(M)| mlnk(m) = l}  List) }

{ Proof }



Definitions occuring in Statement :  tagged-messages: tagged-messages(l;s;v;L) mlnk: mlnk(m) Msg: Msg(M) IdLnk: IdLnk Id: Id uall: [x:A]. B[x] so_apply: x[s1;s2] member: t  T set: {x:A| B[x]}  function: x:A  B[x] product: x:A  B[x] list: type List universe: Type equal: s = t
Definitions :  uall: [x:A]. B[x] so_apply: x[s1;s2] member: t  T Msg: Msg(M) tagged-messages: tagged-messages(l;s;v;L) so_lambda: x.t[x] mlnk: mlnk(m) pi1: fst(t) top: Top all: x:A. B[x] subtype: S  T so_apply: x[s]
Lemmas :  map_wf Msg_wf mlnk_wf tagged-list-messages_wf Id_wf IdLnk_wf pi1_wf_top

\mforall{}[S,V:Type].  \mforall{}[M:IdLnk  {}\mrightarrow{}  Id  {}\mrightarrow{}  Type].  \mforall{}[l:IdLnk].  \mforall{}[s:S].  \mforall{}[v:V].
\mforall{}[L:(t:Id  \mtimes{}  (S  {}\mrightarrow{}  V  {}\mrightarrow{}  (M[l;t]  List)))  List].
    (tagged-messages(l;s;v;L)  \mmember{}  \{m:Msg(M)|  mlnk(m)  =  l\}    List)


Date html generated: 2011_08_10-AM-07_47_19
Last ObjectModification: 2011_06_18-AM-08_12_43

Home Index