1- (* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+ (* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22From HB Require Import structures.
33From mathcomp Require Import all_ssreflect_compat all_algebra finmap.
44From mathcomp Require Import boolp classical_sets functions wochoice.
@@ -15,21 +15,31 @@ From mathcomp Require Import cardinality mathcomp_extra fsbigop set_interval.
1515(* *)
1616(* ## Structure of filter *)
1717(* ``` *)
18- (* filteredType U == interface type for types whose *)
19- (* elements represent sets of sets on U *)
20- (* These sets are intended to be filters *)
21- (* on U but this is not enforced yet. *)
22- (* The HB class is called Filtered. *)
23- (* It extends Pointed. *)
24- (* nbhs p == set of sets associated to p (in a *)
25- (* filtered type) *)
26- (* pfilteredType U == a pointed and filtered type *)
27- (* hasNbhs == factory for filteredType *)
18+ (* filteredType U == interface type for types whose elements *)
19+ (* represent sets of sets on U *)
20+ (* These sets are intended to be filters on U *)
21+ (* but this is not enforced yet. *)
22+ (* The HB class is called Filtered. *)
23+ (* It extends Pointed. *)
24+ (* nbhs p == set of sets associated to p (in a filtered *)
25+ (* type) *)
26+ (* pfilteredType U == a pointed and filtered type *)
27+ (* hasNbhs == factory for filteredType *)
28+ (* nbhsType == type of a structure that has a set system *)
29+ (* of neighborhoods associated to each point *)
30+ (* pnbhsType == same has nbhsType for pointed types *)
2831(* continuous f == f is continuous w.r.t the topology *)
29- (* filterI_iter F n == nth stage of recursively building the *)
30- (* filter of finite intersections of F *)
31- (* finI_from D f == set of \bigcap_(i in E) f i where E is *)
32- (* a finite subset of D *)
32+ (* isSubNbhs V S U == interface that states the continuity of val *)
33+ (* for U which has a subChoiceType and a *)
34+ (* nbhsType *)
35+ (* subNbhsType V S == structure that extends a *)
36+ (* subChoiceType/nbhsType with the isSubNbhs *)
37+ (* interface *)
38+ (* The HB class is SubNbhs. *)
39+ (* filterI_iter F n == nth stage of recursively building the *)
40+ (* filter of finite intersections of F *)
41+ (* finI_from D f == set of \bigcap_(i in E) f i where E is a *)
42+ (* a finite subset of D *)
3343(* ``` *)
3444(* *)
3545(* We endow several standard types with the structure of filter, e.g.: *)
@@ -951,6 +961,15 @@ Lemma continuous_comp (R S T : nbhsType) (f : R -> S) (g : S -> T) x :
951961 {for x, continuous (g \o f)}.
952962Proof . exact: cvg_comp. Qed .
953963
964+ HB.mixin Record isSubNbhs
965+ (V : nbhsType) (S : pred V) U & SubChoice V S U & Nbhs U := {
966+ continuous_valE : continuous (val : U -> V)
967+ }.
968+
969+ #[short(type="subNbhsType")]
970+ HB.structure Definition SubNbhs (V : nbhsType) (S : pred V) :=
971+ { U of SubChoice V S U & Nbhs U & isSubNbhs V S U}.
972+
954973Lemma near_fun (T T' : nbhsType) (f : T -> T') (x : T) (P : T' -> Prop ) :
955974 {for x, continuous f} ->
956975 (\forall y \near f x, P y) -> (\near x, P (f x)).
0 commit comments