{ [M:Type  Type]
    [A,B:Type].  (Com(P.M[P]) A) r (Com(P.M[P]) B) supposing A r B 
    supposing A,B:Type.  ((A r B)  (M[A] r M[B])) }

{ Proof }



Definitions occuring in Statement :  Com: Com(P.M[P]) subtype_rel: A r B uimplies: b supposing a uall: [x:A]. B[x] so_apply: x[s] all: x:A. B[x] implies: P  Q apply: f a function: x:A  B[x] universe: Type
Definitions :  uall: [x:A]. B[x] uimplies: b supposing a all: x:A. B[x] implies: P  Q so_apply: x[s] Com: Com(P.M[P]) member: t  T tag-case: z:T ifthenelse: if b then t else f fi  so_lambda: x.t[x] btrue: tt prop: bfalse: ff bool: unit: Unit iff: P  Q and: P  Q it: guard: {T}
Lemmas :  tagged+_wf tag-case_wf Id_wf unit_wf subtype_rel_tagged+ subtype_rel_self subtype_rel_product ifthenelse_wf eq_atom_wf bool_wf iff_weakening_uiff uiff_transitivity assert_wf eqtt_to_assert assert_of_eq_atom not_wf bnot_wf eqff_to_assert assert_of_bnot not_functionality_wrt_uiff

\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}[A,B:Type].    (Com(P.M[P])  A)  \msubseteq{}r  (Com(P.M[P])  B)  supposing  A  \msubseteq{}r  B 
    supposing  \mforall{}A,B:Type.    ((A  \msubseteq{}r  B)  {}\mRightarrow{}  (M[A]  \msubseteq{}r  M[B]))


Date html generated: 2011_08_16-PM-06_47_20
Last ObjectModification: 2011_06_18-AM-10_59_33

Home Index