-
Notifications
You must be signed in to change notification settings - Fork 299
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
[Merged by Bors] - feat(field_theory/minimal_polynomial): add algebra_map_inj #5062
Conversation
Co-authored-by: Bryan Gin-ge Chen <bryangingechen@gmail.com>
Co-authored-by: Bryan Gin-ge Chen <bryangingechen@gmail.com>
Co-authored-by: Bryan Gin-ge Chen <bryangingechen@gmail.com>
/--A minimal polynomial is not a unit.-/ | ||
/-- If `L/K` is a ring extension, and `x` is an element of `L` in the image of `K`, | ||
then the minimal polynomial of `x` is `X - C x`. -/ | ||
lemma algebra_map_inj [nontrivial α] (a : α) (hf : function.injective (algebra_map α β)) |
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.
This naming surprises me a bit - I'd expect this to be a proof of function.injective (algebra_map α β)
, not one that takes that as an assumption.
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.
Perhaps eq_if_algebra_map_inj
?
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.
Ah, I see this matches algebra_map
and algebra_map'
below.
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 still have some problem with the name convention, so it is probably just my fault...
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'm inclined to say that we should fix the other names instead. But I don't have a very good suggestion atm.
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 seems Kevin's comment about is_integral α (algebra_map α β a)
applies to minimal_polynomial.algebra_map
too - it has no need for that condition, right?
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.
Yes, that's why there is algebra_map'
. It is exactly algebra_map
without that assumption. We can remove one of them I think.
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.
Just to clarify: I added inj
in the name to distinguish it fromalgebra_map
, but the injectivity, although necessary, does not need to appear in the name. Indeed I don't see any concrete situation where one want to speak about a minimal polynomial without the injectivity condition (for example the minimal polynomial is not even unique in that case... something quite weird)
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.
Perhaps these should be:
minimal_polynomial.eq_X_sub_C_if_algebra_map_inj
(currentlyminimal_polynomial.algebra_map_inj
)minimal_polynomial.eq_X_sub_C
(currentlyminimal_polynomial.algebra_map'
)- Remove
minimal_polynomial.algebra_map
as the hypothesis is always true
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 think I like that (with _if_
changed to _of_
).
Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk>
…thlib into min_poly_alg_map
I'm still unhappy about those names. But otherwise this looks fine. What do you think of Eric's suggestions? |
Now they are |
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
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.
Thanks!
bors r+
I have added `algebra_map_inj` that computes the minimal polynomial of an element of the base ring. It generalizes `algebra_map` that assumes the base ring to be a field. I left `algebra_map` since I think it is reasonable to have a lemma that works without proving explicitly that the algebra map is injective.
Pull request successfully merged into master. Build succeeded: |
I have added
algebra_map_inj
that computes the minimal polynomial of an element of the base ring. It generalizesalgebra_map
that assumes the base ring to be a field. I leftalgebra_map
since I think it is reasonable to have a lemma that works without proving explicitly that the algebra map is injective.