refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove injectiveSeminorm#34137
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove injectiveSeminorm#34137goliath-klein wants to merge 8 commits intoleanprover-community:masterfrom
injectiveSeminorm#34137Conversation
`injectiveSeminorm` turned out to be extensionally equal to `projectiveSeminorm`. All results building on `injectiveSeminorm` were ported to use `projectiveSeminorm`.
PR summary d3153cf426Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
| Current number | Change | Type |
|---|---|---|
| 20 | 3 | disabled deprecation lints |
Current commit c2f8d1af25
Reference commit d3153cf426
You can run this locally as
./scripts/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
|
Please keep the file (with awaiting-author |
Thanks for the comment! Done. Notes:
-awaiting-author |
dupuisf
left a comment
There was a problem hiding this comment.
Wouldn't it be useful to keep the former definition of injectiveSeminorm around as an alternative characterization of the projective seminorm?
| @[simps!, deprecated "No replacement" (since := "2026-01-19")] | ||
| noncomputable def toDualContinuousMultilinearMap : (⨂[𝕜] i, E i) →ₗ[𝕜] | ||
| ContinuousMultilinearMap 𝕜 E F →L[𝕜] F where |
There was a problem hiding this comment.
Is this really useless now?
There was a problem hiding this comment.
You're right, that was premature.
Some version of the construction will definitely be needed. There's a much shorter definition at the WIP PR, which directly gives a continuous linear map. But it isn't yet clear whether this will make the linear version redundant. I have therefore removed to deprecation note for now.
|
Thanks! To better address the comments, let me add some material over at the WIP PR. awaiting-author |
One could do that. In this case, one should prove the equivalence of the characterization directly rather than rely on the old code. Over at the WIP PR, I've included a concise proof as Arguments in favor:
Arguments against (in the language of the PR description at the top):
Either way is fine by me. What do you think? In any case, I think it makes sense to proceed step by step. This PR removes the duplicate definition and ports the existing results to -awaiting-author |
| deprecated_module | ||
| "https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633" | ||
| (since := "2026-01-19") |
There was a problem hiding this comment.
I don't think this is the correct thing to do here? There's a lot of this file that isn't being deprecated.
There was a problem hiding this comment.
Later if you want to deprecate this file, you should move things out first, I think.
|
It seems this PR is doing two things at the same time: modifying things in projective seminorms, and then deprecating all the stuff about injective seminorms. To make this easier to review, can you please separate the part that refactors the projective seminorm, and then make a second PR doing the deprecations, linking to the first one and the zulip discussion? This way, the second PR would be an easy merge. Or was the point that the changes in the projective seminorms are breaking proofs in the injective ones? |
Co-authored-by: Thomas Browning <tb65536@users.noreply.github.com>
|
Thanks, Robin, Thomas for your comments. Let me try to disentangle things. Current status:
Short-term goal (this PR):
Mid-term goal (WIP):
With this in mind, the following considerations went into this PR:
Options for proceeding:
|
|
-awaiting-author |
|
Also, maybe I should say more clearly that It is thus very unlikely that any downstream project builds on it: Anyone who wanted to use it would have realized that it doesn't do what it says on the tin (as happened to us). This also means that the details of the deprecation strategy might not be as relevant in this case as they would generally be. |
|
But presumably you could do the deprecation in one PR, and then make the changes to |
|
@tb65536: One issue would be that there are plenty of definitions that are currently stated in terms of Zooming out, do I understand everyone's comments correctly as saying that it would be helpful if the PR got split into smaller and less noisy pieces? If so, I could split it up like this:
Would that be helpful? |
|
Yes, that sort of splitting up would be helpful if possible. |
Currently,
injectiveSeminormis extensionally equal toprojectiveSeminorm. Both implement what is commonly called the "projective tensor norm".Background
(C.f. [Diestel et al.]). On the algebraic tensor product of two Banach spaces X, Y, there are two distinguished norms. First the projective norm, or "largest reasonable crossnorm". Two equivalent expressions for it are:
(L1)
‖u‖_∧ = sup { sum_i ‖x_i‖ ‖y_i‖ | sum_i x_i ⊗ y_i = u },(L2)
‖u‖_∧ = norm of the linear map that sends b : B(X,Y; 𝕂) to (lift b) u,where
B(X,Y; Z)is the set of bounded bilinear maps into a normed spaceZ.Second, there is the injective norm, or "smallest reasonable crossnorm":
(S)
‖u‖_∨= norm of the bilinear map that sendsf : X', g : Y'to(f⊗g) u.Mathlib
The formalization treats tensor products of seminormed spaces over normed fields. In this context,
projectiveSeminormimplements (L1). ButinjectiveSeminorm udoesn't implement (S), but the following variant of (L2):(L2')
sup_Z { norm of map sending b : B(X,Y; Z) to (lift b) u }.In fact,
injectiveSeminorm = projectiveSeminorm. The upper bound is proven in Mathlib. Equality is attained (somewhat tautologically) by choosingZto beX ⊗ Yendowed with the projective seminorm.projectiveSeminormis defined first;injectiveSeminormbuilds on it. Then the theory of an isometric version ofPiTensorProduct.liftis based oninjectiveSeminorm.Proposed change
This PR deprecates
injectiveSeminormand ports all applications to (L1). This doesn't actually require too much work, leads to the same mathematical theory, and significantly reduces complexity (and potential for confusion!).There is a companion PR which formalizes the equality of the current definitions and has a WIP / RFC implementation of the injective seminorm as commonly understood.
Deprecations:
Co-authored-by: Davood H. H. Tehrani