Skip to content

[Merged by Bors] - refactor(Analysis/Normed/Module/Dual): Abbrev for strong dual#27699

Closed
mans0954 wants to merge 74 commits intoleanprover-community:masterfrom
mans0954:mans0954/topological-dual
Closed

[Merged by Bors] - refactor(Analysis/Normed/Module/Dual): Abbrev for strong dual#27699
mans0954 wants to merge 74 commits intoleanprover-community:masterfrom
mans0954:mans0954/topological-dual

Conversation

@mans0954
Copy link
Copy Markdown
Collaborator

@mans0954 mans0954 commented Jul 30, 2025

Replace NormedSpace.Dual with StrongDual.

  • Add a new abbreviation StrongDual for M →L[R] R where the monoid M is a module over the semiring R and R and M are equipped with topologies;
  • Remove the abbreviation NormedSpace.Dual and replace every reference to it with StrongDual;
  • Move results which do not depend on a norm from Analysis/Normed/Module/Dual to a new file Topology/Algebra/Module/StrongDual and move them from the NormedSpace namespace to the StrongDual namespace;
  • Move results which do not depend on a norm from the NormedSpace namespace in Analysis/Normed/Module/WeakDual to a new section at the start of that file in the StrongDual namespace;
  • Add deprecated aliases for renamed results.

Discussion: https://github.com/leanprover-community/mathlib4/pull/26345/files#r2234132483


Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jul 30, 2025

