Skip to content

Commit 0a7fee7

Browse files
committed
refactor
1 parent 5311723 commit 0a7fee7

File tree

1 file changed

+41
-46
lines changed

1 file changed

+41
-46
lines changed

theories/showcase/sorgenfreyline.v

Lines changed: 41 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,9 @@ Proof. by move=> y; rewrite inE => -[]. Qed.
226226
Let dr_ge0 x : {in dr x, forall y : R, y >= 0}.
227227
Proof. by move=> y; rewrite inE => -[] _ /ltW. Qed.
228228

229+
Lemma sdist_ge0 x : 0 <= sdist x.
230+
Proof. by rewrite /sdist le_min !fun_if ler01 !inf_ge0 // !if_same. Qed.
231+
229232
Lemma image2_set1 A B C (S : set A) (eb : B) (f : A -> B -> C) :
230233
[set f x y | x in S & y in [set eb]] = [set f x eb | x in S].
231234
Proof.
@@ -279,7 +282,7 @@ rewrite !addrA addrC addrA addKr addrC.
279282
by rewrite subr_gt0 ltr_wpDr // ltW.
280283
Qed.
281284

282-
Lemma inf_dlxz x z :
285+
Lemma inf_dlxz x z :
283286
dl z = [set t + (z - x) | t in dl x] ->
284287
dl x !=set0 ->
285288
x - inf (dl x) = z - inf (dl z).
@@ -292,6 +295,19 @@ rewrite dlxz -image2_set1 inf_sumE.
292295
- exact: has_inf1.
293296
Qed.
294297

