feat(Space): register NormedSpace ℝ (Space d) as a direct instance - #1678
Conversation
`Space d` only obtained `NormedSpace ℝ` as the projection `InnerProductSpace.toNormedSpace`, which typeclass search does not find when it arises as a nested subgoal, so instances such as `NormSMulClass ℝ (Space d →L[ℝ] ℝ)` and `ContinuousENorm (Space d →L[ℝ] ℝ)` were unreachable. Registering the same term as a direct instance fixes this; it is defeq at instance transparency to the projection and its module structure is the existing `Space.instModuleReal`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…artzMap_fderiv_integrable_slice_symm and integrable_fderiv_space With the direct `NormedSpace ℝ (Space d)` instance, `Integrable` of `Space d →L[ℝ] ℝ`-valued functions no longer needs a raised `maxSynthPendingDepth`: - `Space/ConstantSliceDist.lean`: `schwartzMap_fderiv_integrable_slice_symm`; - `TimeAndSpace/ConstantTimeDist.lean`: `integrable_fderiv_space`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thank you for this pull-request (PR). If this is your first PR, welcome to the community! Below is what will happen next. Please read carefully if you are not familiar with the process. You may open other PRs while this one is being reviewed, and can stack PRs on top of each other, so don't let these steps slow you down.
Tip: The easiest way to get have a fast review is to submit a PR that is small and self-contained, and has clear documentation explaining why things are the way they are in your chages. If you have any problems or questions, please reach out to the community on the Zulip. |
Typeclass search could not find the operator-norm structure on
Space d →L[ℝ] ℝ(e.g.NormSMulClass ℝ (Space d →L[ℝ] ℝ)): sinceSpace dhas a standaloneModuleinstance,NormedSpace ℝ (Space d)had to be synthesised as a postponed subgoal viaInnerProductSpace.toNormedSpace, which needs one more level of postponed synthesis than the defaultmaxSynthPendingDepthallows. Registering the instance directly (definitionally the same, cf. Mathlib's shortcut instances) fixes this and makes twoset_option maxSynthPendingDepth 10000workarounds unnecessary.Changes
Physlib/SpaceAndTime/Space/Module.lean: new instanceNormedSpace ℝ (Space d):=InnerProductSpace.toNormedSpace.Physlib/SpaceAndTime/Space/ConstantSliceDist.lean: dropset_option maxSynthPendingDepth 10000onschwartzMap_fderiv_integrable_slice_symm.Physlib/SpaceAndTime/TimeAndSpace/ConstantTimeDist.lean: dropset_option maxSynthPendingDepth 10000onintegrable_fderiv_space.No lemmas or definitions added or removed.
Reviewer map: the instance and its docstring in
Module.lean, then the two one-line deletions.🤖 Generated with Claude Code