fact: Record Filter (X:Type) : Type := { filter_family: Family X; filter_intersection: forall S1 S2:Ensemble X, In filter_family S1 -> In filter_family S2 -> In filter_family (Intersection S1 S2); filter_upward_closed: forall S1 S2:Ensemble X, In filter_family S1 -> Included S1 S2 -> In filter_family S2; filter_full: In filter_family Full_set; filter_empty: ~ In filter_family Empty_set }.
imports: ZornsLemma(DecidableDec FiniteIntersections FunctionProperties)