{ [A:Type]
    d:A List. f1:a:{a:A| (a  d)}   Top. x:A. eq:EqDecider(A).
      ((x  d)
       (i:||d||
           ((j:i. (((fst(map(x.<x, f1 x>;d)[j])) = x)))
            ((fst(map(x.<x, f1 x>;d)[i])) = x)))) }

{ Proof }



Definitions occuring in Statement :  select: l[i] map: map(f;as) length: ||as|| int_seg: {i..j} uall: [x:A]. B[x] top: Top pi1: fst(t) all: x:A. B[x] exists: x:A. B[x] not: A implies: P  Q and: P  Q set: {x:A| B[x]}  apply: f a lambda: x.A[x] function: x:A  B[x] pair: <a, b> list: type List natural_number: $n universe: Type equal: s = t l_member: (x  l) deq: EqDecider(T)
Definitions :  uall: [x:A]. B[x] all: x:A. B[x] implies: P  Q exists: x:A. B[x] member: t  T and: P  Q top: Top int_seg: {i..j} pi1: fst(t) subtype: S  T lelt: i  j < k not: A prop: le: A  B false: False uimplies: b supposing a
Lemmas :  l_member-first l_member_wf deq_wf top_wf int_seg_wf select-map length_wf1 le_wf not_wf select_wf

\mforall{}[A:Type]
    \mforall{}d:A  List.  \mforall{}f1:a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  Top.  \mforall{}x:A.  \mforall{}eq:EqDecider(A).
        ((x  \mmember{}  d)
        {}\mRightarrow{}  (\mexists{}i:\mBbbN{}||d||
                  ((\mforall{}j:\mBbbN{}i.  (\mneg{}((fst(map(\mlambda{}x.<x,  f1  x>d)[j]))  =  x)))  \mwedge{}  ((fst(map(\mlambda{}x.<x,  f1  x>d)[i]))  =  x))))


Date html generated: 2011_08_10-AM-07_55_50
Last ObjectModification: 2011_06_18-AM-08_16_53

Home Index