Normed vector types, infinite norm, norm equivalence thm, continuity …#1718
Normed vector types, infinite norm, norm equivalence thm, continuity …#1718Tragicus wants to merge 5 commits intomath-comp:masterfrom
Conversation
|
@mkerjean FYI |
|
99d840c is just a linting commit |
|
I was also wondering whether we should not try to extract the lemmas about bigmax (of non-negative terms using 0 as the default element) or try to use bigmax with |
99d840c to
994f950
Compare
1a0fa98 to
6f03a34
Compare
|
For example, |
c7c7aa1 to
e09f221
Compare
classical/unstable.v
Outdated
| Variable B : (\dim V').-tuple V. | ||
| Hypothesis Bbasis : basis_of V' B. | ||
|
|
||
| Definition max_norm x := \big[Order.max/0]_(i < \dim V') `|coord B i x|. |
There was a problem hiding this comment.
Inference of a Norm.type for max_norm fails because the instance requires B to be a basis. However, it feels wrong to me to add the hypothesis in the definition of max_norm. What do you think?
There was a problem hiding this comment.
What about adding the hypothesis "temporarily"? Just leave an issue to be addressed later or add a warning to indicate to the user that it is experimental. I apologize for proposing this option without understanding completely the problem but I was under the impression that other users (@mkerjean , @agontard) also have an interest in the abstraction.
There was a problem hiding this comment.
Uh oh... this is more than fishy! This definition does depend on a basis (and not only the fact that the given tuple is a basis) and is thus morally not a valid vector space definition, which ought to be invariant wrt to the choice of a basis, and this one is clearly not. This is exactly why this definition does depend on a choice of basis. What it does is build the (unique) normed space on top of V that makes the given basis normal. This means that max_norm is probably not the right name (it would be the case when given a function, finite function or tuple with values in a normed vector space), probably the right name is something like norm_from_basis B Bbasis and normedVect_from_basis B Basis .
There was a problem hiding this comment.
However we can do slightly better: indeed we can amend the given candidate B, keeping the smallest initial family that is generating, pruning it in order to make it free, completing it thus making a basis out of it. If B was indeed a basis, the tuple would stay the same, otherwise we have a non canonical normed vector space, but that's life. It can still be useful though, because if we give it a free family, the generated norm will be unique on the vector space generated by this family, which is what a user might expect. I believe this is the right way to go.
There was a problem hiding this comment.
We can probably go further and generate a Hilbert space :)
There was a problem hiding this comment.
No you do not have to assume B is generating, you can complete it to be generating. (I was tired when I wrote my previous messages)
There was a problem hiding this comment.
Ah, true, and in that case I might as well start from an empty B, i.e. get rid of B completely.
There was a problem hiding this comment.
No... please don't do that. 😿 we have to be able to provide a basis!
There was a problem hiding this comment.
We have to be able to mention a basis that is normed.
There was a problem hiding this comment.
Indeed it is not useful for your application, but it is nice to control which class of basis become normed.
To answer your other question the max_norm I had in mind would be the norm of a product of normed vector spaces, e.g. vT ^ i or more generally {dffun forall i : 'I_n, vT_ i} where vT_ : normedVectType^i.
…of linear functions in finite dimension
e09f221 to
58ea15c
Compare
|
I have rebased this PR on the current master and pushed force. There was a few conflicts because we recently generalized and moved a few lemmas from |
classical/unstable.v
Outdated
| Variables (K : numFieldType) (V : vectType K). | ||
| Let V' := @fullv _ V. |
There was a problem hiding this comment.
Convention is:
| Variables (K : numFieldType) (V : vectType K). | |
| Let V' := @fullv _ V. | |
| Variables (K : numFieldType) (vT : vectType K). | |
| Let V' := {:vT} |
And V' can be inlined.
Continuity of linear functions in finite dimension
Motivation for this change
Checklist
CHANGELOG_UNRELEASED.mdReference: How to document
Merge policy
As a rule of thumb:
all compile are preferentially merged into master.
Reminder to reviewers