Skip to content

Commit f82e9b8

Browse files
committed
refactor and add inf_dlxz
1 parent 1d47607 commit f82e9b8

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

theories/showcase/sorgenfreyline.v

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,19 @@ rewrite !addrA addrAC (addrC x) addrK addrC.
279279
by rewrite subr_gt0 ltr_wpDr // ltW.
280280
Qed.
281281

282+
Lemma inf_dlxz x z :
283+
dl z = [set t + (z - x) | t in dl x] ->
284+
dl x !=set0 ->
285+
x - inf (dl x) = z - inf (dl z).
286+
Proof.
287+
move=> dlxz dlx0.
288+
rewrite dlxz -image2_set1 inf_sumE.
289+
- by rewrite inf1 !opprD !addrA (addrC z) addrK (opprK x) addrC.
290+
- split => //.
291+
exists 0. move=> u. rewrite -inE. exact: dl_ge0.
292+
- exact: has_inf1.
293+
Qed.
294+
282295
Definition continuous_at_sorgenfrey_to_Rtopo x (f : sorgenfrey -> R) :=
283296
forall eps : R, 0 < eps -> exists2 d : R, 0 < d & forall y : R, x <= y < x + d -> `|f x - f y| < eps.
284297

@@ -311,6 +324,7 @@ pose xepsE := [set y | x + y \in E /\ 0 < y < eps].
311324
pose eps' := xget eps xepsE.
312325
exists eps'.
313326
by rewrite /eps'; case: (xgetP eps xepsE) => // y -> [] _ /andP[].
327+
(* forall z : R, x <= z < x + eps' -> `|sdist x - sdist z| < eps *)
314328
move=> z /andP [] xz zx.
315329
have [<-|xz'] := eqVneq x z.
316330
by rewrite subrr normr0.
@@ -325,13 +339,14 @@ case/boolP: (xepsE == set0).
325339
have znE : z \notin E.
326340
apply/negP => zE.
327341
suff : xepsE (z-x) by rewrite xepsE0.
328-
by rewrite /xepsE /= addrA (addrC x) addrK subr_gt0 xz ltrBlDl.
342+
by rewrite /xepsE /= addrC subrK subr_gt0 xz ltrBlDl.
329343
have drzx : dr x = [set t + (z - x) | t in dr z].
330344
apply: dr_shift => // t /=.
345+
(* t - x in xepsE -> False *)
331346
rewrite in_itv /= => /andP[] xt tz.
332347
apply: contraPnot xepsE0.
333348
rewrite -inE => Et; apply/eqP/set0P.
334-
exists (t-x); rewrite /xepsE /= addrA (addrC x) addrK.
349+
exists (t-x); rewrite /xepsE /= addrC subrK.
335350
by rewrite subr_gt0 xt ltrBlDl (le_lt_trans tz).
336351
have Hr : `|Num.min 1 xr - Num.min 1 zr| < eps.
337352
rewrite /xr /zr.
@@ -365,27 +380,21 @@ case/boolP: (xepsE == set0).
365380
rewrite in_itv /= => /andP[] xt tz.
366381
apply: contraPnot xepsE0.
367382
rewrite -inE => Et; apply/eqP/set0P.
368-
exists (t-x); rewrite /xepsE /= addrA (addrC x) addrK.
383+
exists (t-x); rewrite /xepsE /= addrC subrK.
369384
by rewrite subr_gt0 xt ltrBlDl (le_lt_trans tz).
370385
have [dlx0|] := eqVneq (dl x) set0.
371386
rewrite dlx0 inf0 subr0.
372387
case: ifPn => xinE.
373388
suff : 0 \in dl x by rewrite inE dlx0.
374389
by rewrite inE /dl /= subr0.
375390
by rewrite dlxz dlx0 image_set0 inf0 subr0 (negbTE znE).
376-
case/set0P => w Hw.
377-
have inf_dlxz : x - inf (dl x) = z - inf (dl z).
378-
rewrite dlxz -image2_set1 inf_sumE.
379-
- by rewrite inf1 !opprD !addrA (addrC z) addrK (opprK x) addrC.
380-
- split. by exists w.
381-
exists 0. move=> u. rewrite -inE. exact: dl_ge0.
382-
- exact: has_inf1.
383-
rewrite -inf_dlxz.
391+
move/set0P => dlx0.
392+
rewrite -(inf_dlxz dlxz) //.
384393
case: ifPn => xlE //.
385394
rewrite (le_lt_trans (abs_subr_min _ _ _ _)) //.
386395
rewrite gt_max ltr_norml.
387396
rewrite -[inf(dl x)]addr0.
388-
rewrite -(subrr (-z)) opprK addrA -[_ - _]addrA -inf_dlxz.
397+
rewrite -(subrr (-z)) opprK addrA -[_ - _]addrA -(inf_dlxz dlxz) //.
389398
rewrite -!addrA addrC !addrA subrK addrC.
390399
rewrite (@le_lt_trans _ _ 0 (_ - _) ) //; first last.
391400
by rewrite subr_le0 ltW.

0 commit comments

Comments
 (0)