Module mathcomp.analysis.normedtype_theory.tvs
From HB Require Import structures.From mathcomp Require Import boot order ssralg ssrnum vector.
From mathcomp Require Import interval_inference finmap.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp classical_sets functions cardinality.
From mathcomp Require Import convex set_interval reals topology.
From mathcomp Require Import initial_topology num_normedtype.
From mathcomp Require Import pseudometric_normed_Zmodule.
Reserved Notation "'{' 'linear_continuous' U '->' V '|' s '}'"
(at level 0, U at level 98, V at level 99,
format "{ 'linear_continuous' U -> V | s }").
Reserved Notation "'{' 'linear_continuous' U '->' V '}'"
(at level 0, U at level 98, V at level 99,
format "{ 'linear_continuous' U -> V }").
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
Import numFieldTopology.Exports.
Local Open Scope classical_set_scope.
Local Open Scope ring_scope.
Section absolutely_convex.
Context {KSource code : numDomainType} {VSource code : lmodType K}.
Implicit Type A : set V.
Definition balanced_set
balanced_set : forall {K : numDomainType} {V : lmodType K}, set V -> Prop balanced_set is not universe polymorphic Arguments balanced_set {K V} A%_classical_set_scope balanced_set is transparent Expands to: Constant mathcomp.analysis.normedtype_theory.tvs.balanced_set Declared in library mathcomp.analysis.normedtype_theory.tvs, line 125, characters 11-23
Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code ASource code := forall rSource code, `|r| <= 1 -> ( *:%R r) @` A `<=` A.
Definition absolutely_convex_set
absolutely_convex_set : forall {K : numDomainType} {V : lmodType K}, set V -> Prop absolutely_convex_set is not universe polymorphic Arguments absolutely_convex_set {K V} A%_classical_set_scope absolutely_convex_set is transparent Expands to: Constant mathcomp.analysis.normedtype_theory.tvs.absolutely_convex_set Declared in library mathcomp.analysis.normedtype_theory.tvs, line 127, characters 11-32
Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code ASource code := convex_set A /\ balanced_set A.
Lemma absolutely_convex0Source code ASource code : A !=set0 -> absolutely_convex_set A -> A 0.
Proof.
Definition absorbing_set
absorbing_set : forall {K : numDomainType} {V : lmodType K}, set V -> Prop absorbing_set is not universe polymorphic Arguments absorbing_set {K V} A%_classical_set_scope absorbing_set is transparent Expands to: Constant mathcomp.analysis.normedtype_theory.tvs.absorbing_set Declared in library mathcomp.analysis.normedtype_theory.tvs, line 135, characters 11-24
Source code ASource code := forall xSource code : V, exists2 rSource code, 0 < r & r *: x \in A.
End absolutely_convex.
Lemma absolutely_convex_setXSource code (KSource code : numDomainType) (ESource code FSource code : lmodType K)
(ASource code : set E) (BSource code : set F) :
absolutely_convex_set A -> absolutely_convex_set B ->
absolutely_convex_set (A `*` B).
Proof.
- move => [x1 y1] [x2 y2] l /[!inE] /= -[Ax1 By1] [Ax2 By2]; split.
+ by apply/set_mem/convA; exact/mem_set.
+ by apply/set_mem/convB; exact/mem_set.
- move=> r r1 [x1 y1] [[x2 y2]]/= [Ax2 By2] [] <- <-; split.
+ by apply/balA; [exact: r1|exists x2].
+ by apply/balB; [exact: r1|exists y2].
Qed.
HBSource code.structureSource code DefinitionSource code NbhsLmoduleSource code (KSource code :Source code numDomainTypeSource code) :=
{MSource code of Nbhs M & GRing.Lmodule K M}.
#[shortSource code(type=Source code"preTopologicalLmodType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code PreTopologicalLmoduleSource code (KSource code :Source code numDomainTypeSource code) :=
{MSource code of Topological M & GRing.Lmodule K M}.
Section properties_of_preTopologicalLmodule.
Context (RSource code : numDomainType) (ESource code : preTopologicalLmodType R) (USource code : set E).
Lemma nbhsN_subproofSource code (fSource code : continuous (fun zSource code : R^o * E => z.1 *: z.2)) (xSource code : E) :
nbhs x U -> nbhs (-x) (-%R @` U).
Proof.
Lemma nbhs0N_subproofSource code (fSource code : continuous (fun zSource code : R^o * E => z.1 *: z.2)) :
nbhs 0 U -> nbhs 0 (-%R @` U).
Proof.
Lemma nbhsD_subproofSource code (fSource code : continuous (fun xSource code : E * E => x.1 + x.2)) (xSource code : E) :
nbhs 0 U -> nbhs x (+%R x @` U).
Proof.
Lemma nbhsB_subproofSource code (fSource code : continuous (fun xSource code : E * E => x.1 + x.2)) (zSource code xSource code : E) :
nbhs z U -> nbhs (x + z) (+%R x @` U).
Proof.
End properties_of_preTopologicalLmodule.
HBSource code.mixinSource code RecordSource code TopologicalZmodule_isTopologicalLmoduleSource code (RSource code :Source code numDomainTypeSource code) M
& PreTopologicalLmodule R M := {
scale_continuous : continuous (fun zSource code : R^o * M => z.1 *: z.2)
}.
#[shortSource code(type=Source code"topologicalLmodType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code TopologicalLmoduleSource code (KSource code :Source code numDomainTypeSource code) :=
{MSource code of TopologicalZmodule M & GRing.Lmodule K M
& TopologicalZmodule_isTopologicalLmodule K M}.
Section TopologicalLmodule_theory.
Context {RSource code : numFieldType} (ESource code : topologicalLmodType R).
Lemma fun_cvgZSource code (TSource code : Type) (USource code : set_system T) {FFSource code : Filter U} (lSource code : T -> R)
(fSource code : T -> E) (rSource code : R) aSource code :
l @ U --> r -> f @ U --> a ->
l x *: f x @[xSource code --> U] --> r *: a.
Proof.
Lemma fun_cvgZrSource code (TSource code : Type) (USource code : set_system T) {FFSource code : Filter U} kSource code (fSource code : T -> E) aSource code :
f @ U --> a -> k \*: f @ U --> k *: a.
Lemma nbhs0ZSource code (USource code : set E) (rSource code : R) : r != 0 -> nbhs 0 U -> nbhs 0 ( *:%R r @` U ).
Proof.
Lemma nbhsZSource code (USource code : set E) (rSource code : R) (xSource code :E) :
r != 0 -> nbhs x U -> nbhs (r *:x) ( *:%R r @` U ).
Proof.
End TopologicalLmodule_theory.
Section TopologicalLmodule_numDomain.
Context {RSource code : numDomainType} (ESource code : topologicalLmodType R).
Lemma nbhs0NSource code (USource code : set E) : nbhs 0 U -> nbhs 0 (-%R @` U).
Proof.
Lemma nbhsD0Source code (USource code : set E) (xSource code : E) : nbhs 0 U -> nbhs x (+%R x @` U).
Proof.
Lemma nbhsDSource code (USource code : set E) (zSource code xSource code : E) : nbhs z U -> nbhs (x + z) (+%R x @` U).
Proof.
Lemma openDSource code (VSource code : set E) (xSource code : E) : open V -> open (+%R x @` V).
Proof.
Lemma openBSource code (VSource code : set E) (xSource code : E) : open (+%R x @` V) -> open V.
Proof.
Lemma nbhsE0Source code (xSource code : E) (bSource code : set E): nbhs x b <-> b x /\
exists2 aSource code, nbhs 0 a & [set x + x0 | x0Source code in a] `<=` b.
Proof.
End TopologicalLmodule_numDomain.
Section TopologicalLmodule_numField.
Lemma openZSource code (RSource code : numFieldType) (ESource code : topologicalLmodType R) (USource code : set E) (rSource code : R) :
r != 0 -> open U -> open ( *:%R r @` U ).
Proof.
End TopologicalLmodule_numField.
Section TopologicalLmodule_theory.
Context {ESource code : Type} {RSource code : numFieldType} {FSource code GSource code : topologicalLmodType R}.
Lemma continuousfor0_continuousUsed by
- mathcomp.analysis.functional_analysis.hahn_banach_theorem
Source code (fSource code : {linear F -> G}) :
{for 0, continuous f} -> continuous f.
Proof.
suff: (f y - f x)@[ySource code --> x] --> (0 : G).
have -> : (fun ySource code => f y - f x) = (fun ySource code => f (y - x)).
by apply/funext => y; rewrite linearB.
move=> fxfy /= A nA /=.
pose B := [set y - f x | ySource code in A].
have /fxfy : nbhs 0 B.
have -> : B = (+%R^~ (- (- f x))) @^-1` A.
rewrite opprK; apply/seteqP; split.
by move=> y [/= g Ag <-]; rewrite subrK.
move=> g/= Agfx; eexists; first exact: Agfx.
by rewrite addrK.
have:= @continuous_shift _ (0 : G) (f x) A.
by rewrite opprK add0r => /(_ nA); exact.
rewrite /nbhs /=; apply/filterS => z /=; rewrite /B /=.
by move=> [y Ay]; rewrite linearB => /subIr <-.
have -> : (fun ySource code => f y - f x) = (fun ySource code => f (y - x)).
by apply/funext => y; rewrite linearB.
apply: cvg_comp; last by rewrite -(linear0 f); exact: cont0.
by move => A nA /=; apply: continuous_shift; rewrite subrr.
Qed.
End TopologicalLmodule_theory.
Section topologicalLmodType_realFieldType.
Context {RSource code : realFieldType} {ESource code : topologicalLmodType R}.
Implicit Type x : E.
Lemma continuousZlSource code xSource code (sSource code : R) : {for s, continuous (fun tSource code : R^o => t *: x)}.
Proof.
apply: continuous_comp; last exact: scale_continuous.
exact: (@cvg_pair _ _ _ _ (nbhs s)).
Qed.
Lemma continuousZrSource code xSource code (sSource code : R) : {for x, continuous (fun ySource code : E => s *: y)}.
Proof.
apply: continuous_comp; last exact: scale_continuous.
exact: (@cvg_pair _ _ _ _ (nbhs s)).
Qed.
End topologicalLmodType_realFieldType.
HBSource code.factorySource code RecordSource code TopologicalNmodule_isTopologicalLmoduleSource code (RSource code :Source code numDomainTypeSource code) M
& PreTopologicalLmodule R M := {
scale_continuous : continuous (fun zSource code : R^o * M => z.1 *: z.2) }.
HBSource code.buildersSource code ContextSource code RSource code MSource code &Source code TopologicalNmodule_isTopologicalLmoduleSource code R M.
Let opp_continuousSource code : continuous (-%R : M -> M).
Proof.
rewrite -(@eq_cvg _ _ _ (fun xSource code => -1 *: x)); first by move=> y; rewrite scaleN1r.
rewrite -[- x]scaleN1r.
apply: (@continuous_comp M (R^o * M)%type M (fun xSource code => (-1, x))
(fun xSource code => x.1 *: x.2)); last exact: scale_continuous.
by apply: (@cvg_pair _ _ _ _ (nbhs (-1 : R^o))); [exact: cvg_cst|exact: cvg_id].
Qed.
#[warning=Source code"-HB.no-new-instance"Source code]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code
TopologicalNmodule_isTopologicalZmodule.Build M opp_continuous.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code
TopologicalZmodule_isTopologicalLmodule.Build R M scale_continuous.
HBSource code.endSource code.
HBSource code.mixinSource code RecordSource code Uniform_isConvexTvsSource code (RSource code :Source code numDomainTypeSource code) E
& Uniform E & GRing.Lmodule R E := {
locally_convex : exists2 BSource code : set_system E,
(forall bSource code, b \in B -> absolutely_convex_set b) & (nbhs_basis 0) B
}.
#[shortUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code(type=Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code"convexTvsType"Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code)]Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code
HBUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code.structureUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code DefinitionUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code ConvexTvsUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code (RUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code :Used by
- mathcomp.analysis.normedtype_theory.normed_module
Source code numDomainTypeUsed by
- mathcomp.analysis.normedtype_theory.normed_module
Source code) :=
{ESource code of Uniform_isConvexTvs R E & UniformZmodule E & TopologicalLmodule R E}.
HBSource code.mixinSource code RecordSource code isSubConvexSpaceSource code (RSource code :Source code numDomainTypeSource code) (V : convType R)
(S : pred V) U & SubChoice V S U & ConvexSpace R U := {
valconv : forall (tSource code : {i01 R}) (aSource code bSource code : U), val (conv t a b) = conv t (val a) (val b)
}.
#[shortSource code(type=Source code"subConvType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code SubConvexSpaceSource code (RSource code :Source code numDomainTypeSource code) (V : convType R) S :=
{ USource code of SubChoice V S U & ConvexSpace R U & isSubConvexSpace R V S U }.