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).

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).