{ [M:IdLnk  Id  Type]. [rt:Id  Id]. [rtinv:Id  (Id?)].
    [m:Msg(M)]
      msg-rename(rtinv;m)  Msg(l,tg.(M l (rt tg))) 
      supposing isl(rtinv mtag(m)) 
    supposing inv-rel(Id;Id;rt;rtinv) }

{ Proof }



Definitions occuring in Statement :  msg-rename: msg-rename(rtinv;m) mtag: mtag(m) Msg: Msg(M) IdLnk: IdLnk Id: Id isl: isl(x) assert: b uimplies: b supposing a uall: [x:A]. B[x] unit: Unit member: t  T apply: f a lambda: x.A[x] function: x:A  B[x] union: left + right universe: Type inv-rel: inv-rel(A;B;f;finv)
Definitions :  uall: [x:A]. B[x] uimplies: b supposing a member: t  T Msg: Msg(M) msg-rename: msg-rename(rtinv;m) pi1: fst(t) pi2: snd(t) assert: b isl: isl(x) outl: outl(x) implies: P  Q all: x:A. B[x] btrue: tt bfalse: ff ifthenelse: if b then t else f fi  mtag: mtag(m) false: False inv-rel: inv-rel(A;B;f;finv) and: P  Q prop: guard: {T}
Lemmas :  assert_wf isl_wf Id_wf unit_wf mtag_wf Msg_wf inv-rel_wf IdLnk_wf outl_wf true_wf false_wf

\mforall{}[M:IdLnk  {}\mrightarrow{}  Id  {}\mrightarrow{}  Type].  \mforall{}[rt:Id  {}\mrightarrow{}  Id].  \mforall{}[rtinv:Id  {}\mrightarrow{}  (Id?)].
    \mforall{}[m:Msg(M)].  msg-rename(rtinv;m)  \mmember{}  Msg(\mlambda{}l,tg.(M  l  (rt  tg)))  supposing  \muparrow{}isl(rtinv  mtag(m)) 
    supposing  inv-rel(Id;Id;rt;rtinv)


Date html generated: 2011_08_10-AM-07_46_28
Last ObjectModification: 2011_06_18-AM-08_12_11

Home Index