@@ -301,11 +301,14 @@ Proof. by do!case/andP=>??; rewrite -maxrN ge_max opprB !lerBlDr !ler_wpDr. Qed.
301301Definition continuous_at_sorgenfrey_to_Rtopo x (f : sorgenfrey -> R) :=
302302 forall eps : R, 0 < eps -> exists2 d : R, 0 < d & forall y : R, x <= y < x + d -> `|f x - f y| < eps.
303303
304+ Let Rmetric := GRing_regular__canonical__pseudometric_structure_PseudoMetric R.
305+
304306Lemma continuous_at_sorgenfrey_to_RtopoP f x :
305- continuous_at_sorgenfrey_to_Rtopo x f -> @continuous_at sorgenfrey Rtopo x f.
307+ continuous_at_sorgenfrey_to_Rtopo x f < -> @continuous_at sorgenfrey Rtopo x f.
306308Proof .
307- move=> H B.
308- rewrite -(@filter_from_ballE R (GRing_regular__canonical__pseudometric_structure_PseudoMetric R)).
309+ split=> [H B | H e He].
310+ (* -> *)
311+ rewrite -(@filter_from_ballE R Rmetric).
309312case => eps /= eps0 epsB.
310313change (nbhs (f y @[y --> x]) B).
311314case: (H eps eps0) => /= d d0 H'.
@@ -319,13 +322,26 @@ rewrite in_itv /= => /andP[xz zx] <- {y}.
319322apply: epsB.
320323apply: H'.
321324by rewrite xz zx.
325+ (* <- *)
326+ have [] := H (ball (f x : Rmetric) e).
327+ by exists e.
328+ move=> F [[/= Fd Fsub <-] [[a1 a2] Fdi bix] Fpre].
329+ move: bix.
330+ rewrite /b /= in_itv /= =>/andP[a1x xa2].
331+ exists (a2-x).
332+ by rewrite subr_gt0.
333+ move=> y.
334+ rewrite subrKC => /andP[xy ya2].
335+ apply: (Fpre y).
336+ exists (a1,a2) => //.
337+ by rewrite /b /= in_itv /= ya2 (le_trans a1x).
322338Qed .
323339
324340Lemma continuous_sdist :
325341 forall x, @continuous_at sorgenfrey Rtopo x sdist.
326342Proof .
327343move=> x.
328- apply: continuous_at_sorgenfrey_to_RtopoP => /= eps eps0.
344+ apply/ continuous_at_sorgenfrey_to_RtopoP => /= eps eps0.
329345pose xepsE := [set y | x + y \in E /\ 0 < y < eps].
330346exists (xget eps xepsE).
331347 by case: (xgetP eps xepsE) => // y -> [] _ /andP[].
0 commit comments