{ [T:Type]. [eq:EqDecider(T)]. [a,b:T List].
    l_disjoint(T;a;b) supposing l_disjoint(T;b;l_intersection(eq;a;b)) }

{ Proof }



Definitions occuring in Statement :  l_intersection: l_intersection(eq;L1;L2) uimplies: b supposing a uall: [x:A]. B[x] list: type List universe: Type l_disjoint: l_disjoint(T;l1;l2) deq: EqDecider(T)
Definitions :  rev_implies: P  Q iff: P  Q nat: cand: A c B exists: x:A. B[x] strong-subtype: strong-subtype(A;B) equal: s = t le: A  B ge: i  j  less_than: a < b uiff: uiff(P;Q) assert: b set: {x:A| B[x]}  subtype_rel: A r B l_intersection: l_intersection(eq;L1;L2) l_member: (x  l) product: x:A  B[x] and: P  Q universe: Type not: A implies: P  Q false: False void: Void deq: EqDecider(T) uall: [x:A]. B[x] list: type List uimplies: b supposing a prop: isect: x:A. B[x] l_disjoint: l_disjoint(T;l1;l2) all: x:A. B[x] lambda: x.A[x] function: x:A  B[x] member: t  T Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  ParallelOp: Error :ParallelOp,  RepeatFor: Error :RepeatFor
Lemmas :  l_disjoint_wf l_intersection_wf deq_wf not_wf false_wf l_member_wf nat_wf member-intersection

\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[a,b:T  List].
    l\_disjoint(T;a;b)  supposing  l\_disjoint(T;b;l\_intersection(eq;a;b))


Date html generated: 2011_08_10-AM-07_49_17
Last ObjectModification: 2011_06_18-AM-08_13_27

Home Index