Skip to content
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/splitting_field): generalize some results from field to domain #10726

Closed
wants to merge 14 commits into from

Conversation

alexjbest
Copy link
Member

@alexjbest alexjbest commented Dec 11, 2021

This PR does a few things generalizing / golfing facts related to polynomials and splitting fields.

  • Generalize some results in data.polynomial.field_division to division rings
  • generalize C_leading_coeff_mul_prod_multiset_X_sub_C from a field to a domain
  • same for prod_multiset_X_sub_C_of_monic_of_roots_card_eq
  • add a supporting useful lemma roots_map_of_injective_card_eq_total_degree saying that if we already have a full (multi)set of roots over a domain, passing along an injection gives the set of roots of the mapped polynomial

Inspired by needs of flt-regular.


Open in Gitpod

@alexjbest alexjbest added the WIP Work in progress label Dec 11, 2021
@alexjbest alexjbest added awaiting-review The author would like community review of the PR and removed WIP Work in progress labels Dec 13, 2021
@jcommelin
Copy link
Member

@alexjbest I pushed a refactor. By now it might make sense to reorganize properly into a section with variables.

@@ -422,6 +426,48 @@ calc ((roots ((X : polynomial R) ^ n - C a)).card : with_bot ℕ)
≤ degree ((X : polynomial R) ^ n - C a) : card_roots (X_pow_sub_C_ne_zero hn a)
... = n : degree_X_pow_sub_C hn a

lemma le_root_multiplicity_map {K L : Type*} [comm_ring K] [is_domain K]
[comm_ring L] [is_domain L] {p : polynomial K} {f : K →+* L} (hf : function.injective f)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I different version might assume map f p ≠ 0 instead of function.injective f.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we add a ' version then (or of map_ne_zero)?

@alexjbest
Copy link
Member Author

@alexjbest I pushed a refactor. By now it might make sense to reorganize properly into a section with variables.

@jcommelin
Nice! Thanks thats much nicer actually.
I'll take a look at reorganizing, the other suggestion looks more natural too (and reduces duplicate subproofs I guess).

@alexjbest alexjbest added merge-conflict Please `git merge origin/master` then a bot will remove this label. and removed awaiting-review The author would like community review of the PR labels Dec 15, 2021
@github-actions github-actions bot added merge-conflict Please `git merge origin/master` then a bot will remove this label. and removed merge-conflict Please `git merge origin/master` then a bot will remove this label. labels Dec 15, 2021
@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Dec 17, 2021
@alexjbest alexjbest added awaiting-CI The author would like to see what CI has to say before doing more work. awaiting-review The author would like community review of the PR labels Dec 17, 2021
@alexjbest alexjbest removed the awaiting-CI The author would like to see what CI has to say before doing more work. label Dec 17, 2021
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🎉

bors merge

@github-actions github-actions bot added the ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) label Dec 18, 2021
@github-actions github-actions bot added merge-conflict Please `git merge origin/master` then a bot will remove this label. and removed awaiting-review The author would like community review of the PR labels Dec 18, 2021
@bryangingechen
Copy link
Collaborator

merge conflict
bors r-

@bors
Copy link

bors bot commented Dec 18, 2021

Canceled.

@bryangingechen bryangingechen added awaiting-author A reviewer has asked the author a question or requested changes and removed ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) labels Dec 18, 2021
@bryangingechen
Copy link
Collaborator

bors d+

@bors
Copy link

bors bot commented Dec 18, 2021

✌️ alexjbest can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@github-actions github-actions bot added the delegated The PR author may merge after reviewing final suggestions. label Dec 18, 2021
@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Dec 18, 2021
@alexjbest
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Dec 18, 2021
…d to domain (#10726)

This PR does a few things generalizing / golfing facts related to polynomials and splitting fields.
- Generalize some results in `data.polynomial.field_division` to division rings
- generalize `C_leading_coeff_mul_prod_multiset_X_sub_C` from a field to a domain
- same for `prod_multiset_X_sub_C_of_monic_of_roots_card_eq`
- add a supporting useful lemma `roots_map_of_injective_card_eq_total_degree` saying that if we already have a full (multi)set of roots over a domain, passing along an injection gives the set of roots of the mapped polynomial

Inspired by needs of flt-regular.





Co-authored-by: Johan Commelin <johan@commelin.net>
@bors
Copy link

bors bot commented Dec 18, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(field_theory/splitting_field): generalize some results from field to domain [Merged by Bors] - feat(field_theory/splitting_field): generalize some results from field to domain Dec 18, 2021
@bors bors bot closed this Dec 18, 2021
@bors bors bot deleted the alexjbest/generalize_field_div branch December 18, 2021 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting-author A reviewer has asked the author a question or requested changes delegated The PR author may merge after reviewing final suggestions.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants