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