PR summary bcf7be34e6

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.Analysis.InnerProductSpace.Dual 1964 1952 -12 (-0.61%)
Mathlib.Analysis.InnerProductSpace.Adjoint 2039 2029 -10 (-0.49%)
Mathlib.Analysis.VonNeumannAlgebra.Basic 2042 2032 -10 (-0.49%)
Mathlib.MeasureTheory.Function.AEEqOfIntegral 2186 2180 -6 (-0.27%)
Mathlib.Probability.Moments.CovarianceBilin 2258 2252 -6 (-0.27%)
Import changes for all files
Files Import difference
3 files Mathlib.Analysis.Calculus.Gradient.Basic Mathlib.Analysis.InnerProductSpace.Dual Mathlib.Analysis.InnerProductSpace.LaxMilgram
-12
19 files Mathlib.Analysis.CStarAlgebra.ContinuousLinearMap Mathlib.Analysis.CStarAlgebra.Matrix Mathlib.Analysis.InnerProductSpace.Adjoint Mathlib.Analysis.InnerProductSpace.JointEigenspace Mathlib.Analysis.InnerProductSpace.LinearPMap Mathlib.Analysis.InnerProductSpace.Positive Mathlib.Analysis.InnerProductSpace.Rayleigh Mathlib.Analysis.InnerProductSpace.Spectrum Mathlib.Analysis.InnerProductSpace.Trace Mathlib.Analysis.InnerProductSpace.TwoDim Mathlib.Analysis.VonNeumannAlgebra.Basic Mathlib.Combinatorics.SimpleGraph.LapMatrix Mathlib.Geometry.Euclidean.Angle.Oriented.Basic Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation Mathlib.LinearAlgebra.Matrix.HermitianFunctionalCalculus Mathlib.LinearAlgebra.Matrix.LDL Mathlib.LinearAlgebra.Matrix.PosDef Mathlib.LinearAlgebra.Matrix.SchurComplement Mathlib.LinearAlgebra.Matrix.Spectrum
-10
6 files Mathlib.Geometry.Euclidean.Angle.Oriented.Affine Mathlib.Geometry.Euclidean.Angle.Oriented.RightAngle Mathlib.Geometry.Euclidean.Angle.Sphere Mathlib.Geometry.Euclidean.Congruence Mathlib.Geometry.Euclidean.Sphere.Ptolemy Mathlib.Geometry.Euclidean.Triangle
-9
Mathlib.Analysis.Convex.Cone.InnerDual Mathlib.Analysis.InnerProductSpace.WeakOperatorTopology -7
54 files Mathlib.MeasureTheory.Function.AEEqOfIntegral Mathlib.MeasureTheory.Function.ConditionalExpectation.Basic Mathlib.MeasureTheory.Function.ConditionalExpectation.CondexpL1 Mathlib.MeasureTheory.Function.ConditionalExpectation.CondexpL2 Mathlib.MeasureTheory.Function.ConditionalExpectation.Indicator Mathlib.MeasureTheory.Function.ConditionalExpectation.Real Mathlib.MeasureTheory.Function.ConditionalExpectation.Unique Mathlib.MeasureTheory.Function.FactorsThrough Mathlib.MeasureTheory.VectorMeasure.Decomposition.Lebesgue Mathlib.MeasureTheory.VectorMeasure.Decomposition.RadonNikodym Mathlib.MeasureTheory.VectorMeasure.WithDensity Mathlib.Probability.BorelCantelli Mathlib.Probability.CDF Mathlib.Probability.CondVar Mathlib.Probability.ConditionalExpectation Mathlib.Probability.Distributions.Uniform Mathlib.Probability.HasLaw Mathlib.Probability.IdentDistrib Mathlib.Probability.Independence.Conditional Mathlib.Probability.Independence.Integration Mathlib.Probability.Independence.ZeroOne Mathlib.Probability.Integration Mathlib.Probability.Kernel.CompProdEqIff Mathlib.Probability.Kernel.Composition.AbsolutelyContinuous Mathlib.Probability.Kernel.CondDistrib Mathlib.Probability.Kernel.Condexp Mathlib.Probability.Kernel.Disintegration.CDFToKernel Mathlib.Probability.Kernel.Disintegration.CondCDF Mathlib.Probability.Kernel.Disintegration.Density Mathlib.Probability.Kernel.Disintegration.Integral Mathlib.Probability.Kernel.Disintegration.StandardBorel Mathlib.Probability.Kernel.Disintegration.Unique Mathlib.Probability.Kernel.Posterior Mathlib.Probability.Kernel.RadonNikodym Mathlib.Probability.Martingale.Basic Mathlib.Probability.Martingale.BorelCantelli Mathlib.Probability.Martingale.Centering Mathlib.Probability.Martingale.Convergence Mathlib.Probability.Martingale.OptionalSampling Mathlib.Probability.Martingale.OptionalStopping Mathlib.Probability.Martingale.Upcrossing Mathlib.Probability.Moments.Basic Mathlib.Probability.Moments.CovarianceBilin Mathlib.Probability.Moments.Covariance Mathlib.Probability.Moments.Variance Mathlib.Probability.Notation Mathlib.Probability.Process.Adapted Mathlib.Probability.Process.Filtration Mathlib.Probability.Process.FiniteDimensionalLaws Mathlib.Probability.Process.HittingTime Mathlib.Probability.Process.PartitionFiltration Mathlib.Probability.Process.Stopping Mathlib.Probability.StrongLaw Mathlib.Probability.Variance
-6
10 files Mathlib.Analysis.Calculus.Rademacher Mathlib.Analysis.Convex.Integral Mathlib.Analysis.Distribution.AEEqOfIntegralContDiff Mathlib.Analysis.Fourier.RiemannLebesgueLemma Mathlib.InformationTheory.KullbackLeibler.Basic Mathlib.InformationTheory.KullbackLeibler.KLFun Mathlib.MeasureTheory.Measure.Decomposition.IntegralRNDeriv Mathlib.Probability.Independence.InfinitePi Mathlib.Probability.Kernel.IonescuTulcea.Traj Mathlib.Probability.ProductMeasure
-5
198 files Mathlib.Analysis.CStarAlgebra.ApproximateUnit Mathlib.Analysis.CStarAlgebra.CStarMatrix Mathlib.Analysis.CStarAlgebra.CompletelyPositiveMap Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Basic Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Continuity Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Integral Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Isometric Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Order Mathlib.Analysis.CStarAlgebra.GelfandDuality Mathlib.Analysis.CStarAlgebra.Hom Mathlib.Analysis.CStarAlgebra.Module.Constructions Mathlib.Analysis.CStarAlgebra.Module.Defs Mathlib.Analysis.CStarAlgebra.PositiveLinearMap Mathlib.Analysis.CStarAlgebra.Projection Mathlib.Analysis.CStarAlgebra.SpecialFunctions.PosPart Mathlib.Analysis.CStarAlgebra.Spectrum Mathlib.Analysis.Calculus.LineDeriv.IntegrationByParts Mathlib.Analysis.Complex.AbsMax Mathlib.Analysis.Complex.CauchyIntegral Mathlib.Analysis.Complex.Hadamard Mathlib.Analysis.Complex.Liouville Mathlib.Analysis.Complex.LocallyUniformLimit Mathlib.Analysis.Complex.MeanValue Mathlib.Analysis.Complex.OpenMapping Mathlib.Analysis.Complex.Periodic Mathlib.Analysis.Complex.PhragmenLindelof Mathlib.Analysis.Complex.Polynomial.Basic Mathlib.Analysis.Complex.Polynomial.UnitTrinomial Mathlib.Analysis.Complex.Positivity Mathlib.Analysis.Complex.RemovableSingularity Mathlib.Analysis.Complex.Schwarz Mathlib.Analysis.Complex.TaylorSeries Mathlib.Analysis.Complex.UpperHalfPlane.Exp Mathlib.Analysis.Complex.UpperHalfPlane.Manifold Mathlib.Analysis.Complex.ValueDistribution.CharacteristicFunction Mathlib.Analysis.Complex.ValueDistribution.FirstMainTheorem Mathlib.Analysis.Complex.ValueDistribution.ProximityFunction Mathlib.Analysis.Distribution.FourierSchwartz Mathlib.Analysis.Distribution.SchwartzSpace Mathlib.Analysis.Fourier.AddCircleMulti Mathlib.Analysis.Fourier.AddCircle Mathlib.Analysis.Fourier.FourierTransformDeriv Mathlib.Analysis.Fourier.Inversion Mathlib.Analysis.Fourier.PoissonSummation Mathlib.Analysis.Fourier.ZMod Mathlib.Analysis.FunctionalSpaces.SobolevInequality Mathlib.Analysis.InnerProductSpace.Harmonic.Analytic Mathlib.Analysis.InnerProductSpace.Harmonic.Constructions Mathlib.Analysis.InnerProductSpace.StarOrder Mathlib.Analysis.MellinInversion Mathlib.Analysis.MellinTransform Mathlib.Analysis.Meromorphic.Complex Mathlib.Analysis.Normed.Algebra.Basic Mathlib.Analysis.Normed.Algebra.Spectrum Mathlib.Analysis.Normed.Module.Dual Mathlib.Analysis.Normed.Module.WeakDual Mathlib.Analysis.NormedSpace.MultipliableUniformlyOn Mathlib.Analysis.ODE.PicardLindelof Mathlib.Analysis.SpecialFunctions.Complex.Analytic Mathlib.Analysis.SpecialFunctions.Complex.Arctan Mathlib.Analysis.SpecialFunctions.Complex.CircleAddChar Mathlib.Analysis.SpecialFunctions.Complex.LogBounds Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.PosPart.Isometric Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.Basic Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.IntegralRepresentation Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.Isometric Mathlib.Analysis.SpecialFunctions.Gamma.Basic Mathlib.Analysis.SpecialFunctions.Gamma.Beta Mathlib.Analysis.SpecialFunctions.Gamma.BohrMollerup Mathlib.Analysis.SpecialFunctions.Gamma.Deligne Mathlib.Analysis.SpecialFunctions.Gamma.Deriv Mathlib.Analysis.SpecialFunctions.Gaussian.FourierTransform Mathlib.Analysis.SpecialFunctions.Gaussian.GaussianIntegral Mathlib.Analysis.SpecialFunctions.Gaussian.PoissonSummation Mathlib.Analysis.SpecialFunctions.ImproperIntegrals Mathlib.Analysis.SpecialFunctions.Integrability.Basic Mathlib.Analysis.SpecialFunctions.Integrability.LogMeromorphic Mathlib.Analysis.SpecialFunctions.Integrals.Basic Mathlib.Analysis.SpecialFunctions.Integrals.LogTrigonometric Mathlib.Analysis.SpecialFunctions.Integrals.PosLogEqCircleAverage Mathlib.Analysis.SpecialFunctions.JapaneseBracket Mathlib.Analysis.SpecialFunctions.Log.Summable Mathlib.Analysis.SpecialFunctions.MulExpNegMulSqIntegral Mathlib.Analysis.SpecialFunctions.NonIntegrable Mathlib.Analysis.SpecialFunctions.Pow.Integral Mathlib.Analysis.SpecialFunctions.Stirling Mathlib.Analysis.SpecialFunctions.Trigonometric.Cotangent Mathlib.Analysis.SpecialFunctions.Trigonometric.EulerSineProd Mathlib.Data.Real.Pi.Irrational Mathlib.Data.Real.Pi.Leibniz Mathlib.Data.Real.Pi.Wallis Mathlib.Geometry.Manifold.Complex Mathlib.Geometry.Manifold.IntegralCurve.ExistUnique Mathlib.Geometry.Manifold.IntegralCurve.UniformTime Mathlib.Geometry.Manifold.Riemannian.Basic Mathlib.MeasureTheory.Constructions.HaarToSphere Mathlib.MeasureTheory.Integral.CircleAverage Mathlib.MeasureTheory.Integral.CircleIntegral Mathlib.MeasureTheory.Integral.CircleTransform Mathlib.MeasureTheory.Integral.ExpDecay Mathlib.MeasureTheory.Integral.FundThmCalculus Mathlib.MeasureTheory.Integral.Gamma Mathlib.MeasureTheory.Integral.IntegralEqImproper Mathlib.MeasureTheory.Integral.IntegrationByParts Mathlib.MeasureTheory.Integral.IntervalIntegral.ContDiff Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus Mathlib.MeasureTheory.Integral.IntervalIntegral.IntegrationByParts Mathlib.MeasureTheory.Integral.IntervalIntegral Mathlib.MeasureTheory.Integral.PeakFunction Mathlib.MeasureTheory.Integral.TorusIntegral Mathlib.MeasureTheory.Measure.CharacteristicFunction Mathlib.MeasureTheory.Measure.FiniteMeasureExt Mathlib.MeasureTheory.Measure.IntegralCharFun Mathlib.MeasureTheory.Measure.Lebesgue.VolumeOfBalls Mathlib.NumberTheory.AbelSummation Mathlib.NumberTheory.Cyclotomic.Embeddings Mathlib.NumberTheory.Cyclotomic.PID Mathlib.NumberTheory.Cyclotomic.Three Mathlib.NumberTheory.DirichletCharacter.GaussSum Mathlib.NumberTheory.EulerProduct.DirichletLSeries Mathlib.NumberTheory.FLT.Three Mathlib.NumberTheory.Fermat Mathlib.NumberTheory.GaussSum Mathlib.NumberTheory.Harmonic.Bounds Mathlib.NumberTheory.Harmonic.GammaDeriv Mathlib.NumberTheory.Harmonic.ZetaAsymp Mathlib.NumberTheory.JacobiSum.Basic Mathlib.NumberTheory.LSeries.AbstractFuncEq Mathlib.NumberTheory.LSeries.Deriv Mathlib.NumberTheory.LSeries.DirichletContinuation Mathlib.NumberTheory.LSeries.Dirichlet Mathlib.NumberTheory.LSeries.HurwitzZetaEven Mathlib.NumberTheory.LSeries.HurwitzZetaOdd Mathlib.NumberTheory.LSeries.HurwitzZetaValues Mathlib.NumberTheory.LSeries.HurwitzZeta Mathlib.NumberTheory.LSeries.MellinEqDirichlet Mathlib.NumberTheory.LSeries.Nonvanishing Mathlib.NumberTheory.LSeries.Positivity Mathlib.NumberTheory.LSeries.PrimesInAP Mathlib.NumberTheory.LSeries.RiemannZeta Mathlib.NumberTheory.LSeries.SumCoeff Mathlib.NumberTheory.LSeries.ZMod Mathlib.NumberTheory.LegendreSymbol.AddCharacter Mathlib.NumberTheory.LegendreSymbol.JacobiSymbol Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum Mathlib.NumberTheory.LegendreSymbol.QuadraticReciprocity Mathlib.NumberTheory.ModularForms.Basic Mathlib.NumberTheory.ModularForms.EisensteinSeries.Basic Mathlib.NumberTheory.ModularForms.EisensteinSeries.MDifferentiable Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds Mathlib.NumberTheory.ModularForms.JacobiTheta.Manifold Mathlib.NumberTheory.ModularForms.JacobiTheta.OneVariable Mathlib.NumberTheory.ModularForms.JacobiTheta.TwoVariable Mathlib.NumberTheory.ModularForms.LevelOne Mathlib.NumberTheory.ModularForms.QExpansion Mathlib.NumberTheory.NumberField.AdeleRing Mathlib.NumberTheory.NumberField.CMField Mathlib.NumberTheory.NumberField.CanonicalEmbedding.Basic Mathlib.NumberTheory.NumberField.CanonicalEmbedding.ConvexBody Mathlib.NumberTheory.NumberField.CanonicalEmbedding.FundamentalCone Mathlib.NumberTheory.NumberField.CanonicalEmbedding.NormLeOne Mathlib.NumberTheory.NumberField.CanonicalEmbedding.PolarCoord Mathlib.NumberTheory.NumberField.ClassNumber Mathlib.NumberTheory.NumberField.Completion Mathlib.NumberTheory.NumberField.DedekindZeta Mathlib.NumberTheory.NumberField.Discriminant.Basic Mathlib.NumberTheory.NumberField.Embeddings Mathlib.NumberTheory.NumberField.EquivReindex Mathlib.NumberTheory.NumberField.FinitePlaces Mathlib.NumberTheory.NumberField.House Mathlib.NumberTheory.NumberField.Ideal.Asymptotics Mathlib.NumberTheory.NumberField.Ideal.Basic Mathlib.NumberTheory.NumberField.Ideal Mathlib.NumberTheory.NumberField.InfinitePlace.Basic Mathlib.NumberTheory.NumberField.InfinitePlace.Embeddings Mathlib.NumberTheory.NumberField.InfinitePlace.Ramification Mathlib.NumberTheory.NumberField.InfinitePlace.TotallyRealComplex Mathlib.NumberTheory.NumberField.ProductFormula Mathlib.NumberTheory.NumberField.Units.Basic Mathlib.NumberTheory.NumberField.Units.DirichletTheorem Mathlib.NumberTheory.NumberField.Units.Regulator Mathlib.NumberTheory.Transcendental.Lindemann.AnalyticalPart Mathlib.NumberTheory.ZetaValues Mathlib.Probability.Distributions.Exponential Mathlib.Probability.Distributions.Gamma Mathlib.Probability.Distributions.Gaussian.Basic Mathlib.Probability.Distributions.Gaussian.Real Mathlib.Probability.Distributions.Gaussian Mathlib.Probability.Distributions.Pareto Mathlib.Probability.Moments.ComplexMGF Mathlib.Probability.Moments.MGFAnalytic Mathlib.Probability.Moments.SubGaussian Mathlib.Probability.Moments.Tilted Mathlib.RingTheory.Polynomial.Selmer Mathlib.Tactic.NormNum.LegendreSymbol Mathlib.Tactic
1
Mathlib.Topology.Algebra.Module.StrongDual (new file) 1457

