@@ -122,7 +122,7 @@ have gt0_e: 0 < e by rewrite subr_gt0.
122122move=> x y; rewrite !inE/= /eclamp pmulr_rle0 // invr_le0.
123123rewrite lern0 /= !ltr_distl => /andP[_ lt1] /andP[lt2 _].
124124apply/(lt_trans lt1)/(le_lt_trans _ lt2).
125- by rewrite lerBrDl addrCA -splitr /e addrCA subrr addr0 .
125+ by rewrite lerBrDl addrCA -splitr /e addrC subrK .
126126Qed .
127127
128128Lemma separable {R : realType} (l1 l2 : \bar R) :
@@ -303,9 +303,8 @@ Lemma ncvgM u v lu lv : ncvg u lu%:E -> ncvg v lv%:E ->
303303Proof .
304304move=> cu cv; pose a := u \- lu%:S; pose b := v \- lv%:S.
305305have eq: (u \* v) =1 (lu * lv)%:S \+ ((lu%:S \* b) \+ (a \* v)).
306- move=> n; rewrite {}/a {}/b /= [u n+_]addrC [(_+_)*(v n)]mulrDl.
307- rewrite !addrA -[LHS]add0r; congr (_ + _); rewrite mulrDr.
308- by rewrite !(mulrN, mulNr) (addrCA (lu * lv)) subrr addr0 subrr.
306+ move=> n; rewrite {}/a {}/b /=.
307+ by rewrite addrC mulrBr addrAC subrK addrC mulrBl subrK.
309308apply/(ncvg_eq eq); rewrite -[X in X%:E]addr0; apply/ncvgD.
310309 by apply/ncvgC. rewrite -[X in X%:E]addr0; apply/ncvgD.
311310+ apply/ncvgMr; first rewrite -[X in X%:E](subrr lv).
@@ -388,7 +387,7 @@ case: l1 l2 => [l1||] [l2||] //=; first last.
388387move=> lt_12; pose e := l2 - l1 => /(_ (B l2 e)).
389388case=> K cv; exists K => n /cv; rewrite !inE eclamp_id ?subr_gt0 //.
390389rewrite ltr_distl => /andP[] /(le_lt_trans _) h _; apply: h.
391- by rewrite {cv}/e opprB addrCA subrr addr0 .
390+ by rewrite {cv}/e subKr .
392391Qed .
393392
394393Lemma ncvg_lt (u : nat -> R) (l1 l2 : \bar R) :
0 commit comments