Skip to content

Commit 953d96a

Browse files
committed
lemmas i01 and fix
1 parent 1eb81b7 commit 953d96a

1 file changed

Lines changed: 24 additions & 14 deletions

File tree

theories/hahn_banach_theorem.v

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
386395
have [z zmax]:= zorn_rel_ex graphFP.
387396
pose FP v : Prop := F v.
388397
have 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).
390399
have scalg : linear_for *%R g.
391400
case: z {zmax} gP=> [c [_ ls1 _ _]] /= gP.
392401
have addg : additive g.
@@ -585,12 +594,13 @@ Proof.
585594
apply: le_trans.
586595
have H : `|l%:num *: v1 + (l%:num).~ *: v2| <= `|l%:num *: v1| + `|(l%:num).~ *: v2|.
587596
by apply: ler_normD.
588-
by apply: (@ler_pM _ _ _ r r _ _ H) => //; apply: ltW.
589-
rewrite mulrDl !normrZ -mulr_algl -[X in _ <= _ + X]mulr_algl.
597+
by apply: (@ler_pM _ _ _ r r _ _ H) => //; apply: ltW.
598+
rewrite mulrDl !normrZ -mulr_algl -[X in _ <= _ + X]mulr_algl !scaler1.
599+
(* where is the lemma combining mulr_algl and scaler1, easier to search *)
590600
have -> : `|l%:num| = l%:num by apply/normr_idP.
591-
have -> : `|(l%:num).~| = (l%:num).~. apply/normr_idP. admit.
592-
rewrite !mulrA. admit.
593-
have majfp : forall x, F x -> f x <= p x.
601+
have -> : `|(l%:num).~| = (l%:num).~ by apply/normr_idP; apply: onem_ge0.
602+
by rewrite !mulrA.
603+
have majfp : forall x, F x -> f x <= p x.
594604
move => x Fx; rewrite /(p _) ; apply : le_trans ; last by [].
595605
apply : le_trans.
596606
apply : ler_norm.
@@ -608,7 +618,7 @@ Proof.
608618
by rewrite /p -[X in _ <= X]mul1r; apply: ler_pM; rewrite ?normr_ge0 ?ltW //=.
609619
- apply: (le_trans (majgp (y))); rewrite /p -[X in _ <= X]mul1r -normrN.
610620
apply: ler_pM; rewrite ?normr_ge0 ?ltW //=.
611-
Admitted.
621+
Qed.
612622

613623
End HBGeom.
614624

0 commit comments

Comments
 (0)