Declarations diff

+ NormedSpace.dualPairing
+ NormedSpace.dualPairing_apply
+ NormedSpace.dualPairing_separatingLeft
+ StrongDual
+ _root_.NormedSpace.Dual.coe_toWeakDual
+ _root_.NormedSpace.Dual.toWeakDual
+ _root_.NormedSpace.Dual.toWeakDual_inj
+ _root_.NormedSpace.mem_polarSubmodule
+ _root_.NormedSpace.mem_polar_iff
+ _root_.NormedSpace.mem_polar_singleton
+ _root_.NormedSpace.polar
+ _root_.NormedSpace.polarSubmodule
+ _root_.NormedSpace.polarSubmodule_eq_polar
+ _root_.NormedSpace.polarSubmodule_eq_setOf
+ _root_.NormedSpace.polar_empty
+ _root_.NormedSpace.polar_nonempty
+ _root_.NormedSpace.polar_singleton
+ _root_.NormedSpace.polar_univ
+ _root_.NormedSpace.polar_zero
+ _root_.NormedSpace.zero_mem_polar
+ _root_.strongDualPairing
+ coe_toStrongDual
+ toStrongDual
+ toStrongDual_apply
+ toStrongDual_inj
- Dual
- dualPairing

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mans0954 mans0954 marked this pull request as ready for review July 30, 2025 21:02
@mans0954 mans0954 requested a review from eric-wieser July 30, 2025 21:03

