Skip to content

Commit 2da83d0

Browse files
committed
more stuff about continuous HB
1 parent 4c5d378 commit 2da83d0

File tree

2 files changed

+66
-16
lines changed

2 files changed

+66
-16
lines changed

theories/homotopy.v

+59-16
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,25 @@ Local Open Scope classical_set_scope.
2727
Local Open Scope ring_scope.
2828
Local Open Scope quotient_scope.
2929

30+
HB.mixin Record IsContinuous {T U : topologicalType} (f : T -> U) :=
31+
{ continuous_fun : continuous f }.
32+
33+
HB.structure Definition JustContinuous {T U : topologicalType}
34+
:= {f of @IsContinuous T U f}.
35+
36+
HB.structure Definition ContinuousFun {T U : topologicalType}
37+
(A : set T) (B : set U) :=
38+
{f of
39+
@IsContinuous (subspace_topologicalType A) U f &
40+
@Fun (subspace_topologicalType A) U A B f
41+
}.
42+
43+
Notation "{ 'continuous' A >-> B }" :=
44+
(@ContinuousFun.type _ _ A B) : form_scope.
45+
Notation "[ 'continuous' 'of' f ]" :=
46+
([the (@ContinuousFun.type _ _ _ _) of (f: _ -> _)]) : form_scope.
47+
48+
3049
HB.mixin Record IsParametrization {R : realType} (f : R -> R) :=
3150
{
3251
parametrize_cts : {within `[0,1], continuous f};
@@ -156,26 +175,50 @@ Lemma inv_parametrization_can_l: {in `[0,1], cancel inv_parametrization f}.
156175
Proof. by move=> z zI; apply: funK; rewrite mem_setE. Qed.
157176

158177
End Inverses.
159-
End Parametrizations.
160178

161-
HB.mixin Record IsContinuous {T U : topologicalType} (f : T -> U) :=
162-
{ continuous_fun : continuous f }.
179+
Definition rev_param (x : R) : R := `1- x.
163180

164-
HB.structure Definition JustContinuous {T U : topologicalType}
165-
:= {f of @IsContinuous T U f}.
181+
Local Lemma rev_param_funS : set_fun `[0,1]%classic `[0,1]%classic rev_param.
182+
Proof.
183+
rewrite ?set_itvcc => x /= /andP [] xnng xle1; apply/andP.
184+
split; [exact: onem_ge0| exact: onem_le1].
185+
Qed.
166186

167-
HB.structure Definition ContinuousFun {T U : topologicalType}
168-
(A : set T) (B : set U) :=
169-
{f of
170-
@IsContinuous (subspace_topologicalType A) U f &
171-
@Fun (subspace_topologicalType A) U A B f
172-
}.
187+
HB.instance Definition _ := IsFun.Build R R _ _ _ rev_param_funS.
173188

174-
Notation "{ 'continuous' A >-> B }" :=
175-
(@ContinuousFun.type _ _ A B) : form_scope.
176-
Notation "[ 'continuous' 'of' f ]" :=
177-
([the (@ContinuousFun.type _ _ _ _) of (f: _ -> _)]) : form_scope.
189+
Lemma rev_param_continuous : {within `[0,1], continuous rev_param}.
190+
Proof.
191+
move=> z; apply: continuous_subspaceT.
192+
move=> ?; apply: (@continuousD R R R ); first exact: cvg_cst.
193+
exact: opp_continuous.
194+
Qed.
178195

196+
Section Reversal.
197+
Local Open Scope fun_scope.
198+
Variables (f : {parametrization R}).
199+
200+
Let g := rev_param \o f \o rev_param.
201+
202+
Local Lemma rev_rev_continuous : {within `[0,1], continuous g}.
203+
Proof.
204+
move=> x.
205+
apply: (@continuous_comp (subspace_topologicalType `[0,1]) (subspace_topologicalType `[0,1]) R).
206+
exact/subspaceT_continuous/rev_param_continuous.
207+
apply: (@continuous_comp (subspace_topologicalType `[0,1]) (subspace_topologicalType `[0,1]) _).
208+
exact/subspaceT_continuous/parametrize_cts.
209+
exact: rev_param_continuous.
210+
Qed.
211+
212+
Local Lemma rev_rev_init : g 0 = 0.
213+
Proof. by rewrite /g /= /rev_param /= onem0 parametrize_final onem1. Qed.
214+
215+
Local Lemma rev_rev_final : g 1 = 1.
216+
Proof. by rewrite /g /= /rev_param /= onem1 parametrize_init onem0. Qed.
217+
218+
HB.instance Definition _ := @IsParametrization.Build
219+
_ _ rev_rev_continuous rev_rev_init rev_rev_final.
220+
End Reversal.
221+
End Parametrizations.
179222
Section Reparametrization.
180223

181224
Context {R : realType} {T : topologicalType} (B : set T).
@@ -245,7 +288,7 @@ Qed.
245288

246289
Canonical pi_path_image_mono := PiMono1 path_image_mono.
247290

248-
Definition path_precompose (h : R -> R) := lift_op1 Path (fun f => f \o h).
291+
Definition path_reverse (h : R -> R) := lift_op1 Path (fun f => f \o rev_param).
249292

250293
End Reparametrization.
251294

theories/topology.v

+7
Original file line numberDiff line numberDiff line change
@@ -5822,6 +5822,13 @@ move=> ctsf; rewrite continuous_subspace_in => ? ?.
58225822
exact: continuous_in_subspaceT.
58235823
Qed.
58245824

5825+
Lemma continuous_subspaceTE {U} (f : T -> U) :
5826+
{within [set: T], continuous f} = continuous f.
5827+
Proof.
5828+
rewrite propeqE; split; last exact: continuous_subspaceT.
5829+
by move=> + x Q nQ /= => /(_ x Q nQ) /=; rewrite nbhs_simpl /= ?nbhs_subspaceT.
5830+
Qed.
5831+
58255832
Lemma continuous_open_subspace {U} A (f : T -> U) :
58265833
open A -> {within A, continuous f} = {in A, continuous f}.
58275834
Proof.

0 commit comments

Comments
 (0)