Section net_tail_filter.
Variable X:TopologicalSpace.
Variable J:DirectedSet.
Variable x:Net J X.
Hypothesis J_nonempty: inhabited (DS_set J).
Definition net_tail (j:DS_set J) :=
Im [ i:DS_set J | DS_ord j i ] x.
Definition tail_filter_basis : Family (point_set X) :=
Im Full_set net_tail.
Definition tail_filter : Filter (point_set X).
refine (Build_Filter_from_basis tail_filter_basis _ _ _).
- destruct J_nonempty as [j].
exists (net_tail j).
exists j; trivial.
constructor.
- intro.
inversion H as [j].
assert (In Empty_set (x j)).
{ rewrite H1.
exists j; trivial.
constructor.
apply preord_refl; apply DS_ord_cond.
}
destruct H3.
- intros.
destruct H.
destruct H0.
destruct (DS_join_cond x0 x1) as [k []].
exists (net_tail k); split.
+ exists k; auto with sets.
+ red; intros.
constructor.
* destruct H5 as [i0].
destruct H5.
rewrite H1.
exists i0; trivial.
constructor.
apply preord_trans with k; trivial.
apply DS_ord_cond.
* destruct H5 as [i0].
destruct H5.
rewrite H2.
exists i0; trivial.
constructor.
apply preord_trans with k; trivial.
apply DS_ord_cond.
Defined.

Lemma tail_filter_cluster_point_impl_net_cluster_point:
forall x0:point_set X,
filter_cluster_point tail_filter x0 -> net_cluster_point x x0.