/-- The topological dual of a seminormed space `E`. -/
abbrev Dual : Type _ := E →L[𝕜] 𝕜
abbrev Dual : Type _ := TopologicalSpace.Dual 𝕜 E
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be tempted to omit this abbrev entirely, and switch to StrongDual (or whatever name we choose), but someone else (or multiple people) should agree before we make that jump.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did wonder about alias Dual := StrongDual instead, but that seems not to work.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps @eric-wieser or @ADedecker have a view?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I should ask on Zulip?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mans0954 please note my comment above about the namespaces. This will probably also require adding appropriate deprecations.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@j-loreaux I've started looking at the first one NormedSpace.apply which depends on ContinuousLinearMap.flip which currently presumes seminormed spaces. I think making that work more generally requires hypocontinuous bilinear mappings (Bourbaki TVS III, §5.3). Is that right?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not asking you to do any generalization work here. If something generalizes for free, then we can switch the namespace. If not, then we don't worry about it in this PR. We need to separate concerns.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a relief as the rabbit hole seemed quite deep (for me at least).

The following don't need a norm (at least not on the monoid - the ring/field may still require a norm in some cases):

NormedSpace.dualPairing
NormedSpace.dualPairing_apply
NormedSpace.dualPairing_separatingLeft
NormedSpace.polar
NormedSpace.polarSubmodule
NormedSpace.polarSubmodule_eq_polar
NormedSpace.mem_polar_iff
NormedSpace.polarSubmodule_eq_setOf
NormedSpace.mem_polarSubmodule
NormedSpace.zero_mem_polar
NormedSpace.polar_nonempty
NormedSpace.polar_univ
NormedSpace.polar_empty
NormedSpace.polar_singleton
NormedSpace.mem_polar_singleton
NormedSpace.polar_zero

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've moved these into a separate file Topology/Algebra/Module/StrongDual and changed the namespace to StrongDual. I renamed StrongDual.dualPairing to _root_.strongDualPairing. I left StrongDual.polar and StrongDual.polarSubmodule in the namespace to disambiguate from the other uses of polar.

@j-loreaux j-loreaux added awaiting-author A reviewer has asked the author a question or requested changes. t-analysis Analysis (normed *, calculus) labels Aug 3, 2025
@mans0954
Copy link
Copy Markdown
Collaborator Author

mans0954 commented Aug 8, 2025

After that I believe it should be ready for merging, but I'll take a quick final look.

@j-loreaux - thanks. I've made that change.

@j-loreaux j-loreaux removed the awaiting-author A reviewer has asked the author a question or requested changes. label Aug 11, 2025
Copy link
Copy Markdown
Contributor

@j-loreaux j-loreaux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few things in Mathlib.MeasureTheory.Function.Holder which mention the NormedSpace."dual_stuff". Would you mind editing those also? After that, we'll say that we got it close enough.

Thanks for doing this!

bors d+

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 11, 2025

✌️ mans0954 can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@ghost ghost added the delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). label Aug 11, 2025
@mans0954
Copy link
Copy Markdown
Collaborator Author

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Aug 11, 2025
Replace  `NormedSpace.Dual` with `StrongDual`.

- Add a new abbreviation `StrongDual` for `M →L[R] R` where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies;
- Remove the abbreviation `NormedSpace.Dual` and replace every reference to it with `StrongDual`;
- Move results which do not depend on a norm from `Analysis/Normed/Module/Dual` to a new file `Topology/Algebra/Module/StrongDual` and move them from the `NormedSpace` namespace to the `StrongDual` namespace;
- Move results which do not depend on a norm from the `NormedSpace` namespace in `Analysis/Normed/Module/WeakDual` to a new section at the start of that file in the `StrongDual` namespace;
- Add deprecated aliases for renamed results.

