@@ -200,6 +200,27 @@ case=> -[] v Ev <- /[!andbT] ->; split => //.
200200by rewrite mathcomp_extra.subrKC.
201201Qed .
202202
203+ Local Lemma lt_dr_set0 x y : x < y -> dr x = set0 -> dr y = set0.
204+ Proof .
205+ move=> xy.
206+ rewrite !drE !(rwP eqP); apply: contraLR.
207+ case/set0P=> u /= [] [] v Ev <-.
208+ rewrite in_itv /= andbT subr_gt0 => yv.
209+ apply/set0P; exists (v - x) => /=.
210+ rewrite in_itv /= subr_gt0 (lt_trans xy yv); split => //.
211+ by exists v.
212+ Qed .
213+
214+ Local Lemma lt_dl_set0 x y : x < y -> dl y = set0 -> dl x = set0.
215+ move=> xy.
216+ rewrite !dlE !(rwP eqP); apply: contraLR.
217+ case/set0P=> u /= [] [] v Ev <-.
218+ rewrite in_itv /= andbT addrC subr_ge0 => vx.
219+ apply/set0P; exists (y - v) => /=.
220+ rewrite in_itv /= subr_ge0 (le_trans vx (ltW xy)); split => //.
221+ by exists v => //; rewrite addrC.
222+ Qed .
223+
203224Lemma abs_subr_min (x y t u : R) :
204225 `|Num.min x y - Num.min t u| <= Num.max `|x - t| `|y - u|.
205226Proof .
@@ -381,6 +402,9 @@ have znE : z \notin E.
381402 by rewrite /= in_itv /= xz lexx.
382403rewrite (le_lt_trans (abs_subr_min _ _ _ _)) // gt_max.
383404apply/andP; split; last first.
405+ - rewrite /xr /zr. (dr_shift xz).
406+
407+
384408- have drzx : dr x = [set t + (z - x) | t in dr z] by apply: dr_shift.
385409 rewrite /xr /zr drzx.
386410 have[-> | drz0] := eqVneq (dr z) set0.
0 commit comments