@@ -511,31 +511,26 @@ Unshelve. all: by end_near. Qed.
511511
512512Local Open Scope convex_scope.
513513
514+ Let standard_ball_convex (x : R^o) (r : R) : convex (ball x r).
515+ Proof .
516+ apply/convexW => z y; rewrite !inE -!ball_normE /= => zx yx l l0 l1.
517+ rewrite inE/=.
518+ rewrite [X in `|X|](_ : _ = (x - z : convex_lmodType _) <| l |>
519+ (x - y : convex_lmodType _)); last first.
520+ by rewrite opprD -[in LHS](convmm l x) addrACA -scalerBr -scalerBr.
521+ rewrite (le_lt_trans (ler_normD _ _))// !normrM.
522+ rewrite (@ger0_norm _ l%:num)// (@ger0_norm _ l%:num.~) ?onem_ge0//.
523+ by rewrite -[ltRHS]mul1r -(add_onemK l%:num) mulrDl ltrD// ltr_pM2l// onem_gt0.
524+ Qed .
525+
514526Let standard_locally_convex :
515527 exists2 B : set (set R^o), (forall b, b \in B -> convex b) & basis B.
516528Proof .
517529exists [set B | exists x r, B = ball x r].
518- move=> b/= /[!inE]/= [[x]] [r] ->.
519- apply/convexW => z y; rewrite /ball/= !inE/= => zx yx l /[!inE]/= l0 l1.
520- (* conv lemma? *)
521- have -> : x = x <| l |> x by rewrite convmm. (*TODO: this looks superfluous *)
522- rewrite [X in `|X|](_ : _ = (x - z) <| l |> (x - y)); last first.
523- by rewrite opprD addrACA -mulrBr -mulrBr.
524- rewrite (@le_lt_trans _ _ ((`|x - z| : R^o) <| l |> `|x - y|))//.
525- rewrite -[in X in _ <= X + _](@ger0_norm _ l%:num)//.
526- rewrite -[in X in _ <= _ + X](@ger0_norm _ l%:num.~) ?subr_ge0//.
527- rewrite [X in `|X| <= _](_ : _ = l%:num * (x - z) + l%:num.~ * (x - y))//.
528- rewrite -[X in _ <= X + _]normrM.
529- rewrite -[X in _ <= _ + X]normrM.
530- by rewrite ler_normD.
531- rewrite (@lt_le_trans _ _ ((r : R^o) <| l |> r))//.
532- rewrite ltr_leD//.
533- by rewrite ltr_pM2l// normr_gt0// gt_eqF.
534- by rewrite ler_wpM2l// ?subr_ge0// ltW.
535- by rewrite convmm.
530+ by move=> B/= /[!inE]/= [[x]] [r] ->; exact: standard_ball_convex.
536531split; first by move=> B [x] [r] ->; exact: ball_open.
537532move=> x B; rewrite -nbhs_ballE/= => -[r] r0 Bxr /=.
538- by exists (ball x r) => //; split; [exists x, r|exact: ballxx].
533+ by exists (ball x r) => //= ; split; [exists x, r|exact: ballxx].
539534Qed .
540535
541536HB.instance Definition _ :=
0 commit comments