Skip to content

Commit 3cb27a8

Browse files
authored
lemmas about within-continuity (#1859)
Co-authored-by: @holgerthies
1 parent 63a7b33 commit 3cb27a8

4 files changed

Lines changed: 50 additions & 2 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@
5050
+ lemmas `emeasurable_fun_itv_obnd_cbndP`, `emeasurable_fun_itv_bndo_bndcP`,
5151
`emeasurable_fun_itv_cc`
5252

53+
- in `subtype_topology.v`:
54+
+ lemma `within_continuous_comp`
55+
56+
- in `pseudometric_normed_Zmodule.v`:
57+
+ lemmas `within_continuousB`, `within_continuousD`
58+
59+
- in `normed_module.v`:
60+
+ lemma `within_continuous_compN`
61+
5362
### Changed
5463
- in `set_interval.v`
5564
+ `itv_is_closed_unbounded` (fix the definition)

theories/normedtype_theory/normed_module.v

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,22 @@ Module Exports. Export numFieldTopology.Exports. HB.reexport. End Exports.
230230
End numFieldNormedType.
231231
Import numFieldNormedType.Exports.
232232

233+
Lemma within_continuous_compN {R : realFieldType} {K : numDomainType}
234+
{U : pseudoMetricNormedZmodType K} (f : R -> U) (a b : R) :
235+
{within `[- b, - a], continuous f} -> {within `[a, b], continuous f \o -%R}.
236+
Proof.
237+
have [ab|ba _ |-> _] := ltgtP a b; last 2 first.
238+
by rewrite set_itv_ge ?bnd_simp -?ltNge//; exact: continuous_subspace0.
239+
by rewrite set_itv1; exact: continuous_subspace1.
240+
move/continuous_within_itvP; rewrite ltrN2 => /(_ ab)[cf fb fa].
241+
apply/(continuous_within_itvP _ ab); split.
242+
- move=> t tab.
243+
apply: (@cvg_comp _ _ _ -%R f); first exact: oppr_continuous.
244+
by apply: cf; rewrite oppr_itvoo !opprK.
245+
- by rewrite -{1}(opprK a); apply/cvg_at_leftNP; exact: fa.
246+
- by rewrite -{1}(opprK b); apply/cvg_at_rightNP; exact: fb.
247+
Qed.
248+
233249
Definition pseudoMetric_normed (M : Type) : Type := M.
234250

235251
HB.instance Definition _ (K : numFieldType) (M : normedZmodType K) :=

theories/normedtype_theory/pseudometric_normed_Zmodule.v

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
3-
From mathcomp Require Import all_ssreflect_compat finmap ssralg ssrnum ssrint interval.
4-
From mathcomp Require Import archimedean.
3+
From mathcomp Require Import all_ssreflect_compat finmap ssralg ssrnum ssrint.
4+
From mathcomp Require Import interval archimedean.
55
From mathcomp Require Import boolp classical_sets functions cardinality.
66
From mathcomp Require Import set_interval interval_inference ereal reals.
77
From mathcomp Require Import topology function_spaces prodnormedzmodule tvs.
@@ -1159,6 +1159,18 @@ Proof. by rewrite norm_cvg0P. Qed.
11591159

11601160
End cvg_composition_pseudometric.
11611161

1162+
Lemma within_continuousB {T : topologicalType} {K : numFieldType}
1163+
{V : pseudoMetricNormedZmodType K} (A : set T) (f g : T -> V) :
1164+
{within A, continuous f} -> {within A, continuous g} ->
1165+
{within A, continuous (f - g)}.
1166+
Proof. by move=> cf cg x; apply: cvgB; [exact: cf|exact: cg]. Qed.
1167+
1168+
Lemma within_continuousD {T : topologicalType} {K : numFieldType}
1169+
{V : pseudoMetricNormedZmodType K} (A : set T) (f g : T -> V) :
1170+
{within A, continuous f} -> {within A, continuous g} ->
1171+
{within A, continuous (f + g)}.
1172+
Proof. by move=> cf cg x; apply: cvgD; [exact: cf|exact: cg]. Qed.
1173+
11621174
Section Closed_Ball.
11631175

11641176
Definition closed_ball_ (R : numDomainType) (V : zmodType) (norm : V -> R)

theories/topology_theory/subtype_topology.v

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,17 @@ Proof. exact: (@subspace_valL_continuousP' _ point). Qed.
8888

8989
End subspace_sig.
9090

91+
Lemma within_continuous_comp {U V W : topologicalType}
92+
(A : set V) (f : V -> U) (g : U -> W) :
93+
{in f @` A, continuous g} ->
94+
{within A, continuous f} ->
95+
{within A, continuous (g \o f)}.
96+
Proof.
97+
move=> cg /subspace_sigL_continuousP cf; apply/subspace_sigL_continuousP.
98+
rewrite /sigL -compA => /= x; apply: continuous_comp; first exact: cf.
99+
by apply/cg/image_f; rewrite inE; exact/set_valP.
100+
Qed.
101+
91102
Section subtype_setX.
92103
Context {X Y : topologicalType} (A : set X) (B : set Y).
93104

0 commit comments

Comments
 (0)