{ [T:Type]. [eq:EqDecider(T)]. [L:T List]. [i:||L||].
    mu(i@0.(eqof(eq) L[i] L[i@0])) = i supposing no_repeats(T;L) }

{ Proof }



Definitions occuring in Statement :  select: l[i] length: ||as|| int_seg: {i..j} uimplies: b supposing a uall: [x:A]. B[x] apply: f a lambda: x.A[x] list: type List natural_number: $n int: universe: Type equal: s = t no_repeats: no_repeats(T;l) eqof: eqof(d) deq: EqDecider(T) mu: mu(f)
Definitions :  uall: [x:A]. B[x] uimplies: b supposing a member: t  T and: P  Q assert: b all: x:A. B[x] implies: P  Q top: Top subtype: S  T le: A  B not: A false: False btrue: tt ifthenelse: if b then t else f fi  true: True prop: nat: squash: T int_seg: {i..j} lelt: i  j < k iff: P  Q l_member!: (x ! l) exists: x:A. B[x] cand: A c B
Lemmas :  mu-bound-unique length_wf_nat top_wf eqof_wf select_wf eqof_eq_btrue assert_wf no_repeats_wf int_seg_wf length_wf1 deq_wf iff_weakening_uiff uiff_inversion deq_property no_repeats_member select_member le_wf

\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[L:T  List].  \mforall{}[i:\mBbbN{}||L||].
    mu(\mlambda{}i@0.(eqof(eq)  L[i]  L[i@0]))  =  i  supposing  no\_repeats(T;L)


Date html generated: 2011_08_10-AM-07_52_29
Last ObjectModification: 2011_06_18-AM-08_14_37

Home Index