Inductive Subnet {J:DirectedSet} : Net J X -> Prop :=
  | intro_subnet: forall h:DS_set J -> DS_set I,
    (forall j1 j2:DS_set J, DS_ord j1 j2 ->
       DS_ord (h j1) (h j2)) ->
    (exists arbitrarily large i:DS_set I,
       exists j:DS_set J, h j = i) ->
    Subnet (fun j:DS_set J => x (h j)).Inductive Subnet {J:DirectedSet} : Net J X -> Prop :=
  | intro_subnet: forall h:DS_set J -> DS_set I,
    (forall j1 j2:DS_set J, DS_ord j1 j2 ->
       DS_ord (h j1) (h j2)) ->
    (exists arbitrarily large i:DS_set I,
       exists j:DS_set J, h j = i) ->
    Subnet (fun j:DS_set J => x (h j)).

(* Specifications: *)
Lemma subnet_limit: forall (x0:point_set X) {J:DirectedSet} (y:Net J X), net_limit x x0 -> Subnet y -> net_limit y x0.
Lemma subnet_cluster_point: forall (x0:point_set X) {J:DirectedSet} (y:Net J X), net_cluster_point y x0 -> Subnet y -> net_cluster_point x x0.