Skip to content

[Merged by Bors] - chore(RingTheory/Generators): make algebra instance a def#14265

Closed
chrisflav wants to merge 4 commits intomasterfrom
chrisflav/generators-diamond
Closed

[Merged by Bors] - chore(RingTheory/Generators): make algebra instance a def#14265
chrisflav wants to merge 4 commits intomasterfrom
chrisflav/generators-diamond

Conversation

@chrisflav
Copy link
Copy Markdown
Member

Makes the algebra instance Algebra P.Ring S for P : Generators R S a def and adds the instance attribute locally where needed. This prevents an instance diamond in the case where S is a quotient of some polynomial algebra.

See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Diamond.20in.20.60Algebra.2EGenerators.60.


Open in Gitpod

@chrisflav chrisflav added awaiting-review t-algebra Algebra (groups, rings, fields, etc) labels Jun 29, 2024
@chrisflav chrisflav requested a review from erdOne June 29, 2024 14:57
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 29, 2024

PR summary fdc99085f6

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ aeval_val_eq_zero
- algebraMap_eq
- instance : Algebra P.Ring S := (aeval P.val).toAlgebra

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).

@kbuzzard
Copy link
Copy Markdown
Member

Thanks! this is a leaf file, you're developing the theory and I'm happy to trust your judgement.

bors merge

@github-actions github-actions bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review labels Jun 30, 2024
mathlib-bors bot pushed a commit that referenced this pull request Jun 30, 2024
Makes the algebra instance `Algebra P.Ring S` for `P : Generators R S` a def and adds the instance attribute locally where needed. This prevents an instance diamond in the case where `S` is a quotient of some polynomial algebra.

See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Diamond.20in.20.60Algebra.2EGenerators.60.
@chrisflav
Copy link
Copy Markdown
Member Author

Ah hold on!

@chrisflav
Copy link
Copy Markdown
Member Author

@erdOne I think has a different opinion!

@kbuzzard
Copy link
Copy Markdown
Member

Happy to hold on!

bors r-

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jun 30, 2024

Canceled.

@chrisflav
Copy link
Copy Markdown
Member Author

@erdOne : If I understand you correctly from the zulip thread, you prefer a different solution? I.e. making Generators.Ring a def?

@chrisflav chrisflav added awaiting-review and removed ready-to-merge This PR has been sent to bors. labels Jun 30, 2024
@erdOne
Copy link
Copy Markdown
Member

erdOne commented Jun 30, 2024

Another option is for generators to take an algebra as a field with default value aeval val

@chrisflav
Copy link
Copy Markdown
Member Author

Should we wait for #14271 to be merged and then try how things play out for the "canonical" Presentation constructor for a quotient of some polynomial algebra?

@jcommelin
Copy link
Copy Markdown
Member

What is the status here?

@jcommelin jcommelin added the awaiting-author A reviewer has asked the author a question or requested changes. label Oct 17, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 15, 2024
@kbuzzard
Copy link
Copy Markdown
Member

#14271 is merged, at least...

@chrisflav chrisflav force-pushed the chrisflav/generators-diamond branch from d0e2c52 to 1cd73ad Compare December 17, 2024 16:44
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Dec 17, 2024
@chrisflav
Copy link
Copy Markdown
Member Author

Since the instance diamond still exists (the same example from the linked Zulip thread still works), let me revive this.

Another option is for generators to take an algebra as a field with default value aeval val

I implemented this. What do you think?

@jcommelin
Copy link
Copy Markdown
Member

Is this still awaiting-author then?

I'll also:

bors d=erdOne

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 20, 2024

✌️ erdOne 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 Dec 20, 2024
@ghost ghost removed the awaiting-author A reviewer has asked the author a question or requested changes. label Dec 20, 2024
@erdOne
Copy link
Copy Markdown
Member

erdOne commented Jan 4, 2025

Sorry for dropping the ball. I am not sure if this is the right solution or not but at least it is an improvement.
Thanks!
bors merge

mathlib-bors bot pushed a commit that referenced this pull request Jan 4, 2025
Makes the algebra instance `Algebra P.Ring S` for `P : Generators R S` a def and adds the instance attribute locally where needed. This prevents an instance diamond in the case where `S` is a quotient of some polynomial algebra.

See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Diamond.20in.20.60Algebra.2EGenerators.60.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jan 4, 2025

Build failed:

@kbuzzard
Copy link
Copy Markdown
Member

kbuzzard commented Jan 4, 2025

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Jan 4, 2025
mathlib-bors bot pushed a commit that referenced this pull request Jan 4, 2025
Makes the algebra instance `Algebra P.Ring S` for `P : Generators R S` a def and adds the instance attribute locally where needed. This prevents an instance diamond in the case where `S` is a quotient of some polynomial algebra.

