Skip to content

Commit 326e64e

Browse files
committed
isolated points
1 parent c9c9435 commit 326e64e

File tree

4 files changed

+53
-9
lines changed

4 files changed

+53
-9
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
+ definition `cut`
2121
+ lemmas `cut_adjacent`, `infinite_bounded_limit_point_nonempty`
2222

23+
- in `topology_structure.v`:
24+
+ definition `isolated`
25+
+ lemma `isolatedS`
26+
+ lemma `disjoint_isolated_limit_point`
27+
+ lemma `closure_isolated_limit_point`
28+
2329
### Changed
2430

2531
### Renamed
@@ -37,6 +43,9 @@
3743

3844
### Deprecated
3945

46+
- in `topology_structure.v`:
47+
+ lemma `closure_limit_point` (use `closure_limit_point_isolated` instead)
48+
4049
### Removed
4150

4251
- in `lebesgue_stieltjes_measure.v`:

theories/function_spaces.v

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect all_algebra finmap generic_quotient.
44
From mathcomp Require Import boolp classical_sets functions.
@@ -1218,8 +1218,7 @@ have C : compact R.
12181218
by apply: tychonoff => x; rewrite -precompactE; move: ptwsPreW; exact.
12191219
apply: (subclosed_compact _ C); first exact: closed_closure.
12201220
have WsubR : (fW @` W) `<=` R.
1221-
move=> f Wf x; rewrite /R /K closure_limit_point; left.
1222-
by case: Wf => i ? <-; exists i.
1221+
by move=> f [i Wi <-] x; rewrite /K; apply: subset_closure; exists i.
12231222
rewrite closureE; apply: smallest_sub (compact_closed _ C) WsubR.
12241223
exact: hausdorff_product.
12251224
Qed.

theories/topology_theory/num_topology.v

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ Lemma closure_sup (R : realType) (A : set R) :
149149
A !=set0 -> has_ubound A -> closure A (sup A).
150150
Proof.
151151
move=> A0 ?; have [|AsupA] := pselect (A (sup A)); first exact: subset_closure.
152-
rewrite closure_limit_point; right => U /nbhs_ballP[_ /posnumP[e]] supAeU.
152+
rewrite closure_isolated_limit_point.
153+
right => U /nbhs_ballP[_ /posnumP[e]] supAeU.
153154
suff [x [Ax /andP[sAex xsA]]] : exists x, A x /\ sup A - e%:num < x < sup A.
154155
exists x; split => //; first by rewrite lt_eqF.
155156
apply supAeU; rewrite /ball /= ltr_distl (addrC x e%:num) -ltrBlDl sAex.

theories/topology_theory/topology_structure.v

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect all_algebra finmap all_classical.
44
From mathcomp Require Export filter.
@@ -40,6 +40,7 @@ From mathcomp Require Export filter.
4040
(* x^' == set of neighbourhoods of x where x is *)
4141
(* excluded (a "deleted neighborhood") *)
4242
(* limit_point E == the set of limit points of E *)
43+
(* isolated A == the set of isolated points of A *)
4344
(* dense S == the set (S : set T) is dense in T, with T of *)
4445
(* type topologicalType *)
4546
(* continuousType == type of continuous functions *)
@@ -687,12 +688,43 @@ Proof. by rewrite limit_pointEnbhs; under eq_fun do rewrite meets_openr. Qed.
687688
Lemma subset_limit_point E : limit_point E `<=` closure E.
688689
Proof. by move=> t Et U tU; have [p [? ? ?]] := Et _ tU; exists p. Qed.
689690

690-
Lemma closure_limit_point E : closure E = E `|` limit_point E.
691+
Definition isolated (A : set T) (x : T) :=
692+
x \in A /\ exists2 V, nbhs x V & V `&` A = [set x].
693+
694+
Lemma isolatedS (A : set T) : isolated A `<=` A.
695+
Proof. by move=> x [/set_mem]. Qed.
696+
697+
Lemma disjoint_isolated_limit_point (A : set T) :
698+
[disjoint isolated A & limit_point A].
699+
Proof.
700+
apply/disj_setPS => t [[At [V tV]]] /[swap].
701+
move/(_ _ tV) => [x [xt Ax Vx]].
702+
have /[swap] -> : [set x] `<=` V `&` A by move=> ? ->; split.
703+
move/subset_set1 => [/seteqP[/(_ _ erefl)//]|].
704+
by move=> /seteqP[_ /(_ _ erefl)/=]; apply/eqP; rewrite eq_sym.
705+
Qed.
706+
707+
Lemma closure_isolated_limit_point (A : set T) :
708+
closure A = isolated A `|` limit_point A.
709+
Proof.
710+
apply/seteqP; split=> [t At0|t [|]].
711+
- rewrite /setU/= -implyNp => /not_andP[tA U /At0[x [Ux Ax]]|+ U tU].
712+
by exists x; split => //; contra: tA => <-; exact/mem_set.
713+
move/forall2NP => /(_ U)[//|/seteqP/not_andP[|]].
714+
by contra => H x [Ux Ax]; apply/eqP/negPn/negP => /H /(_ Ax).
715+
have [At tUA|At _] := pselect (A t).
716+
by absurd: tUA => _ ->; split => //; exact: nbhs_singleton.
717+
have [x [Ax Ux]] := At0 _ tU.
718+
by exists x; split => //; contra: At => <-.
719+
- by move/isolatedS; exact: subset_closure.
720+
- exact: subset_limit_point.
721+
Qed.
722+
723+
Lemma __deprecated__closure_limit_point E : closure E = E `|` limit_point E.
691724
Proof.
692-
rewrite predeqE => t; split => [cEt|]; last first.
725+
apply/seteqP; split => [|x]; last first.
693726
by case; [exact: subset_closure|exact: subset_limit_point].
694-
have [?|Et] := pselect (E t); [by left|right=> U tU; have [p []] := cEt _ tU].
695-
by exists p; split => //; apply/eqP => pt; apply: Et; rewrite -pt.
727+
by rewrite closure_isolated_limit_point => x [/isolatedS|]; [left|right].
696728
Qed.
697729

698730
Definition closed (D : set T) := closure D `<=` D.
@@ -749,6 +781,9 @@ Lemma closed_closure (A : set T) : closed (closure A).
749781
Proof. by move=> p clclAp B /nbhs_interior /clclAp [q [clAq /clAq]]. Qed.
750782

751783
End Closed.
784+
(*#[deprecated(since="mathcomp-analysis 1.15.0", note="use `closure_limit_point_isolated` instead")]
785+
Notation closure_limit_point := __deprecated__closure_limit_point (only parsing).
786+
*)
752787

753788
Lemma closed_comp {T U : topologicalType} (f : T -> U) (D : set U) :
754789
{in ~` f @^-1` D, continuous f} -> closed D -> closed (f @^-1` D).

0 commit comments

Comments
 (0)