Skip to content

Commit e1a7fe8

Browse files
garriguemotikaku
authored andcommitted
dl_shift
1 parent e921c3a commit e1a7fe8

File tree

1 file changed

+50
-22
lines changed

1 file changed

+50
-22
lines changed

theories/showcase/sorgenfreyline.v

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -243,28 +243,62 @@ rewrite !image2E.
243243
by apply/seteqP; split => c /= [] [x y] /= [] Hx Hy <-; exists (y,x).
244244
Qed.
245245

246+
Let dl_shift x z :
247+
x < z -> `]x, z] `<=` ~` E -> dl z = [set t + (z - x) | t in dl x].
248+
Proof.
249+
move=> xz xzNE.
250+
apply/seteqP; rewrite /dl; split => t /= [].
251+
move => ztE y0.
252+
case: (ltrP x (z-t)) => ztx.
253+
suff : z - t \notin E by rewrite ztE.
254+
rewrite -in_setC inE.
255+
apply: xzNE.
256+
by rewrite /= in_itv /= ztx lerBlDr lerDl.
257+
exists (x - (z-t)).
258+
by rewrite opprD addrA subrr opprK add0r ztE subr_ge0.
259+
by rewrite (addrC z) opprD opprK !addrA addrNK addrC addKr.
260+
move=> w [] xwE w0 <-.
261+
rewrite !opprD (addrCA z) !addrA addrK addrC opprK.
262+
by rewrite subr_ge0 ler_wpDl // ltW.
263+
Qed.
264+
265+
Let dr_shift x z :
266+
x < z -> `]x, z] `<=` ~` E -> dr x = [set t + (z - x) | t in dr z].
267+
Proof.
268+
move=> xz xzNE.
269+
apply/seteqP; rewrite /dr; split => t /= [].
270+
move => xtE y0.
271+
case: (ltrP z (x+t)) => zxt; last first.
272+
suff : x + t \notin E by rewrite xtE.
273+
rewrite -in_setC inE.
274+
apply: xzNE.
275+
by rewrite /= in_itv /= zxt ltrDl y0.
276+
exists (x + t - z).
277+
by rewrite addrA (addrC z) addrK xtE subr_gt0.
278+
by rewrite addrA (addrAC _ _ z) addrK (addrC x) addrK.
279+
move=> w [] xwE w0 <-.
280+
rewrite !addrA addrAC (addrC x) addrK addrC.
281+
by rewrite subr_gt0 ltr_wpDr // ltW.
282+
Qed.
283+
246284
Lemma continuous_sdist :
247285
forall x, @continuous_at sorgenfrey Rtopo x sdist.
248286
Proof.
249-
move=> x N.
287+
move=> x B.
250288
rewrite -(@filter_from_ballE R (GRing_regular__canonical__pseudometric_structure_PseudoMetric R)).
251-
case => eps /= eps0 epsN.
289+
case => eps /= eps0 epsB.
252290
pose xepsE := [set y | x + y \in E /\ 0 < y < eps].
253291
pose eps' := xget eps xepsE.
254292
exists (`[x,x+eps'[); split => //=.
255-
- exists [set (x,x+eps')].
256-
by move=> i /= ->.
293+
- exists [set (x,x+eps')] => //.
257294
by rewrite bigcup_set1.
258295
- rewrite in_itv /= lexx ltrDl /eps' /=.
259-
case: (xgetP eps xepsE) => //.
260-
move=> y ->.
261-
by rewrite /xepsE /= => -[] _ /andP[].
296+
by case: (xgetP eps xepsE) => // y -> [] _ /andP[].
262297
rewrite -image_sub.
263298
move=> y /= [] z.
264299
rewrite in_itv /= => /andP[xz zx] <- {y}.
265-
apply: epsN.
266-
rewrite /ball /=.
267-
rewrite /sdist.
300+
apply: epsB.
301+
rewrite /ball /sdist /=.
268302
have [<-|xz'] := eqVneq x z.
269303
by rewrite subrr normr0.
270304
have {xz xz'} xz: x < z by rewrite lt_neqAle xz'.
@@ -298,18 +332,12 @@ case/boolP: (xepsE == set0).
298332
suff : xepsE y by rewrite xepsE0.
299333
by rewrite /xepsE /= Hy y0 -(ltrD2l x) (le_lt_trans xyz).
300334
have dlxz : dl z = [set t + (z - x) | t in dl x].
301-
apply/seteqP; rewrite /dl; split => t /= [].
302-
move => ztE y0.
303-
case: (ltrP x (z-t)) => ztx.
304-
suff : z-t-x \in xepsE by rewrite xepsE0 inE.
305-
rewrite inE /xepsE /= addrA (addrC x) addrK ztE.
306-
by rewrite subr_gt0 ztx ltrBlDl ltrBlDr ltr_wpDr.
307-
exists (x - (z-t)).
308-
by rewrite opprD addrA subrr opprK add0r ztE subr_ge0.
309-
by rewrite (addrC z) opprD opprK !addrA addrNK addrC addKr.
310-
move=> w [] xwE w0 <-.
311-
rewrite !opprD (addrCA z) !addrA addrK addrC opprK.
312-
by rewrite subr_ge0 ler_wpDl // ltW.
335+
apply: dl_shift => // t /=.
336+
rewrite in_itv /= => /andP[] xt tz.
337+
apply: contraPnot xepsE0.
338+
rewrite -inE => Et; apply/eqP/set0P.
339+
exists (t-x); rewrite /xepsE /= addrA (addrC x) addrK.
340+
by rewrite subr_gt0 xt ltrBlDl (le_lt_trans tz).
313341
have [dlx0|] := eqVneq (dl x) set0.
314342
rewrite dlx0 inf0 subr0.
315343
case: ifPn => xinE.

0 commit comments

Comments
 (0)