See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Diamond.20in.20.60Algebra.2EGenerators.60.



Co-authored-by: Andrew Yang <the.erd.one@gmail.com>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jan 4, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title chore(RingTheory/Generators): make algebra instance a def [Merged by Bors] - chore(RingTheory/Generators): make algebra instance a def Jan 4, 2025
@mathlib-bors mathlib-bors bot closed this Jan 4, 2025
@mathlib-bors mathlib-bors bot deleted the chrisflav/generators-diamond branch January 4, 2025 18:40
Julian added a commit that referenced this pull request Jan 5, 2025
* origin/master: (133 commits)
  chore(1000): remove nonexistent fields (#20493)
  chore(CategoryTheory/Adjunction.Basic, CategoryTheory/Equivalence): change definition of `Adjunction.comp` and `Equivalence.trans` (#20490)
  feat(Asymptotics): add `Asymptotics.*.*Prod` lemmas (#20458)
  feat: a conditional kernel is almost everywhere a probability measure (#20430)
  feat: if `f` is a measurable group hom, then every point has a neighborhood `s` such that `f '' s` is bounded (#20304)
  feat: `Ico`, `Ioc`, and `Ioo` are not closed or compact (#20479)
  chore: drop redundant hypothesis in `Module.Dual.eq_of_preReflection_mapsTo` (#20492)
  feat(FaaDiBruno): derive `DecidableEq` (#20482)
  chore(SetTheory/Ordinal/Basic): `{x // x < y}` → `Iio y` (#20413)
  chore: generalize `FormalMultilinearSeries.ofScalars_norm` to `Seminormed` (#20351)
  chore(MvPolynomial/Localization): golf using TensorProduct (#20309)
  chore(Combinatorics/Enumerative/Partition): auto-derive DecidableEq (#20277)
  chore(CategoryTheory): make relevant parameters explicit in `Arrow.homMk`. (#20259)
  feat: add `IsStarNormal (↑x⁻¹ : R)` instance for `x : Rˣ` (#20091)
  fix: Stop cancelling builds of master (#20435)
  chore: update Mathlib dependencies 2025-01-05 (#20485)
  feat(SetTheory/Cardinal/Arithmetic): miscellaneous cardinality lemmas (#18933)
  chore: bump toolchain to v4.16.0-rc1, and merge bump/v4.16.0 (#20464)
  chore: bot validates lean-toolchain on bump/v4.X.0 branches (#20478)
  feat: shorthand lemmas for the L1 norm (#20383)
  chore: remove unnecessary adaptation notes (#20467)
  chore(Algebra/Category/MonCat/Colimits): remove smallness condition (#20473)
  chore(SetTheory/Ordinal/Arithmetic): `IsLeftCancelAdd Ordinal` (#19888)
  feat(Algebra): more on `OrthogonalIdempotents` (#18195)
  feat(Radical): `(radical a).natDegree ≤ a.natDegree` (#20468)
  feat(Polynomial): `(a^n)' = 0` iff `a' = 0` when `n` doesn't divide the characteristic (#20190)
  feat(Algebra/Lie): add Lie's theorem (#13480)
  chore(RingTheory/Generators): make algebra instance a def (#14265)
  feat(Topology/Group): Lemmas about profinite group (#20282)
  feat: the empty set is a topological basis iff the space is empty (#20441)
  chore: make uniqueness of conditionally complete linearly ordered archimedean fields independent of the construction of `Real` (#20242)
  chore: `inherit_doc`s for notations (#20376)
  chore: split AEEqOfIntegral into two files, one for each integral type (#20405)
  chore: split Kernel/MeasurableIntegral (#20427)
  feat(MeasureTheory/Group/Measure): add ContinuousMulEquiv.isHaarMeasure_map (#20469)
  fix(Mathlib.Tactic.CC.Datatypes): `cc` raises panic (#20422)
  feat(Probability/Moments): add lemmas about moment generating functions (#19886)
  feat(Algebra/Order/AddGroupWithTop): lemmas about LinearOrderedAddCommGroupWithTop (#18954)
  chore: bump toolchain to v4.15.0 (#20461)
  chore: update Mathlib dependencies 2025-01-04 (#20463)
  fix: make `Prod` projection delaborators respond to options, add option to disable (#20455)
  chore(Algebra): Improve attribute generation (#20451)
  feat(Polynomial): `(C a * p).degree = p.degree` if `a * p.leadingCoeff ≠ 0` (#20446)
  feat: add `ENNReal.finStronglyMeasurable_of_measurable` (#20404)
  doc(Algebra/Lie/Weights/Basic): fix typo (#20450)
  chore(1000): remove `identifiers` (#20445)
  feat: add sumPiEquivProdPi and piUnique (#20195)
  feat: add fst_compProd_apply (#20429)
  chore: use unsigned measures for Lebesgue decomposition (#20400)
  feat: Two lemmas on divisibility and coprimality of `expand` (#20143)
  ...
Julian added a commit that referenced this pull request Jan 6, 2025
* origin/master: (189 commits)
  chore(Algebra): make more names consistent (#20449)
  feat: Polynomial FLT (#18882)
  feat: A disjoint union is finite iff all sets are finite, and all but finitely many are empty (#20457)
  fix: linkfix in 100.yaml (#20517)
  feat(1000): fill in more entries (#20470)
  feat(Combinatorics/SimpleGraph/Walk): add `penultimate` and `snd` (#16769)
  feat(ContinuousMultilinearMap): add lemmas about `.prod` (#20462)
  feat(RingTheory): classification of etale algebras over fields (#20324)
  fix: Allow multiple builds on staging branch (#20515)
  feat(CategoryTheory/Shift/Adjunction): properties of `Adjunction.CommShift` (#20337)
  chore(Data/Multiset/Basic): move the `sub`, `union`, `inter` sections lower (#19863)
  chore(Topology/UniformSpace/Completion): make coe' argument implicit (#20514)
  refactor(Algebra/Category/Grp/Colimits): change the construction of colimits in `AddCommGrp` (#20474)
  feat(Topology/Algebra/InfiniteSum/NatInt): Add pnat lems (#16544)
  chore(RingTheory/Finiteness): rename Module.Finite.out (#20506)
  refactor(CategoryTheory/Limits/Preserves/Ulift): simplify the proof that the universe lifting functor for types preserves all colimits (#20508)
  feat(CategoryTheory): products in the category of Ind-objects (#20507)
  chore: remove >9 month old deprecations (#20505)
  chore(FieldTheory/Galois): small cleanup (#20217)
  chore(LinearIndependent): generalize to semirings (#20480)
  chore(NumberTheory/NumberField/AdeleRing): refactor adele rings (#20500)
  chore: replace `aesop` with `simp` where possible (#20483)
  chore(1000): remove nonexistent fields (#20493)
  chore(CategoryTheory/Adjunction.Basic, CategoryTheory/Equivalence): change definition of `Adjunction.comp` and `Equivalence.trans` (#20490)
  feat(Asymptotics): add `Asymptotics.*.*Prod` lemmas (#20458)
  feat: a conditional kernel is almost everywhere a probability measure (#20430)
  feat: if `f` is a measurable group hom, then every point has a neighborhood `s` such that `f '' s` is bounded (#20304)
  feat: `Ico`, `Ioc`, and `Ioo` are not closed or compact (#20479)
  chore: drop redundant hypothesis in `Module.Dual.eq_of_preReflection_mapsTo` (#20492)
  feat(FaaDiBruno): derive `DecidableEq` (#20482)
  chore(SetTheory/Ordinal/Basic): `{x // x < y}` → `Iio y` (#20413)
  chore: generalize `FormalMultilinearSeries.ofScalars_norm` to `Seminormed` (#20351)
  chore(MvPolynomial/Localization): golf using TensorProduct (#20309)
  chore(Combinatorics/Enumerative/Partition): auto-derive DecidableEq (#20277)
  chore(CategoryTheory): make relevant parameters explicit in `Arrow.homMk`. (#20259)
  feat: add `IsStarNormal (↑x⁻¹ : R)` instance for `x : Rˣ` (#20091)
  fix: Stop cancelling builds of master (#20435)
  chore: update Mathlib dependencies 2025-01-05 (#20485)
  feat(SetTheory/Cardinal/Arithmetic): miscellaneous cardinality lemmas (#18933)
  chore: bump toolchain to v4.16.0-rc1, and merge bump/v4.16.0 (#20464)
  chore: bot validates lean-toolchain on bump/v4.X.0 branches (#20478)
  feat: shorthand lemmas for the L1 norm (#20383)
  chore: remove unnecessary adaptation notes (#20467)
  chore(Algebra/Category/MonCat/Colimits): remove smallness condition (#20473)
  chore(SetTheory/Ordinal/Arithmetic): `IsLeftCancelAdd Ordinal` (#19888)
  feat(Algebra): more on `OrthogonalIdempotents` (#18195)
  feat(Radical): `(radical a).natDegree ≤ a.natDegree` (#20468)
  feat(Polynomial): `(a^n)' = 0` iff `a' = 0` when `n` doesn't divide the characteristic (#20190)
  feat(Algebra/Lie): add Lie's theorem (#13480)
  chore(RingTheory/Generators): make algebra instance a def (#14265)
  ...
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). ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants