{ [A:Type]. [B:A  Type].
    f:x:A fp-B[x]
      [C:Type]
        a:A  (C?). b:C  A. y:C.
          ((y  fpf-domain(compose-fpf(a;b;f)))
           x:A. ((x  fpf-domain(f))  ((isl(a x)) c (y = outl(a x))))) }

{ Proof }



Definitions occuring in Statement :  compose-fpf: compose-fpf(a;b;f) fpf-domain: fpf-domain(f) fpf: a:A fp-B[a] outl: outl(x) isl: isl(x) assert: b uall: [x:A]. B[x] cand: A c B so_apply: x[s] all: x:A. B[x] exists: x:A. B[x] iff: P  Q and: P  Q unit: Unit apply: f a function: x:A  B[x] union: left + right universe: Type equal: s = t l_member: (x  l)
Definitions :  uall: [x:A]. B[x] all: x:A. B[x] so_apply: x[s] member: t  T so_lambda: x.t[x] fpf-domain: fpf-domain(f) compose-fpf: compose-fpf(a;b;f) pi1: fst(t) prop: assert: b btrue: tt implies: P  Q ifthenelse: if b then t else f fi  true: True exists: x:A. B[x] and: P  Q cand: A c B iff: P  Q rev_implies: P  Q fpf: a:A fp-B[a] uimplies: b supposing a sq_type: SQType(T) guard: {T}
Lemmas :  unit_wf fpf_wf l_member_wf mapfilter_wf isl_wf outl_wf subtype_base_sq bool_wf bool_subtype_base assert_wf assert_elim iff_functionality_wrt_iff member_map_filter

\mforall{}[A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].
    \mforall{}f:x:A  fp->  B[x]
        \mforall{}[C:Type]
            \mforall{}a:A  {}\mrightarrow{}  (C?).  \mforall{}b:C  {}\mrightarrow{}  A.  \mforall{}y:C.
                ((y  \mmember{}  fpf-domain(compose-fpf(a;b;f)))
                \mLeftarrow{}{}\mRightarrow{}  \mexists{}x:A.  ((x  \mmember{}  fpf-domain(f))  \mwedge{}  ((\muparrow{}isl(a  x))  c\mwedge{}  (y  =  outl(a  x)))))


Date html generated: 2011_08_10-AM-08_05_12
Last ObjectModification: 2011_06_18-AM-08_23_04

Home Index