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