Conversation
|
This sounds like it has the same goal as https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/FiniteType.html#modulePolynomialOfEndo, this PR should redefine that material in terms of this I think. (I think using a type synonym is probably a nicer way to go, and it looks like you added more api here) |
Why is this in |
|
I think because its only used to prove the result below! But it really shouldn't be indeed |
| instance : AddCommMonoid <| AEval R M a := by assumption | ||
| instance : Module R <| AEval R M a := by assumption | ||
| instance : Module A <| AEval R M a := by assumption | ||
| instance : IsScalarTower R A <| AEval R M a := by assumption |
There was a problem hiding this comment.
It took me a minute to work out how these proofs even work, I think using inferInstanceAs (AddCommMonoid M) is probably cleaner
There was a problem hiding this comment.
Thanks for showing me that; it is much clearer.
Thanks very much for that; I didn't think it was already in Mathlib. I'll try doing what you suggest. |
Co-authored-by: Alex J Best <alex.j.best@gmail.com>
|
I think it should still go in Polynomial/Module if that works though, just add an import to that from the finitetype file, as Riccardo says FiniteType is a non-obvious place for this construction to live |
Thanks, I've switched that around now. I also needed to swap the imports, so that now FiniteType imports Polynomial/Module, whereas previously it was the other way around. I've moved my code to the start of Polynomial/Module, because it is now used later down that file. I have left Vasconcelos' theorem in FiniteType, but its proof now uses |
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
Many thanks for all you help! |
riccardobrasca
left a comment
There was a problem hiding this comment.
Sorry again for the long review time, but this is very good now, thanks! (I've left a couple of trivial comments.)
bors d+
|
✌️ rmhi can now approve this pull request. To approve and merge a pull request, simply reply with |
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
bors r+ |
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
Canceled. |
|
bors r+ |
…map. (#7728) Given an element `a` in an `R`-algebra `A` and an `A`-module `M`, define an `R[X]`-module `Module.AEval R M a`, whose elements correspond to elements of `M`, and where the action of `f : R[X]` is `f • m = aeval a f • m`. Equivalently, `X • m = a • m`. This module is abbreviated to `Module.AEval' φ` in the special case that `A` is the algebra of `R`-linear maps and `φ : M → M` is an `R`-linear map. This is needed in #7419. Co-authored-by: Richard M. Hill <86743862+rmhi@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
Pull request successfully merged into master. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
Given an element
ain anR-algebraAand anA-moduleM,define an
R[X]-moduleModule.AEval R M a, whose elements correspond toelements of
M, and where the action off : R[X]isf • m = aeval a f • m.Equivalently,
X • m = a • m.This module is abbreviated to
Module.AEval' φin the special case thatAis the algebra ofR-linear maps andφ : M → Mis anR-linear map.This is needed in #7419.