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] - chore: refactor perfect rings / fields #6182
Conversation
Just bashed through till sorry-free: needs much tidying!
Would you like to add the equivalent definition that a field is perfect if and only if every (finite) algebraic extension is surjective? |
I don't plan to do this, but I encourage you to do it in a follow-up PR if you're interested! |
What do we gain by removing the data here? Is the problem that the class would not be subsingleton? |
In fact the existing class is subsingleton: -- Using old definition of `PerfectRing` (which I propose to remove):
example : Subsingleton (PerfectRing R p) := by
constructor
rintro ⟨f, -, hfr⟩ ⟨g, hgl, -⟩
congr
exact LeftInverse.eq_rightInverse hfr hgl so this is not the problem.
I claim the advantages are:
|
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.
bors d+
✌️ ocfnash can now approve this pull request. To approve and merge a pull request, simply reply with |
bors merge |
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
This PR was included in a batch that was canceled, it will be automatically retried |
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
Build failed (retrying...): |
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
Build failed (retrying...): |
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
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. |
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings.
The main changes are:
PerfectRing
typeclass with aProp
-valued (non-constructive) version,PerfectField
,