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

{ Proof }



Definitions occuring in Statement :  l_intersection: l_intersection(eq;L1;L2) uimplies: b supposing a uall: [x:A]. B[x] or: P  Q list: type List universe: Type l_disjoint: l_disjoint(T;l1;l2) deq: EqDecider(T)
Definitions :  guard: {T} rev_implies: P  Q iff: P  Q l_intersection: l_intersection(eq;L1;L2) 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_member: (x  l) product: x:A  B[x] and: P  Q lambda: x.A[x] prop: universe: Type l_disjoint: l_disjoint(T;l1;l2) all: x:A. B[x] not: A implies: P  Q function: x:A  B[x] false: False void: Void deq: EqDecider(T) uall: [x:A]. B[x] list: type List uimplies: b supposing a isect: x:A. B[x] member: t  T or: P  Q union: left + right ParallelOp: Error :ParallelOp,  THENM: Error :THENM,  CollapseTHEN: Error :CollapseTHEN,  Auto: Error :Auto,  CollapseTHENA: Error :CollapseTHENA
Lemmas :  not_wf l_member_wf deq_wf iff_weakening_uiff l_intersection_wf l_disjoint_intersection l_disjoint_wf l_disjoint-symmetry

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


Date html generated: 2011_08_10-AM-07_49_04
Last ObjectModification: 2011_06_18-AM-08_13_22

Home Index