Definition subset_filter {T} (F : (T -> Prop) -> Prop) (dom : T -> Prop) (P : {x|dom x} -> Prop) : Prop :=
F (fun x => forall H : dom x, P (exist _ x H)).
Global Instance subset_filter_filter :
forall T F (dom : T -> Prop),
Filter F ->
Filter (subset_filter F dom).

(* Specifications: *)
Lemma subset_filter_proper' :
forall {T F} {FF : Filter F} (dom : T -> Prop),
(forall P, F P -> ~ ~ exists x, dom x /\ P x) ->
ProperFilter' (subset_filter F dom).
Lemma subset_filter_proper :
forall {T F} {FF : Filter F} (dom : T -> Prop),
(forall P, F P -> exists x, dom x /\ P x) ->
ProperFilter (subset_filter F dom).