{ [T:Type]. [eq:EqDecider(T)]. [L:T List].
    Inj({x:T| (x  L)} ;||L||;x.index(L;x)) supposing no_repeats(T;L) }

{ Proof }



Definitions occuring in Statement :  l_index: index(L;x) length: ||as|| inject: Inj(A;B;f) int_seg: {i..j} uimplies: b supposing a uall: [x:A]. B[x] set: {x:A| B[x]}  lambda: x.A[x] list: type List natural_number: $n universe: Type no_repeats: no_repeats(T;l) l_member: (x  l) deq: EqDecider(T)
Definitions :  cand: A c B exists: x:A. B[x] nat: lelt: i  j < k real: rationals: subtype: S  T int: strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  less_than: a < b product: x:A  B[x] and: P  Q uiff: uiff(P;Q) void: Void false: False not: A assert: b subtype_rel: A r B l_index: index(L;x) apply: f a length: ||as|| natural_number: $n axiom: Ax int_seg: {i..j} l_member: (x  l) set: {x:A| B[x]}  lambda: x.A[x] implies: P  Q inject: Inj(A;B;f) uimplies: b supposing a prop: list: type List deq: EqDecider(T) universe: Type no_repeats: no_repeats(T;l) uall: [x:A]. B[x] isect: x:A. B[x] member: t  T equal: s = t all: x:A. B[x] function: x:A  B[x] Auto: Error :Auto,  Complete: Error :Complete,  Try: Error :Try,  CollapseTHEN: Error :CollapseTHEN,  tactic: Error :tactic,  limited-type: LimitedType pair: <a, b> true: True squash: T D: Error :D,  CollapseTHENA: Error :CollapseTHENA,  RepeatFor: Error :RepeatFor,  grp_car: |g| bool: sq_type: SQType(T) select: l[i] guard: {T} sqequal: s ~ t so_lambda: x.t[x] MaAuto: Error :MaAuto
Lemmas :  set_subtype_base int_subtype_base squash_wf subtype_rel_wf no_repeats_l_index int_seg_properties nat_properties select_member length_wf_nat subtype_base_sq select_wf le_wf false_wf not_wf member_wf nat_wf l_index_wf l_member_wf length_wf1 int_seg_wf inject_wf no_repeats_wf deq_wf

\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[L:T  List].
    Inj(\{x:T|  (x  \mmember{}  L)\}  ;\mBbbN{}||L||;\mlambda{}x.index(L;x))  supposing  no\_repeats(T;L)


Date html generated: 2011_08_10-AM-07_52_40
Last ObjectModification: 2011_06_18-AM-08_14_42

Home Index