{ [M:Type  Type]
    [n,m:].  input(lp.M[lp];n) r input(lp.M[lp];m) supposing m  n 
    supposing A,B:Type.  ((A r B)  (M[A] r M[B])) }

{ Proof }



Definitions occuring in Statement :  process-input: input(lp.M[lp];n),  subtype_rel: A r B,  nat: ,  uimplies: b supposing a,  uall: [x:A]. B[x],  so_apply: x[s],  le: A  B,  all: x:A. B[x],  implies: P  Q,  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],  process-input: input(lp.M[lp];n),  member: t  T,  ifthenelse: if b then t else f fi ,  top: Top,  so_lambda: x.t[x],  btrue: tt,  prop: ,  bfalse: ff,  nat: ,  le: A  B,  bool: ,  unit: Unit,  iff: P  Q,  and: P  Q,  not: A,  false: False,  it:
Lemmas :  subtype_rel_product,  subtype_rel_self,  le_int_wf,  nat_properties,  bool_wf,  iff_weakening_uiff,  le_wf,  uiff_transitivity,  assert_wf,  eqtt_to_assert,  assert_of_le_int,  lt_int_wf,  bnot_wf,  eqff_to_assert,  assert_functionality_wrt_uiff,  bnot_of_le_int,  assert_of_lt_int,  lvprocess_wf,  top_wf,  nat_wf

\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}[n,m:\mBbbN{}].    input(lp.M[lp];n)  \msubseteq{}r  input(lp.M[lp];m)  supposing  m  \mleq{}  n 
    supposing  \mforall{}A,B:Type.    ((A  \msubseteq{}r  B)  {}\mRightarrow{}  (M[A]  \msubseteq{}r  M[B]))


Date html generated: 2011_08_17-PM-06_36_33
Last ObjectModification: 2011_06_18-AM-11_59_52

Home Index