-
Notifications
You must be signed in to change notification settings - Fork 383
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
feat(Analysis/Normed): Class for strict multiplicativity of norm #22842
base: master
Are you sure you want to change the base?
Conversation
PR summary 9039deeaa3
|
File | Base Count | Head Count | Change |
---|---|---|---|
Mathlib.Analysis.Normed.Ring.Lemmas | 1330 | 1354 | +24 (+1.80%) |
Mathlib.Analysis.Normed.Field.Basic | 1204 | 1203 | -1 (-0.08%) |
Mathlib.Analysis.Asymptotics.Defs | 1205 | 1204 | -1 (-0.08%) |
Import changes for all files
Files | Import difference |
---|---|
10 filesMathlib.Analysis.Asymptotics.Defs Mathlib.Analysis.Asymptotics.Lemmas Mathlib.Analysis.Normed.Field.Basic Mathlib.Analysis.Normed.Field.Ultra Mathlib.Analysis.Normed.Group.NullSubmodule Mathlib.Analysis.Normed.MulAction Mathlib.Analysis.Normed.Operator.ContinuousLinearMap Mathlib.Order.Filter.ZeroAndBoundedAtFilter Mathlib.Topology.Algebra.InfiniteSum.Field Mathlib.Topology.MetricSpace.CauSeqFilter |
-1 |
3 filesMathlib.NumberTheory.LegendreSymbol.GaussEisensteinLemmas Mathlib.NumberTheory.SumTwoSquares Mathlib.NumberTheory.Zsqrtd.QuadraticReciprocity |
2 |
4 filesMathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Unital Mathlib.Analysis.Normed.Field.Instances Mathlib.Topology.Algebra.Polynomial Mathlib.Topology.ContinuousMap.Polynomial |
22 |
Mathlib.Analysis.Meromorphic.Divisor.Basic |
23 |
4 filesMathlib.Analysis.Normed.Ring.InfiniteSum Mathlib.Analysis.Normed.Ring.Lemmas Mathlib.Analysis.NormedSpace.Int Mathlib.Topology.Bornology.BoundedOperation |
24 |
Declarations diff
+ Dilation.mulLeft
+ Dilation.mulRight
+ Int.instNormMulClass
+ NormMulClass
+ NormMulClass.induced
+ NormMulClass.isAbsoluteValue_norm
+ NormMulClass.isDomain
+ NormMulClass.toNormOneClass
+ instance (priority := 100) NormedDivisionRing.toNormMulClass [β : NormedDivisionRing α] :
+ instance : NormMulClass ℤ_[p] := ⟨fun x y ↦ by simp [norm_def]⟩
+ instance : NormedSpace 𝕜 C₀(α, β)
+ instance [NonUnitalNormedCommRing E] : NonUnitalNormedCommRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [NonUnitalNormedRing E] : NonUnitalNormedRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [NonUnitalSeminormedCommRing E] : NonUnitalSeminormedCommRing (RestrictScalars 𝕜 𝕜' E)
+ instance [NonUnitalSeminormedRing E] : NonUnitalSeminormedRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [NormedAddCommGroup E] : NormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [NormedCommRing E] : NormedCommRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [NormedRing E] : NormedRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [SeminormedAddCommGroup E] : SeminormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [SeminormedCommRing E] : SeminormedCommRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ instance [SeminormedRing E] : SeminormedRing (RestrictScalars 𝕜 𝕜' E) := ‹_›
+ toNormMulClass
+ toSeminormedRing
+-- norm_mul
- Int.instNormOneClass
- antilipschitzWith_mul_left
- instNormedSpace
- instance (priority := 900) NormedDivisionRing.to_normOneClass : NormOneClass α
- instance : Add ℤ_[p] := (by infer_instance : Add (subring p))
- instance : AddCommGroup ℤ_[p] := (by infer_instance : AddCommGroup (subring p))
- instance : IsDomain ℤ_[p] := Function.Injective.isDomain (subring p).subtype Subtype.coe_injective
- instance : Mul ℤ_[p] := (by infer_instance : Mul (subring p))
- instance : Neg ℤ_[p] := (by infer_instance : Neg (subring p))
- instance : NormOneClass ℤ_[p]
- instance : NormedSpace 𝕜 C₀(α, β) where norm_smul_le k f := (norm_smul_le k f.toBCF :)
- instance : One ℤ_[p] := ⟨⟨1, by norm_num⟩⟩
- instance : Sub ℤ_[p] := (by infer_instance : Sub (subring p))
- instance : Zero ℤ_[p] := (by infer_instance : Zero (subring p))
- instance [I : NonUnitalNormedCommRing E] :
- instance [I : NonUnitalNormedRing E] :
- instance [I : NonUnitalSeminormedCommRing E] :
- instance [I : NonUnitalSeminormedRing E] :
- instance [I : NormedAddCommGroup E] :
- instance [I : NormedCommRing E] :
- instance [I : NormedRing E] :
- instance [I : SeminormedAddCommGroup E] :
- instance [I : SeminormedCommRing E] :
- instance [I : SeminormedRing E] :
- isAbsoluteValue
- isAbsoluteValue_norm
- norm_pow
- toSemiNormedRing
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.
Increase in tech debt: (relative, absolute) = (1.00, 0.00)
Current number | Change | Type |
---|---|---|
2262 | 1 | porting notes |
Current commit 9039deeaa3
Reference commit 3d3450d07c
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 therelative
value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
What's the conflict here? Why does it matter if the field name is the same as a lemma name? |
Could you split this to its own PR? Independently of whether it clashes, I agree this is a better name. |
If you have |
Then the fix is to put |
Can you protect a structure field, rather than a lemma? I didn't know that was possible. (We seem to have a pretty consistent design pattern where |
Yes!
Usually the pattern is that |
|
bot fix style |
Rename `norm_mul` of NormedRing and cousins to `norm_mul_le`, and `norm_mul'` of `NormedDivisionRing` to `norm_mul`. Split off from #22842.
This PR/issue depends on: |
This PR makes the following changes:
NormMulClass
for norms satisfying‖a * b‖ = ‖a‖ * ‖b‖
, and show that anyNormedDivisionRing
satisfies it.NormedDivisionRing
orNormedField
to any normed ring satisfyingNormMulClass
.PadicInt
).norm_mul
tonorm_mul_le
#22871