Skip to content

Commit 3e26e7b

Browse files
committed
simplification
1 parent 640b0ca commit 3e26e7b

File tree

2 files changed

+27
-33
lines changed

2 files changed

+27
-33
lines changed

theories/normedtype_theory/normed_module.v

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,25 +113,24 @@ Unshelve. all: by end_near. Qed.
113113

114114
Local Open Scope convex_scope.
115115

116+
Let ball_convex (x : convex_lmodType V) (r : K) : convex (ball x r).
117+
Proof.
118+
apply/convexW => z y; rewrite !inE -!ball_normE /= => zx yx l l0 l1.
119+
rewrite inE/=.
120+
rewrite [X in `|X|](_ : _ = (x - z : convex_lmodType _) <| l |>
121+
(x - y : convex_lmodType _)); last first.
122+
by rewrite opprD -[in LHS](convmm l x) addrACA -scalerBr -scalerBr.
123+
rewrite (le_lt_trans (ler_normD _ _))// !normrZ.
124+
rewrite (@ger0_norm _ l%:num)// (@ger0_norm _ l%:num.~) ?onem_ge0//.
125+
by rewrite -[ltRHS]mul1r -(add_onemK l%:num) mulrDl ltrD// ltr_pM2l// onem_gt0.
126+
Qed.
127+
116128
(** NB: we have almost the same proof in `tvs.v` *)
117129
Let locally_convex :
118130
exists2 B : set (set (convex_lmodType V)), (forall b, b \in B -> convex b) & basis B.
119131
Proof.
120132
exists [set B | exists (x : convex_lmodType V) r, B = ball x r].
121-
move=> b; rewrite inE => [[x]] [r] ->.
122-
apply/convexW => z y; rewrite !inE -!ball_normE /= => zx yx l l0 l1.
123-
have -> : x = x <| l |> x by rewrite convmm. (*TODO: this looks superfluous *)
124-
rewrite /ball_/= inE/=.
125-
rewrite [X in `|X|](_ : _ = (x - z : convex_lmodType V) <| l |>
126-
(x - y : convex_lmodType V)); last first.
127-
by rewrite opprD addrACA -scalerBr -scalerBr.
128-
rewrite (@le_lt_trans _ _ ((l%:num) * `|x - z| + l%:num.~ * `|x - y|))//.
129-
rewrite -[in X in _ <= X + _](@ger0_norm _ l%:num)//.
130-
rewrite -[in X in _ <= _ + X](@ger0_norm _ l%:num.~) ?subr_ge0//.
131-
by rewrite -!normrZ ler_normD.
132-
rewrite (@lt_le_trans _ _ (l%:num * r + l%:num.~ * r ))//.
133-
by rewrite ltr_leD// lter_pM2l// ?normrE ?gt_eqF ?ltW// subr_gt0.
134-
by rewrite -mulrDl addrC subrK mul1r.
133+
by move=> b; rewrite inE => [[x]] [r] ->; exact: ball_convex.
135134
split; first by move=> B [x] [r] ->; exact: ball_open.
136135
move=> x B; rewrite -nbhs_ballE/= => -[r] r0 Bxr /=.
137136
by exists (ball x r) => //; split; [exists x, r|exact: ballxx].

theories/normedtype_theory/tvs.v

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -511,31 +511,26 @@ Unshelve. all: by end_near. Qed.
511511

512512
Local 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+
514526
Let standard_locally_convex :
515527
exists2 B : set (set R^o), (forall b, b \in B -> convex b) & basis B.
516528
Proof.
517529
exists [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.
536531
split; first by move=> B [x] [r] ->; exact: ball_open.
537532
move=> 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].
539534
Qed.
540535

541536
HB.instance Definition _ :=

0 commit comments

Comments
 (0)