{ [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