{ [M:Type  Type]
    [Q:Type]
      [m:Id]. (mk-tagged("choose";m)  Com(P.M[P]) Q) 
      supposing Process(P.M[P]) r Q 
    supposing Monotone(T.M[T]) }

{ Proof }



Definitions occuring in Statement :  Process: Process(P.M[P]),  Com: Com(P.M[P]),  Id: Id,  type-monotone: Monotone(T.F[T]),  subtype_rel: A r B,  uimplies: b supposing a,  uall: [x:A]. B[x],  so_apply: x[s],  member: t  T,  apply: f a,  function: x:A  B[x],  token: "$token",  universe: Type,  mk-tagged: mk-tagged(tg;x)
Definitions :  uall: [x:A]. B[x],  uimplies: b supposing a,  so_apply: x[s],  member: t  T,  Com: Com(P.M[P]),  tagged+: T |+ z:B,  isect2: T1  T2,  ifthenelse: if b then t else f fi ,  btrue: tt,  not: A,  top: Top,  assert: b,  eq_atom: x =a y,  implies: P  Q,  bfalse: ff,  so_lambda: x.t[x],  unit: Unit,  bool: ,  rev_implies: P  Q,  iff: P  Q,  and: P  Q,  false: False,  it: ,  prop:
Lemmas :  mk-tagged_wf_unequal,  iff_weakening_uiff,  not_wf,  assert_wf,  eq_atom_wf,  not_functionality_wrt_uiff,  uiff_inversion,  assert_of_eq_atom,  false_wf,  mk-tagged_wf,  Id_wf,  unit_wf,  bool_wf,  Process_wf,  type-monotone_wf

\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}[Q:Type].  \mforall{}[m:Id].  (mk-tagged("choose";m)  \mmember{}  Com(P.M[P])  Q)  supposing  Process(P.M[P])  \msubseteq{}r  Q 
    supposing  Monotone(T.M[T])


Date html generated: 2011_08_16-PM-06_48_06
Last ObjectModification: 2011_06_18-AM-11_00_31

Home Index