@@ -339,7 +339,7 @@ HB.mixin Record Uniform_isConvexTvs (R : numDomainType) E
339339 (forall b, b \in B -> convex_set b) & basis B
340340}.
341341
342- #[short(type="ctvsType ")]
342+ #[short(type="convextvsType ")]
343343HB.structure Definition ConvexTvs (R : numDomainType) :=
344344 {E of Uniform_isConvexTvs R E & Uniform E & TopologicalLmodule R E}.
345345
@@ -379,15 +379,15 @@ Unshelve. all: by end_near. Qed.
379379
380380End properties_of_topologicalLmodule.
381381
382- HB.factory Record TopologicalLmod_isConvexTvs (R : numDomainType) E
382+ HB.factory Record PreTopologicalLmod_isConvexTvs (R : numDomainType) E
383383 & Topological E & GRing.Lmodule R E := {
384384 add_continuous : continuous (fun x : E * E => x.1 + x.2) ;
385385 scale_continuous : continuous (fun z : R^o * E => z.1 *: z.2) ;
386386 locally_convex : exists2 B : set_system E,
387387 (forall b, b \in B -> convex_set b) & basis B
388388 }.
389389
390- HB.builders Context R E & TopologicalLmod_isConvexTvs R E.
390+ HB.builders Context R E & PreTopologicalLmod_isConvexTvs R E.
391391
392392Definition entourage : set_system (E * E) :=
393393 fun P => exists (U : set E), nbhs (0 : E) U /\
@@ -477,7 +477,7 @@ HB.instance Definition _ := Nbhs_isUniform_mixin.Build E
477477HB.end .
478478
479479Section Tvs_numDomain.
480- Context (R : numDomainType) (E : ctvsType R) (U : set E).
480+ Context (R : numDomainType) (E : convextvsType R) (U : set E).
481481
482482Lemma nbhs0N : nbhs 0 U -> nbhs 0 (-%R @` U).
483483Proof . exact/nbhs0N_subproof/scale_continuous. Qed .
@@ -492,7 +492,7 @@ End Tvs_numDomain.
492492
493493Section Tvs_numField.
494494
495- Lemma nbhs0Z (R : numFieldType) (E : ctvsType R) (U : set E) (r : R) :
495+ Lemma nbhs0Z (R : numFieldType) (E : convextvsType R) (U : set E) (r : R) :
496496 r != 0 -> nbhs 0 U -> nbhs 0 ( *:%R r @` U ).
497497Proof .
498498move=> r0 U0; have /= := scale_continuous (r^-1, 0) U.
@@ -501,7 +501,7 @@ near=> x => //=; exists (r^-1 *: x); last by rewrite scalerA divff// scale1r.
501501by apply: (BU (r^-1, x)); split => //=;[exact: nbhs_singleton|near: x].
502502Unshelve. all: by end_near. Qed .
503503
504- Lemma nbhsZ (R : numFieldType) (E : ctvsType R) (U : set E) (r : R) (x :E) :
504+ Lemma nbhsZ (R : numFieldType) (E : convextvsType R) (U : set E) (r : R) (x :E) :
505505 r != 0 -> nbhs x U -> nbhs (r *:x) ( *:%R r @` U ).
506506Proof .
507507move=> r0 U0; have /= := scale_continuous ((r^-1, r *: x)) U.
@@ -568,7 +568,7 @@ HB.instance Definition _ := Uniform_isConvexTvs.Build R R^o
568568End standard_topology.
569569
570570Section prod_Tvs.
571- Context (K : numFieldType) (E F : ctvsType K).
571+ Context (K : numFieldType) (E F : convextvsType K).
572572
573573Local Lemma prod_add_continuous :
574574 continuous (fun x : (E * F) * (E * F) => x.1 + x.2).
@@ -741,7 +741,7 @@ HB.instance Definition _ := @isLinearContinuous.Build R E S s (g \o f)
741741End lcfun_comp.
742742
743743Section lcfun_lmodtype.
744- Context {R : numFieldType} {E F G: ctvsType R}.
744+ Context {R : numFieldType} {E F G: convextvsType R}.
745745 (* {s : GRing.Scale.law R F}. *)
746746
747747Implicit Types (r : R) (f g : {linear_continuous E -> F}) (h : {linear_continuous F -> G}).
@@ -855,8 +855,45 @@ HB.instance Definition _ :=
855855Check ({linear_continuous E -> F} : lmodType R).
856856End lcfun_lmodtype.
857857
858+
859+ Section Substructures.
860+ Context (R: numFieldType) (V : convextvsType R).
861+ Variable (A : pred V).
862+
863+ (*HB.instance Definition _ := GRing.Lmodule.on (subspace A). *)
864+
865+ HB.instance Definition _ := ConvexTvs.on (subspace A).
866+
867+ Check {linear_continuous (subspace A) -> R^o}.
868+
869+ End Substructures.
870+
871+ Module shouldnotwork.
872+ #[short(type="subConvextvsType")]
873+ HB.structure Definition SubConvexTvs (R : numDomainType) (V : convextvsType R)
874+ (S : pred V) :=
875+ { W of @GRing.SubLmodule R V S W (*& Subspace S W *) &
876+ @PreTopologicalLmod_isConvexTvs R W}.
877+
878+ Section testsub.
879+ Context (R : numDomainType) (V : convextvsType R) (W : subConvextvsType V).
880+
881+ Check (W : topologicalType). (* What is this topology *)
882+
883+ Lemma cval : continuous (val : W -> V).
884+ Proof .
885+ apply/continuousP => A oA.
886+ Abort .
887+
888+ End testsub.
889+ End shouldnotwork.
890+
891+
858892(* make use of {family fam, U -> V} *)
859893
894+
895+
896+
860897Section test.
861898
862899Import GRing.
0 commit comments