Discussion: https://github.com/leanprover-community/mathlib4/pull/26345/files#r2234132483



Co-authored-by: Christopher Hoskin <[email protected]>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 11, 2025

This PR was included in a batch that successfully built, but then failed to merge into master (it was a non-fast-forward update). It will be automatically retried.

mathlib-bors bot pushed a commit that referenced this pull request Aug 11, 2025
Replace  `NormedSpace.Dual` with `StrongDual`.

- Add a new abbreviation `StrongDual` for `M →L[R] R` where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies;
- Remove the abbreviation `NormedSpace.Dual` and replace every reference to it with `StrongDual`;
- Move results which do not depend on a norm from `Analysis/Normed/Module/Dual` to a new file `Topology/Algebra/Module/StrongDual` and move them from the `NormedSpace` namespace to the `StrongDual` namespace;
- Move results which do not depend on a norm from the `NormedSpace` namespace in `Analysis/Normed/Module/WeakDual` to a new section at the start of that file in the `StrongDual` namespace;
- Add deprecated aliases for renamed results.

Discussion: https://github.com/leanprover-community/mathlib4/pull/26345/files#r2234132483



Co-authored-by: Christopher Hoskin <[email protected]>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 11, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title refactor(Analysis/Normed/Module/Dual): Abbrev for strong dual [Merged by Bors] - refactor(Analysis/Normed/Module/Dual): Abbrev for strong dual Aug 11, 2025
@mathlib-bors mathlib-bors bot closed this Aug 11, 2025
mathlib-bors bot pushed a commit that referenced this pull request Aug 22, 2025
The `StrongDual` abbrev for `M →L[R] R`, where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies, was introduced in #27699.

