{ [A1,A2:Type]. [B1:A1  Type]. [B2:A2  Type].
    (a:A1 fp-> B1[a] r a:A2 fp-> B2[a]) supposing 
       ((a:A1. (B1[a] r B2[a])) and 
       strong-subtype(A1;A2)) }

{ Proof }



Definitions occuring in Statement :  fpf: a:A fp-> B[a],  subtype_rel: A r B,  uimplies: b supposing a,  uall: [x:A]. B[x],  so_apply: x[s],  all: x:A. B[x],  function: x:A  B[x],  universe: Type,  strong-subtype: strong-subtype(A;B)
Definitions :  uall: [x:A]. B[x],  uimplies: b supposing a,  strong-subtype: strong-subtype(A;B),  all: x:A. B[x],  so_apply: x[s],  cand: A c B,  exists: x:A. B[x],  implies: P  Q,  member: t  T,  so_lambda: x.t[x],  prop: ,  fpf: a:A fp-> B[a],  subtype: S  T,  l_member: (x  l),  le: A  B,  not: A,  false: False,  nat: ,  length: ||as||,  select: l[i],  ycomb: Y,  or: P  Q,  iff: P  Q,  and: P  Q,  guard: {T}
Lemmas :  fpf_wf,  l_member_wf,  cons_member,  length_wf1,  select_wf,  nat_properties

\mforall{}[A1,A2:Type].  \mforall{}[B1:A1  {}\mrightarrow{}  Type].  \mforall{}[B2:A2  {}\mrightarrow{}  Type].
    (a:A1  fp->  B1[a]  \msubseteq{}r  a:A2  fp->  B2[a])  supposing 
          ((\mforall{}a:A1.  (B1[a]  \msubseteq{}r  B2[a]))  and 
          strong-subtype(A1;A2))


Date html generated: 2011_08_10-AM-07_54_38
Last ObjectModification: 2011_06_18-AM-08_15_06

Home Index