{ [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