This PR replaces existing occurrences of `M →L[R] R` with `StrongDual R M` etc. There are some exclusions:

- Bilinear forms `M →L[R] E →L[R] R` and where using  `StrongDual R M` would mask the symmetry of the statement;
- The dual of rings / fields `R →L[R] R` and similar;
- `WeakDual 𝕜 M` in `Topology/Algebra/Module/WeakDual`, where the focus is on the weak topology on `M →L[R] R`.
Paul-Lez pushed a commit to Paul-Lez/mathlib4 that referenced this pull request Aug 23, 2025
…over-community#27699)

Replace  `NormedSpace.Dual` with `StrongDual`.

- Add a new abbreviation `StrongDual` for `M →L[R] R` where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies;
- Remove the abbreviation `NormedSpace.Dual` and replace every reference to it with `StrongDual`;
- Move results which do not depend on a norm from `Analysis/Normed/Module/Dual` to a new file `Topology/Algebra/Module/StrongDual` and move them from the `NormedSpace` namespace to the `StrongDual` namespace;
- Move results which do not depend on a norm from the `NormedSpace` namespace in `Analysis/Normed/Module/WeakDual` to a new section at the start of that file in the `StrongDual` namespace;
- Add deprecated aliases for renamed results.

Discussion: https://github.com/leanprover-community/mathlib4/pull/26345/files#r2234132483



Co-authored-by: Christopher Hoskin <[email protected]>
Paul-Lez pushed a commit to Paul-Lez/mathlib4 that referenced this pull request Aug 23, 2025
The `StrongDual` abbrev for `M →L[R] R`, where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies, was introduced in leanprover-community#27699.

This PR replaces existing occurrences of `M →L[R] R` with `StrongDual R M` etc. There are some exclusions:

- Bilinear forms `M →L[R] E →L[R] R` and where using  `StrongDual R M` would mask the symmetry of the statement;
- The dual of rings / fields `R →L[R] R` and similar;
- `WeakDual 𝕜 M` in `Topology/Algebra/Module/WeakDual`, where the focus is on the weak topology on `M →L[R] R`.
pechersky pushed a commit to pechersky/mathlib4 that referenced this pull request Aug 25, 2025
The `StrongDual` abbrev for `M →L[R] R`, where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies, was introduced in leanprover-community#27699.

This PR replaces existing occurrences of `M →L[R] R` with `StrongDual R M` etc. There are some exclusions:

- Bilinear forms `M →L[R] E →L[R] R` and where using  `StrongDual R M` would mask the symmetry of the statement;
- The dual of rings / fields `R →L[R] R` and similar;
- `WeakDual 𝕜 M` in `Topology/Algebra/Module/WeakDual`, where the focus is on the weak topology on `M →L[R] R`.
FormulaRabbit81 pushed a commit to YaelDillies/mathlib4 that referenced this pull request Aug 30, 2025
The `StrongDual` abbrev for `M →L[R] R`, where the monoid `M` is a module over the semiring `R` and `R` and `M` are equipped with topologies, was introduced in leanprover-community#27699.

This PR replaces existing occurrences of `M →L[R] R` with `StrongDual R M` etc. There are some exclusions:

- Bilinear forms `M →L[R] E →L[R] R` and where using  `StrongDual R M` would mask the symmetry of the statement;
- The dual of rings / fields `R →L[R] R` and similar;
- `WeakDual 𝕜 M` in `Topology/Algebra/Module/WeakDual`, where the focus is on the weak topology on `M →L[R] R`.
mathlib-bors bot pushed a commit that referenced this pull request Oct 7, 2025
Also update the date to when the PR (#27699) was actually landed.
Jlh18 pushed a commit to Jlh18/mathlib4 that referenced this pull request Oct 14, 2025
BeibeiX0 pushed a commit to BeibeiX0/mathlib4 that referenced this pull request Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). t-analysis Analysis (normed *, calculus)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants