-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat: abstract continuous functional calculus for unital algebras #5750
Conversation
I haven't looked at everything carefully, but this looks very promising. One thing I'm wondering is wether we could find a typeclass that would also encompass the Borel Functional Calculus, but that is probably too much to ask for. Quick questions:
|
No, I don't have an example. The Note: I am also keen to use the |
I spent some time thinking about how I would do this, here's a summary of my (untested!) ideas. Some of them are probably overkill but I still want to write them down somewhere, and I hope at least some of it will be useful. Also disclaimer that I'm probably not familiar enough with the material to avoid making some silly mistake, sorry in advance! My first and main idea is to have a class
Of course this doesn't allow for a lot of factoring in the actual mathematical content, because a lot of properties will only work for one functional calculus. But the point is that, for the user, it provides a more unified experience and less lemma names to remember (and less chance that we forget stating a result for only one of the calculi). The next step is figuring how to state and prove the spectrum and composition properties in this setup. I think from the user point of view, the most basic version would be to have the following two mixins:
This second idea is a way of systematizing the proofs of composition properties, either in the context of the aforementioned Again, this is probably overkill, but the semilinear maps API suggest that it is at least possible, and I wanted to write in completely somewhere if we decide to pick some ideas from it in the future. Footnotes:
|
Out of curiosity do you know a (studied) case where cfc isn't unique? |
@OmarMohsenGit I guess it depends on what you mean. Among functional calculi that people use, no, but if you take a non-compact set And I think the reason no one uses it if it isn't uniquely determined is that the composition property won't be provable (probably). I'm not sure whether this adequately answers your question or not. |
Since pretty much everything is named
Well, I was in favor of this solution pretty much from the start -- I'm glad Anatole found a concrete issue to make my vague concerns more substantial :-) |
Alright, I've switch to a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is my final review! We may be able to clean up some other things at some point, but this is looking great!
Final question: do we really want this file in the Topology
folder? I mean technically it doesn't mention any norm at all, but it feels like it should be in Analysis
, no?
induction q using Polynomial.induction_on with | ||
| h_C r => simp [cfc_const a r] | ||
| h_add q₁ q₂ hq₁ hq₂ => | ||
simp only [eval_add, map_add, ← hq₁, ← hq₂, cfc_add a (q₁.eval <| f ·) (q₂.eval <| f ·)] | ||
| h_monomial n r _ => | ||
simp only [eval_mul, eval_C, eval_pow, eval_X, map_mul, aeval_C, map_pow, aeval_X] | ||
rw [cfc_const_mul .., cfc_pow _ _ (n + 1), | ||
← smul_eq_mul, algebraMap_smul] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you add
open Polynomial in
lemma cfcHom_map_polynomial (q : R[X]) (f : C(spectrum R a, R)) :
cfcHom ha (aeval f q) = aeval (cfcHom ha f) q :=
.symm <| aeval_algHom_apply _ _ _
as well as
@[simp]
lemma ContinuousMap.aeval_apply {X R A : Type*} [CommSemiring R] [TopologicalSpace X]
[TopologicalSpace A] [CommSemiring A] [Algebra R A] [TopologicalSemiring A]
(f : C(X, A)) (q : R[X]) (x : X) :
aeval f q x = aeval (f x) q := by
rw [← coeFnAlgHom_apply R, ← aeval_algHom_apply]
-- note : aeval_fn_apply should be generalized to algebras
exact .symm <| aeval_algHom_apply (Pi.evalAlgHom R (fun _ ↦ A) x) _ _
you can do
induction q using Polynomial.induction_on with | |
| h_C r => simp [cfc_const a r] | |
| h_add q₁ q₂ hq₁ hq₂ => | |
simp only [eval_add, map_add, ← hq₁, ← hq₂, cfc_add a (q₁.eval <| f ·) (q₂.eval <| f ·)] | |
| h_monomial n r _ => | |
simp only [eval_mul, eval_C, eval_pow, eval_X, map_mul, aeval_C, map_pow, aeval_X] | |
rw [cfc_const_mul .., cfc_pow _ _ (n + 1), | |
← smul_eq_mul, algebraMap_smul] | |
rw [cfc_apply a _, cfc_apply a _, ← cfcHom_map_polynomial] | |
congr 1 | |
ext x | |
simp |
This can wait for another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! I'll wait for another PR just because ContinuousMap.aeval_apply
should go in a different file.
Co-authored-by: Anatole Dedecker <anatolededecker@gmail.com>
C⋆-algebras are just noncommutative topology, so I actually think we should move all of the C⋆-algebra material into the In all seriousness, I considered both ways. On the one hand, it makes more sense in |
I think creating an operator algebra folder is more logical but I am not experienced enough with mathlib. |
I think the folder doesn't matter too much at this point. We can always change it as we acquire more material. |
The discussion around eta-expansion was not competely settled but I think 1) for now we definitely want the extended versions for bors r+ Thanks a lot! 🎉 |
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
Build failed (retrying...): |
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
Pull request successfully merged into master. Build succeeded: |
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
) This PR introduces two classes `ContinuousFunctionalCalculus` and `UniqueContinuousFunctionalCalculus`. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an element `a : A`, into the algebra `A` itself, subject to the constraint that `a` satisfies a certain predicate `p : A → Prop`. These morphisms are continuous (even closed embeddings) and send the identity function to `a` itself, and moreover, the spectrum of the image of an element is its range. The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to `a`; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version for `ℝ≥0`-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus, `cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g`. This is one of the key properties of the continuous functional calculus that makes it useful.
This PR introduces two classes
ContinuousFunctionalCalculus
andUniqueContinuousFunctionalCalculus
. The former provides a collection of star algebra homomoprhisms from the continuous functions on the spectrum of an elementa : A
, into the algebraA
itself, subject to the constraint thata
satisfies a certain predicatep : A → Prop
. These morphisms are continuous (even closed embeddings) and send the identity function toa
itself, and moreover, the spectrum of the image of an element is its range.The latter class says that there is at most one such star algebra homomorphism which is continuous and maps the identity to
a
; in practice, this is a consequence of the Stone-Weierstrass theorem, but we create a separate class because we will also want a version forℝ≥0
-valued functions. This latter class is the key to establish the compositional property of the continuous functional calculus,cfc_comp : cfc a (g ∘ f) = cfc (cfc a f) g
. This is one of the key properties of the continuous functional calculus that makes it useful.Note to reviewers: this PR has been completely overhauled, so none of the messages / reviews prior to 2024-02-19 are relevant.
Also, any line labeled
-- hack
is there to makefun_prop
see through theautoParam
. This will be fixed in #10724.StarSubalgebra
API #5267Algebra ℝ A
instance givenAlgebra ℂ A
#8991ContinuousMap.compStarAlgHom
, postcomposition by aStarAlgHom
#8992fun_prop
attributes for continuity #10769