@@ -202,14 +202,23 @@ Hypothesis p_cvx : (@convex_function R V [set: V] p).
202202 real line directed by an arbitrary vector v *)
203203
204204 Lemma divDl_ge0 (s t : R) (s0 : 0 <= s) (t0 : 0 <= t) : 0 <= s / (s +t).
205- Admitted .
206-
205+ by apply: divr_ge0 => //; apply: addr_ge0.
206+ Qed .
207+
207208 Lemma divDl_le1 (s t : R) (s0 : 0 <= s) (t0 : 0 <= t) : s / (s +t) <= 1.
208- Admitted .
209-
210- Lemma divD_onem (s t : R) : (s / (s + t)).~ = t / (s + t).
211- Admitted .
212-
209+ move: s0; rewrite le0r => /orP []; first by move => /eqP ->; rewrite mul0r //.
210+ move: t0; rewrite le0r => /orP [].
211+ by move => /eqP -> s0; rewrite addr0 divff //=; apply: lt0r_neq0.
212+ by move=> t0 s0; rewrite ler_pdivrMr ?mul1r ?addr_gt0 // lerDl ltW.
213+ Qed .
214+
215+ Lemma divD_onem (s t : R) (s0 : 0 < s) (t0 : 0 < t): (s / (s + t)).~ = t / (s + t).
216+ rewrite /(_).~.
217+ suff -> : 1 = (s + t)/(s + t) by rewrite -mulrBl -addrAC subrr add0r.
218+ rewrite divff // /eqP addr_eq0; apply/negbT/eqP => H.
219+ by move: s0; rewrite H oppr_gt0 ltNge; move/negP; apply; rewrite ltW.
220+ Qed .
221+
213222 Lemma domain_extend (z : zorn_type) v :
214223 exists2 ze : zorn_type, (zorn_rel z ze) & (exists r, (carrier ze) v r).
215224 Proof .
@@ -386,7 +395,7 @@ have graphFP : spec F f p graphF by split.
386395have [z zmax]:= zorn_rel_ex graphFP.
387396pose FP v : Prop := F v.
388397have FP0 : FP 0 by [].
389- have [g gP]:= (hb_witness linfF FP0 p_cvx sup inf graphFP zmax).
398+ have [g gP]:= (hb_witness linfF FP0 p_cvx sup inf zmax).
390399have scalg : linear_for *%R g.
391400 case: z {zmax} gP=> [c [_ ls1 _ _]] /= gP.
392401 have addg : additive g.
0 commit comments