298+
Lemma inf_drxz x z :
299+
dr x = [set t + (z - x) | t in dr z] ->
300+
dr z != set0 ->
301+
inf (dr x) = inf (dr z) + z - x.
302+
Proof.
303+
move=> drzx drz0.
304+
rewrite drzx -image2_set1 inf_sumE.
305+
- by rewrite inf1 addrA.
306+
- split. by apply/set0P.
307+
exists 0. move=> u. rewrite -inE. exact: dr_ge0.
308+
- exact: has_inf1.
309+
Qed.
310+
295311
Definition continuous_at_sorgenfrey_to_Rtopo x (f : sorgenfrey -> R) :=
296312
forall eps : R, 0 < eps -> exists2 d : R, 0 < d & forall y : R, x <= y < x + d -> `|f x - f y| < eps.
297313

@@ -350,31 +366,26 @@ case/boolP: (xepsE == set0).
350366
by rewrite subr_gt0 xt ltrBlDl (le_lt_trans tz).
351367
have Hr : `|Num.min 1 xr - Num.min 1 zr| < eps.
352368
rewrite /xr /zr.
353-
case/boolP: (dr z == set0) => [/eqP |] drz0.
369+
case/boolP: (dr z == set0) => [/eqP | /set0P] drz0.
354370
move: drzx.
355371
rewrite drz0 image_set0 => /eqP ->.
356372
by rewrite subrr normr0.
357373
have drx0 : dr x !=set0.
358-
case/set0P : drz0 => z0 drzz0.
374+
case : drz0 => z0 drzz0.
359375
rewrite drzx.
360376
exists (z0 + (z - x)) => /=.
361377
by exists z0.
362-
rewrite ifF.
363-
rewrite (le_lt_trans (abs_subr_min _ _ _ _)) //.
364-
rewrite subrr normr0 maxEle normr_ge0.
365-
rewrite drzx.
366-
rewrite -image2_set1.
367-
rewrite inf_sumE //.
368-
rewrite inf1.
369-
rewrite addrAC.
370-
rewrite subrr add0r.
371-
move/ltW: xz.
372-
rewrite ler_def.
373-
move/eqP ->.
374-
by rewrite ltrBlDl.
375-
split. exact/set0P.
376-
exists 0. by move=> y [] _ /ltW.
377-
exact/negbTE/set0P.
378+
have inf_drlt : `|inf (dr x) - inf (dr z)| < eps.
379+
rewrite drzx -image2_set1 inf_sumE //.
380+
rewrite inf1 addrAC subrr add0r.
381+
move/ltW: xz.
382+
rewrite ler_def => /eqP ->.
383+
by rewrite ltrBlDl.
384+
split => //.
385+
exists 0; by move=> y [] _ /ltW.
386+
rewrite ifF; last exact/negbTE/set0P.
387+
rewrite (le_lt_trans (abs_subr_min _ _ _ _)) //.
388+
by rewrite subrr normr0 maxEle normr_ge0.
378389
have dlxz : dl z = [set t + (z - x) | t in dl x].
379390
apply: dl_shift => // t /=.
380391
rewrite in_itv /= => /andP[] xt tz.
@@ -407,49 +418,33 @@ case/boolP: (xepsE == set0).
407418
move/eqP /image_set0_set0 /eqP.
408419
by rewrite (negPf drz0).
409420
move=> drx0.
410-
have inf_drxz : inf (dr x) = inf (dr z) + z - x.
411-
rewrite drzx -image2_set1 inf_sumE.
412-
- by rewrite inf1 addrA.
413-
- split. by apply/set0P.
414-
exists 0. move=> u. rewrite -inE. exact: dr_ge0.
415-
- exact: has_inf1.
416-
rewrite -drzx inf_drxz.
421+
rewrite -drzx (inf_drxz drzx) //.
417422
rewrite addrC addrA addKr ltr_norml.
418423
rewrite (@lt_le_trans _ _ 0) ?ltrBlDl //= ?subr_ge0 ?ltW //.
419424
by rewrite oppr_lt0.
420425
move/set0P/xgetPex => /(_ eps).
421426
rewrite -/eps' => -[] eps'E Heps'.
422427
rewrite -/(sdist x) -/(sdist z).
423-
have eps'l : forall t, x <= t < x + eps' -> 0 <= sdist t < eps.
424-
move=> t Ht /=.
428+
have eps'l : forall t, x <= t < x + eps' -> sdist t < eps.
429+
move=> t /andP[xt tx] /=.
425430
rewrite /sdist.
426-
set xl : R := if _ then _ else 1.
427-
case: ifPn.
428-
move/negP; elim; apply/negP/set0P.
429-
exists (x+eps'-t).
430-
rewrite /dr /= (addrC _ (-t)) addrA subrr add0r eps'E.
431-
rewrite addrC subr_gt0 //; by case/andP: Ht.
432-
move=> drt0.
433-
rewrite le_min.
434-
rewrite gt_min.
435-
rewrite {1}/xl fun_if inf_ge0 // ler01 if_same /=.
436-
rewrite inf_ge0 /=; last by move=> u; rewrite inE => -[] _ /ltW.
437-
case/andP: Ht => xt tx.
438-
rewrite orbC (@le_lt_trans _ _ (eps'+x-t)) //.
431+
rewrite gt_min; apply/orP; right.
432+
have /negbTE -> : dr t != set0.
433+
apply/set0P; exists (x+eps'-t).
434+
by rewrite /dr /= (addrC _ (-t)) addrA subrr add0r eps'E addrC subr_gt0.
435+
rewrite (@le_lt_trans _ _ (eps'+x-t)) //.
439436
have [-> | infdr0] := eqVneq (inf (dr t)) 0.
440437
by rewrite subr_ge0 addrC ltW.
441438
rewrite le_inf_n0 // inE /dr /= (addrC _ (-t)) addrA subrr add0r addrC.
442439
by rewrite eps'E addrC subr_gt0.
443440
case/andP: Heps' => eps'0 Heps'.
444441
by rewrite (le_lt_trans _ Heps') // -addrA gerDl lerBlDl addr0.
445-
have Hx : 0 <= sdist x < eps.
442+
have Hx : sdist x < eps.
446443
by apply: eps'l; rewrite lexx ltrDl; case/andP: Heps'.
447-
have Hz : 0 <= sdist z < eps.
444+
have Hz : sdist z < eps.
448445
by apply: eps'l; rewrite zx ltW // xz.
449446
rewrite -maxrN gt_max.
450-
case/andP: Hx => Hx1 Hx2.
451-
case/andP: Hz => Hz1 Hz2.
452-
by rewrite opprB !ltrBlDr !ltr_wpDr.
447+
by rewrite opprB !ltrBlDr !ltr_wpDr // sdist_ge0.
453448
Qed.
454449

455450
Lemma zeroset_sdist : E = sdist @^-1` [set 0].

0 commit comments

Comments
 (0)