-
Notifications
You must be signed in to change notification settings - Fork 370
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: group markings #19475
base: master
Are you sure you want to change the base?
feat: group markings #19475
Conversation
PR summary 75a713a5ebImport changes exceeding 2%
|
File | Base Count | Head Count | Change |
---|---|---|---|
Mathlib.Analysis.Normed.Group.AddCircle | 1445 | 1482 | +37 (+2.56%) |
Import changes for all files
Files | Import difference |
---|---|
34 filesMathlib.MeasureTheory.Decomposition.Lebesgue Mathlib.MeasureTheory.Function.ContinuousMapDense Mathlib.MeasureTheory.Function.ConvergenceInMeasure Mathlib.MeasureTheory.Function.L1Space.AEEqFun Mathlib.MeasureTheory.Function.L1Space.Integrable Mathlib.MeasureTheory.Function.LocallyIntegrable Mathlib.MeasureTheory.Function.LpOrder Mathlib.MeasureTheory.Function.LpSeminorm.Basic Mathlib.MeasureTheory.Function.LpSeminorm.ChebyshevMarkov Mathlib.MeasureTheory.Function.LpSeminorm.CompareExp Mathlib.MeasureTheory.Function.LpSeminorm.TriangleInequality Mathlib.MeasureTheory.Function.LpSeminorm.Trim Mathlib.MeasureTheory.Function.LpSpace.ContinuousCompMeasurePreserving Mathlib.MeasureTheory.Function.LpSpace.DomAct.Basic Mathlib.MeasureTheory.Function.LpSpace.DomAct.Continuous Mathlib.MeasureTheory.Function.LpSpace Mathlib.MeasureTheory.Function.SimpleFuncDenseLp Mathlib.MeasureTheory.Function.SpecialFunctions.Basic Mathlib.MeasureTheory.Function.StronglyMeasurable.Lp Mathlib.MeasureTheory.Function.UnifTight Mathlib.MeasureTheory.Function.UniformIntegrable Mathlib.MeasureTheory.Group.Integral Mathlib.MeasureTheory.Integral.Bochner Mathlib.MeasureTheory.Integral.BoundedContinuousFunction Mathlib.MeasureTheory.Integral.IntegrableOn Mathlib.MeasureTheory.Integral.MeanInequalities Mathlib.MeasureTheory.Integral.SetToL1 Mathlib.MeasureTheory.Integral.VitaliCaratheodory Mathlib.MeasureTheory.Measure.FiniteMeasure Mathlib.MeasureTheory.Measure.SeparableMeasure Mathlib.Probability.Independence.Integrable Mathlib.Probability.Kernel.Integral Mathlib.Probability.Moments.IntegrableExpMul Mathlib.Probability.ProbabilityMassFunction.Integrals |
2 |
72 filesMathlib.Algebra.Order.AbsoluteValue.Equivalence Mathlib.Analysis.Analytic.RadiusLiminf Mathlib.Analysis.CStarAlgebra.Multiplier Mathlib.Analysis.CStarAlgebra.lpSpace Mathlib.Analysis.Calculus.ContDiff.WithLp Mathlib.Analysis.Calculus.FDeriv.WithLp Mathlib.Analysis.Convex.SpecificFunctions.Basic Mathlib.Analysis.Convex.SpecificFunctions.Pow Mathlib.Analysis.MeanInequalitiesPow Mathlib.Analysis.MeanInequalities Mathlib.Analysis.Normed.Algebra.Norm Mathlib.Analysis.Normed.Algebra.TrivSqZeroExt Mathlib.Analysis.Normed.Algebra.UnitizationL1 Mathlib.Analysis.Normed.Lp.LpEquiv Mathlib.Analysis.Normed.Lp.PiLp Mathlib.Analysis.Normed.Lp.ProdLp Mathlib.Analysis.Normed.Lp.lpSpace Mathlib.Analysis.Normed.Ring.IsPowMulFaithful Mathlib.Analysis.Normed.Ring.SeminormFromBounded Mathlib.Analysis.Normed.Ring.SeminormFromConst Mathlib.Analysis.Normed.Ring.Seminorm Mathlib.Analysis.NormedSpace.DualNumber Mathlib.Analysis.PSeries Mathlib.Analysis.SpecialFunctions.CompareExp Mathlib.Analysis.SpecialFunctions.Complex.Circle Mathlib.Analysis.SpecialFunctions.Complex.Log Mathlib.Analysis.SpecialFunctions.Log.Base Mathlib.Analysis.SpecialFunctions.Log.ENNRealLogExp Mathlib.Analysis.SpecialFunctions.Log.ENNRealLog Mathlib.Analysis.SpecialFunctions.Log.Monotone Mathlib.Analysis.SpecialFunctions.Pow.Asymptotics Mathlib.Analysis.SpecialFunctions.Pow.Complex Mathlib.Analysis.SpecialFunctions.Pow.Continuity Mathlib.Analysis.SpecialFunctions.Pow.NNReal Mathlib.Analysis.SpecialFunctions.Pow.Real Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex Mathlib.Analysis.SpecificLimits.FloorPow Mathlib.Combinatorics.Additive.Corner.Roth Mathlib.Combinatorics.SimpleGraph.Regularity.Bound Mathlib.Combinatorics.SimpleGraph.Regularity.Chunk Mathlib.Combinatorics.SimpleGraph.Regularity.Increment Mathlib.Combinatorics.SimpleGraph.Regularity.Lemma Mathlib.Combinatorics.SimpleGraph.Triangle.Removal Mathlib.Computability.AkraBazzi.GrowsPolynomially Mathlib.Dynamics.TopologicalEntropy.CoverEntropy Mathlib.Dynamics.TopologicalEntropy.NetEntropy Mathlib.Dynamics.TopologicalEntropy.Semiconj Mathlib.LinearAlgebra.QuadraticForm.Complex Mathlib.MeasureTheory.Function.SpecialFunctions.Arctan Mathlib.MeasureTheory.Measure.Doubling Mathlib.NumberTheory.ClassNumber.AdmissibleCardPowDegree Mathlib.NumberTheory.ClassNumber.Finite Mathlib.NumberTheory.ClassNumber.FunctionField Mathlib.NumberTheory.Cyclotomic.Basic Mathlib.NumberTheory.ModularForms.EisensteinSeries.IsBoundedAtImInfty Mathlib.NumberTheory.ModularForms.EisensteinSeries.UniformConvergence Mathlib.NumberTheory.MulChar.Lemmas Mathlib.NumberTheory.Ostrowski Mathlib.NumberTheory.SumPrimeReciprocals Mathlib.RingTheory.Perfection Mathlib.RingTheory.Polynomial.Cyclotomic.Basic Mathlib.RingTheory.Polynomial.Cyclotomic.Expand Mathlib.RingTheory.Polynomial.Cyclotomic.Roots Mathlib.RingTheory.Polynomial.Eisenstein.IsIntegral Mathlib.RingTheory.RootsOfUnity.AlgebraicallyClosed Mathlib.RingTheory.RootsOfUnity.Complex Mathlib.Topology.Algebra.PontryaginDual Mathlib.Topology.MetricSpace.GromovHausdorff Mathlib.Topology.MetricSpace.HolderNorm Mathlib.Topology.MetricSpace.Holder Mathlib.Topology.MetricSpace.Kuratowski |
3 |
Mathlib.Analysis.SpecialFunctions.Complex.Arg Mathlib.Analysis.SpecialFunctions.Trigonometric.Angle |
4 |
Mathlib.Analysis.Normed.Group.AddCircle |
37 |
Mathlib.Geometry.Group.Marking (new file) |
1398 |
Declarations diff
+ AddGroupMarking
+ GroupMarking
+ GroupMarking.refl
+ MarkedGroup
+ MarkedGroup.instGroup
+ MarkedGroup.instInhabited
+ MarkedGroup.instMulAction
+ MarkedGroup.instSmul
+ Subgroup.continuousConstSMul
+ Submonoid.continuousConstSMul
+ coe_fract
+ coe_surjective
+ exists_norm_mk'_lt
+ exists_norm_mul_lt
+ groupSeminorm
+ instFunLike
+ instMonoidHomClass
+ instNorm
+ instNormedCommGroup
+ instSeminormedCommGroup
+ instance : Inhabited (GroupMarking G G) := ⟨.refl⟩
+ instance : NormedAddCommGroup (AddCircle p) := QuotientAddGroup.instNormedAddCommGroup _
+ instance : NormedGroup (MarkedGroup m)
+ le_infDist
+ le_norm_iff
+ nhds_one_hasBasis
+ norm_eq_groupSeminorm
+ norm_eq_infDist
+ norm_le_iff
+ norm_lt_iff
+ norm_mk
+ norm_mk'
+ norm_mk'_eq_zero
+ norm_mk'_eq_zero_iff_mem_closure
+ norm_mk'_le_norm
+ norm_mk_eq_zero
+ norm_mk_eq_zero_iff_mem_closure
+ norm_mk_le_norm
+ ofMarkedGroup
+ ofMarkedGroup_inj
+ ofMarkedGroup_smul
+ ofMarkedGroup_symm_eq
+ ofMarkedGroup_toMarkedGroup
+ quotientEquivMarkedGroup
+ toMarkedGroup
+ toMarkedGroup_inj
+ toMarkedGroup_ofMarkedGroup
+ toMarkedGroup_smul
+ toMarkedGroup_symm_eq
- QuotientAddGroup.norm_eq_infDist
- QuotientAddGroup.norm_lt_iff
- QuotientAddGroup.norm_mk
- instContinuousConstSMul
- instContinuousSMul
- instance : NormedAddCommGroup (AddCircle p)
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.
Decrease in tech debt: (relative, absolute) = (2.00, 0.00)
Current number | Change | Type |
---|---|---|
1401 | -2 | erw |
Current commit 75a713a5eb
Reference commit cd5fbfb76d
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).
Mathlib/GroupTheory/Marking.lean
Outdated
/-! | ||
# Marked groups | ||
|
||
This file defines group markings and induces a norm on marked groups. |
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.
Is there a reference you can give here? I'm not familiar with this definition
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.
I can't find a reference, but eg this MathOverflow question says "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.
If there isn't a reference for a definition you wish to add, does it really belong in mathlib?
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.
Okay, here's a reference: https://math.huji.ac.il/~perin/Documents/GGT/GGTCourse.pdf, Remark 5.3
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.
Please add this to the module docstring. It would also be nice to also add the explanation of why you choose a definition different from the one which seems more standard.
41ecd85
to
a616f80
Compare
Mathlib/Geometry/Group/Marking.lean
Outdated
* `MarkedGroup`: If `m : GroupMarking G S`, then `MarkedGroup m` is a type synonym for `G` | ||
endowed with the metric coming from `m`. | ||
* `MarkedGroup.instNormedGroup`: A marked group is normed by its marking. |
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.
It would be nice to give here a clearer description of what the metric and norm actually are. Currently the documentation only says that a norm is induced, with no clue as to how they are defined, or what they mean.
@[to_additive] | ||
lemma norm_def [DecidableEq S] (x : MarkedGroup m) | ||
[DecidablePred fun n ↦ ∃ l, toMarkedGroup (m l) = x ∧ l.toWord.length = n] : | ||
‖x‖ = Nat.find (mul_aux' x) := by |
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.
It's generally not a great idea to have a lemma of this form, where the definition depends on a private lemma. You should instead give properties of the norm which can be useful without referencing private lemmas. For instance, the lemma that there exists a word in the free group with length n which corresponds to x is tricky to prove from the public API. This, and related lemmas (the norm is the smallest n with that property) should be included as part of the norm API.
This PR/issue depends on:
|
* Multiplicativise using the (not so) new `GroupNorm` API. * Deprecate the lemmas about the quotient norm that hold for all norms. * Move all remaining lemmas to a single `QuotientAddGroup` namespace. They were currently scattered across `_root_`, `AddSubgroup` and `QuotientAddGroup`. * Follow naming convention in lemma names.
The goal is to apply this to the free group.
From LeanCamCombi
90d8e07
to
75a713a
Compare
From LeanCamCombi