Skip to content

Commit afc8541

Browse files
committed
clean
1 parent 412b781 commit afc8541

1 file changed

Lines changed: 52 additions & 122 deletions

File tree

  • theories/normedtype_theory

theories/normedtype_theory/tvs.v

Lines changed: 52 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -752,14 +752,11 @@ HB.instance Definition _ := Nbhs_isUniform_mixin.Build E
752752
entourage_inv entourage_split_ex
753753
nbhsE.
754754

755-
(* TO BE DELETED once PR#1974 is merged *)
756-
757755
HB.instance Definition _ := PreTopologicalNmodule_isTopologicalNmodule.Build E add_continuous.
758756

759757
HB.instance Definition _ := TopologicalNmodule_isTopologicalLmodule.Build R E scale_continuous.
760758

761759
HB.instance Definition _ := Uniform_isConvexTvs.Build R E locally_convex.
762-
(* END TO BE DELETED *)
763760

764761
HB.end.
765762

@@ -777,7 +774,7 @@ Lemma addset0 (E : zmodType) (A: set E):
777774
([set 0] `+ A) = A.
778775
Proof.
779776
apply/seteqP; split => z /=.
780-
by move=> [+ -> [y]]; rewrite add0r => + + <-.
777+
by move=> [+ -> [y]]; rewrite add0r => + + <-.
781778
by move=> Az; exists 0 => //; exists z; rewrite ?add0r.
782779
Qed.
783780

@@ -927,93 +924,60 @@ have [convV'' balV''] := (absconvex_nbhsbasisat0 fV0 ).
927924
exists ((ball_ normr 0 (minr 1 s)) (*[set t | `|t| < r]*), [set x] `+ V0) => //=.
928925
split.
929926
exists (minr 1 s) => //=. rewrite /minr; case: ifPn => //.
930-
by rewrite r0.
927+
by rewrite r0.
931928
by exists ([set x] `+ V0) => //; exists V0.
932-
move => [z1 z2] /=.
933-
rewrite sub0r normrN => -[z1s].
934-
move=> [_ ->] [y] Vy <- {z2}.
935-
apply: VA => /=.
936-
rewrite r0; exists 0.
937-
rewrite scale0r //.
929+
move => [z1 z2] /=; rewrite sub0r normrN => -[z1s].
930+
move=> [_ ->] [y] Vy <- {z2}; apply: VA => /=; rewrite r0; exists 0; rewrite ?scale0r //.
938931
exists (z1 *: (x + y)); rewrite ?add0r //.
939-
apply: rV0 => /=.
940-
exists (z1 *: x).
941-
apply: (balV'' (z1 * s^-1)).
942-
rewrite normrM normfV ltW // ltr_pdivrMr ?normr_gt0 ?gt_eqF //.
943-
rewrite mul1r.
944-
rewrite [ltRHS]gtr0_norm //.
945-
rewrite (lt_le_trans z1s) //.
946-
by rewrite /minr; case: ifPn => // /ltW //.
947-
exists (s *: x) => //.
948-
by rewrite !scalerA divfK// gt_eqF //.
949-
exists (z1 *: y) => //.
950-
apply: (balV'' z1).
951-
rewrite (le_trans (ltW z1s)) //.
952-
rewrite /minr; case: real_ltP => //.
953-
rewrite gtr0_real //.
954-
by exists y.
955-
by rewrite -scalerDr.
956-
932+
apply: rV0 => /=; exists (z1 *: x).
933+
apply: (balV'' (z1 * s^-1)).
934+
rewrite normrM normfV ltW // ltr_pdivrMr ?normr_gt0 ?gt_eqF //.
935+
rewrite mul1r [ltRHS]gtr0_norm // (lt_le_trans z1s) //.
936+
by rewrite /minr; case: ifPn => // /ltW //.
937+
by exists (s *: x) => //; rewrite !scalerA divfK// gt_eqF //.
938+
exists (z1 *: y) => //; last by rewrite -scalerDr.
939+
apply: (balV'' z1); last by exists y.
940+
rewrite (le_trans (ltW z1s)) // /minr; case: real_ltP => //;
941+
by rewrite gtr0_real.
957942
have [V0 fV0 rV0] := (split_nbhsbasisat0 fV).
958943
have [V' fV' rV'] := (split_nbhsbasisat0 fV0).
959-
have [V'' fV'' rV''] := (expand_nbhsbasisat0 r fV').
960-
have [/= s [s0 (*xV'' xx'*)]] := (absorbing_nbhsbasisat0 fV'' x).
944+
have [V'' fV'' rV''] := (expand_nbhsbasisat0 r fV').
945+
have [/= s [s0 (*xV'' xx'*)]] := (absorbing_nbhsbasisat0 fV'' x).
961946
rewrite inE => xV''.
962-
have [convV'' balV''] := (absconvex_nbhsbasisat0 fV'').
963-
exists ([set r] `+ (ball_ normr 0 (Num.min `|r| (`|r * s|))) (*[set t | `|t| < r]*), [set x] `+ V'') => //=.
964-
split.
965-
exists ((Num.min `|r| (`|r * s|))) => //=.
966-
rewrite /minr; case: ifPn. rewrite normr_gt0 //.
967-
rewrite normr_gt0 => _.
968-
by rewrite mulf_neq0 // gt_eqF.
969-
move=> u/= rur.
970-
exists r => //.
971-
exists (u - r).
972-
rewrite sub0r normrN distrC (lt_le_trans rur)//.
973-
by rewrite subrKC.
974-
by exists ([set x] `+ V'') => //; exists V''.
975-
move => [z1 z2] /= => [] [[x0] -> {x0}] [y].
976-
rewrite add0r normrN => yr.
977-
move => <- [H ->] [t] Vt <-.
978-
apply: VA => /=.
979-
exists (r *: x) => //.
980-
exists (r *: t + y *: x + y *: t) => //.
981-
apply: rV0 => /=.
982-
exists (r *:t) => //.
983-
apply: rV'. exists 0. apply: mem0_nbhsbasisat0 =>//. exists (r *: t). apply: rV''. exists t => //.
984-
by rewrite add0r.
985-
exists (y *: x + y *: t)=> //.
986-
apply: rV'.
987-
exists (y *: x).
988-
apply: rV''.
989-
exists ((r^-1 * y) *: x).
990-
apply: (balV'' (r^-1 * y * s^-1)).
991-
rewrite -mulrA normrM normfV // ler_pdivrMl ?normr_gt0 // mulr1.
992-
rewrite normrM -ler_pdivlMr ?normr_gt0 // ?gt_eqF // ?invr_gt0 //.
993-
rewrite (le_trans (ltW yr)) //; rewrite /minr.
994-
case: ifPn => //. move/ltW. rewrite normrM normfV //.
995-
by rewrite invrK //.
996-
by move=> _; rewrite normfV normrM invrK.
997-
exists (s *: x) => //.
998-
rewrite !scalerA divfK// gt_eqF //.
999-
by rewrite scalerA mulrA divff// mul1r.
1000-
exists (y *: t) => //.
1001-
apply: rV''.
1002-
exists ((r^-1 * y) *: t).
1003-
apply: (balV'' (r^-1 * y)).
1004-
rewrite normrM normfV// ler_pdivrMl ?normr_gt0// mulr1.
1005-
apply: (le_trans (ltW yr)).
1006-
rewrite /minr.
1007-
case : real_ltP => //.
1008-
by exists t.
1009-
by rewrite scalerA mulrA divff// mul1r.
1010-
by rewrite addrA.
1011-
rewrite !addrA.
1012-
rewrite -scalerDr.
1013-
rewrite -addrA.
1014-
rewrite -scalerDr.
1015-
by rewrite scalerDl.
1016-
Qed.
947+
have [convV'' balV''] := (absconvex_nbhsbasisat0 fV'').
948+
exists ([set r] `+ (ball_ normr 0 (Num.min `|r| (`|r * s|))) , [set x] `+ V'') => //=.
949+
split; last by exists ([set x] `+ V'') => //; exists V''.
950+
exists ((Num.min `|r| (`|r * s|))) => //=.
951+
rewrite /minr; case: ifPn; first by rewrite normr_gt0 //.
952+
by rewrite normr_gt0 => _ ; rewrite mulf_neq0 // gt_eqF.
953+
move=> u/= rur; exists r => //; exists (u - r); last by rewrite subrKC.
954+
by rewrite sub0r normrN distrC (lt_le_trans rur)//.
955+
move => [z1 z2] /= => [] [[x0] -> {x0}] [y]; rewrite add0r normrN => yr.
956+
move => <- [H ->] [t] Vt <-; apply: VA => /=.
957+
exists (r *: x) => //; exists (r *: t + y *: x + y *: t); last first.
958+
by rewrite !addrA -scalerDr -addrA -scalerDr scalerDl.
959+
apply: rV0; exists (r *:t) => //.
960+
apply: rV'; exists 0; first by apply: mem0_nbhsbasisat0.
961+
exists (r *: t); first by apply: rV''; exists t.
962+
by rewrite add0r.
963+
exists (y *: x + y *: t); last by rewrite addrA.
964+
apply: rV'; exists (y *: x).
965+
apply: rV''.
966+
exists ((r^-1 * y) *: x).
967+
apply: (balV'' (r^-1 * y * s^-1)).
968+
rewrite -mulrA normrM normfV // ler_pdivrMl ?normr_gt0 // mulr1.
969+
rewrite normrM -ler_pdivlMr ?normr_gt0 // ?gt_eqF // ?invr_gt0 //.
970+
rewrite (le_trans (ltW yr)) //; rewrite /minr.
971+
case: ifPn; last by move=> _; rewrite normfV normrM invrK.
972+
by move/ltW; rewrite normrM normfV invrK.
973+
exists (s *: x); rewrite // !scalerA divfK// gt_eqF //.
974+
by rewrite scalerA mulrA divff// mul1r.
975+
exists (y *: t) => //; apply: rV''; exists ((r^-1 * y) *: t); last first.
976+
by rewrite scalerA mulrA divff// mul1r.
977+
apply: (balV'' (r^-1 * y)); last by exists t.
978+
rewrite normrM normfV// ler_pdivrMl ?normr_gt0// mulr1.
979+
by apply: (le_trans (ltW yr)); rewrite /minr; case : real_ltP.
980+
Qed.
1017981

1018982
#[local] Lemma locally_convex : exists2 B : set_system E,
1019983
(forall b, b \in B -> absolutely_convex_set b) & nbhs_basis 0 B.
@@ -1022,43 +986,12 @@ exists nbhsbasis_at0; first by move=> b; rewrite inE; apply: absconvex_nbhsbasis
1022986
move => b [a] /= [a'] fa; rewrite addset0 => <- ab /=.
1023987
by exists a' => //=; split => //; exact: mem0_nbhsbasisat0.
1024988
Qed.
1025-
989+
1026990
HB.instance Definition _ := @PreTopologicalLmod_isConvexTvs.Build R E add_continuous scale_continuous locally_convex.
1027991

1028992
HB.end.
1029-
(*
1030-
nbhsbasis_at0 : set_system E ; (*TODO rename to filterbasis_at0*)
1031-
nonempty_nbhsbasisat0 : exists U, nbhsbasis_at0 U;
1032-
nbhsbasis_at0I : forall U V, nbhsbasis_at0 U -> nbhsbasis_at0 V ->
1033-
exists2 W, nbhsbasis_at0 W & W `<=` U `&` V ;
1034-
mem0_nbhsbasisat0 : forall B, nbhsbasis_at0 B -> B 0 ;
1035-
expand_nbhsbasisat0 : forall B r, nbhsbasis_at0 B -> (*0 <= r ->*)
1036-
exists2 U, nbhsbasis_at0 U & r `*: U `<=` B ; (* implies circled *)
1037-
absorbing_nbhsbasisat0 : forall B , nbhsbasis_at0 B -> pabsorbing_set B;
1038-
absconvex_nbhsbasisat0 : forall B, nbhsbasis_at0 B -> absolutely_convex_set B }.
1039993

1040-
*)
1041-
(* TB renamed *)
1042-
Lemma nbhsbasisat0_filter (R : numFieldType) (E : lmodType R)
1043-
(nbhsbasis_at0 : set_system E) (x : E)
1044-
(nonempty_nbhsbasisat0 : exists U, nbhsbasis_at0 U)
1045-
( nbhsbasis_at0I : forall U V, nbhsbasis_at0 U -> nbhsbasis_at0 V -> exists2 W, nbhsbasis_at0 W & W `<=` U `&` V )
1046-
(mem0_nbhsbasisat0 : forall B, nbhsbasis_at0 B -> B 0) : ProperFilter (@nbhs_frombasis0 R E (nbhsbasis_at0) x).
1047-
Proof.
1048-
apply: filter_from_proper.
1049-
apply: filter_from_filter => /=.
1050-
have [U fU] := nonempty_nbhsbasisat0.
1051-
by exists ([set x] `+ U) => //=; exists U.
1052-
move=> _ _ /= [U0 FU <-] [V0 FV <-].
1053-
have [W FW WUV] := nbhsbasis_at0I _ _ FU FV.
1054-
exists ([set x] `+ W); first by exists W.
1055-
rewrite -addsetI; exact: addsubset.
1056-
move=> _ /= [V FV] <-.
1057-
by exists x; exists x => //; exists 0; rewrite ?addr0//; exact: mem0_nbhsbasisat0.
1058-
Qed.
1059-
1060-
1061-
HB.factory Record Nbhssubbasis0_isConvexTvs (R: numFieldType) E & GRing.Lmodule R E (*& isConvexTvsat R E*) := {
994+
HB.factory Record Nbhssubbasis0_isConvexTvs (R: numFieldType) E & GRing.Lmodule R E := {
1062995
nbhssubbasis0 : set_system E ;
1063996
nonempty_nbhssubbasisat0 : exists U, nbhssubbasis0 U;
1064997
mem0_nbhssubbasisat0 : forall B, nbhssubbasis0 B -> B 0 ;
@@ -1071,11 +1004,9 @@ Definition nbhs_fromsubbasis0 (R : numFieldType) (E : zmodType)
10711004
(nbhssubbasis0 : set_system E) :=
10721005
finI_from nbhssubbasis0 id.
10731006

1074-
10751007
HB.builders Context R E & Nbhssubbasis0_isConvexTvs R E.
10761008

10771009
From mathcomp Require Import finmap.
1078-
(*Open Scope fset_scope. *)
10791010

10801011
Let nbhsbasis_at0 := @nbhs_fromsubbasis0 R E nbhssubbasis0.
10811012

@@ -1109,7 +1040,6 @@ Proof.
11091040
by move => B [/= I fI <-] U /= /fI /=; rewrite asboolE /= => /mem0_nbhssubbasisat0.
11101041
Qed.
11111042

1112-
11131043
#[local] Lemma expand_nbhsbasisat0 : forall B r, nbhsbasis_at0 B ->
11141044
exists2 U, nbhsbasis_at0 U & r `*: U `<=` B.
11151045
Proof.

0 commit comments

Comments
 (0)