-
Notifications
You must be signed in to change notification settings - Fork 94
Algebraic closure definition and existence axiom. #4554
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
Conversation
I think the third part is that any element of K is algebraic over L, based on https://en.wikipedia.org/wiki/Algebraic_closure --> https://en.wikipedia.org/wiki/Algebraic_extension (elements of L being algebraic over L is trivial because for any number N, we have the polynomial |
Yeah you are right. This definition currently is bollocks. I need the map that maps the polynomial with coefficients in K to the map with coefficients in L. In lean, this map is called Polynomial.aeval, I don't know what the metamath analogue is. |
Lean's aeval looks like it assigns a single variable a value (evaluates a single variable). This probably isn't what your comment was talking about though... ((It takes the variable and value, and returns a function taking a polynomial to another polynomial with the variable removed, ie a homomorphism))
For single variable polynomials, df-evl1 in metamath is enough
For multivariable polynomials, this could be done by using df-selv and df-evl: df-selv basically let's us assign only some of the variables instead of all of them upon evaluation (see below), so it's perfect... but df-selv is not developed, with only selvval and selvcl basically. Missing theorem:
|
To map K[X] to L[X] (there isn't a preexisting definition for this): polynomials are represented as functions so function composition
|
Yeah, you are right, I meant https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Polynomial/Eval/Defs.html#Polynomial.map Also I think you've meant that every element of L is algebraic over K. In any way I have reflected that in the definition. The definition should now be correct, if I didn't miss anything. |
To verify that the definition is correct (i.e., it defines what was intended to be defined), some basic theorems should be proven, especially for the three postulated properties, starting with the following two defining theorems:
|
The two defining theorems should be named as
|
Hah, that's worrying. The definition (likely) resolves to the empty set. I can't apply fvmptd as I can't prove sethood hypothesis of the function value. How should I resolve this? |
Maybe an ordered-pair class abstraction should be used instead of a maps-to notation (like for subgraphs, see ~df-subgr:
Then we have:
|
Alternatively, an operation can be defined, as done for fldGen in #4553 (df-fldgen). |
I have used the definition you've provided and proved isalgcl. Thanks for the help. |
I think it might be interesting, as an intermediate step, to define the class of algebraically closed fields. |
Can I get reverse closure. Given L isAlgCl K can I get that L and K are fields?
yet I fail to show d4 from h1. I'd like to use something like this https://us.metamath.org/mpeuni/vtocld.html |
Exactly, I want to state L as a class and not as a set. The final step will substitute l for L to eliminate it. |
How do I split a long link? |
So maybe:
with
and then:
with
|
So in lean it's defined as Algebraically closed and Algebraic, we can have that definition. |
To be more general, we can omit the
|
In the comment for isalgcl, the polynom p should be a positive degree |
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.
For now with the long link use a url shortener
Edit: Yeah, metamath.exe rewrap does not split the url, so it's not supported.
latexdef "AlgCl" as "\mathrm{AlgCl}"; | ||
htmldef "isAlgCl" as ' isAlgCl '; | ||
althtmldef "isAlgCl" as ' isAlgCl '; | ||
latexdef "isAlgCl" as "\mathrm{isAlgClc}"; |
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.
latexdef "isAlgCl" as "\mathrm{isAlgClc}"; | |
latexdef "isAlgCl" as "\mathrm{isAlgCl}"; |
typo
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 tried to commit your suggestion. it sadly didn't work. I've manually commited it.
So what do I do with the link then? |
An alternative to a url shortener as stated above is to create a file on github for maybe not only just the single link but more links and commentary. (I was thinking about making a place for links since I keep finding random ones like https://www.c82.net/euclid/ that might be lost because of disorganization and that I'm not working on it right now) If such a page is on github it is likely that the resulting link will fit, even with a |
What is the status of this old PR? The only open issue seems to be the link which is too long. So either (my preference in the given order):
|
Oh, sorry I am currently a little bit on the busier side. I will clean the PR up when I find time. |
I have fixed up the definitions and added @avekens comments. I'll do a refactor once I have again some more time in the future. I am unsure whether this axiomatic approach is good. I see @tirix progress and I am debating whether I should wait or help him prove key lemmas. After all it would be nicer if it didn't rely on some hypotheses which I just postulate, even though they have been proven. |
I'm progressing, but at a very slow pace! :-) One interesting tool would be to use Then to write " As for the algebraic closure, one tool we use often is the intersection. The algebraic closure of
I.e. the algebraic closure of Its existence would be trivial as soon as The advantage to reuse |
PS. This approach has the drawback that a "bigger field" I think my recently defined |
Ok I'll think I'll go with your approach. To build it from the ground up. I wouldn't know where to start currently anyways. Maybe we should just try to find out which lemmas/concepts we need to progress and where we can cut corners. For example we might not need the full construction with arbitrary fields, which involve Zorn's lemma but instead do it with @digama0's definition. I currently have more of a problem is I miss the forest because of the trees. I'll gladly work on the lower level technical details to get the formalisation moving, but I don't feel comfortable to start because I am missing the general idea of the proof. Currently I have proven everything that is not construction dependent, Theorem 6.1 seemed to depend on much of the construction of the algebraic closure. Maybe we can modularise that better and extract data so that we have three tasks.
I don't know what data we need. I'd assume, existence of primitive roots, algebraic closure property for arbitrary elements (for the inverse of the Frobenius, although here it's likely that any finite field that contains primitive roots would suffice) and several facts about primitive roots in general. What do you think about it? Would this be something that interests you? |
I think maybe the only API you need is:
So you can either:
We might still have to introduce a definition and some properties for perfect fields for the second bullet point. |
Thank you for your feedback. Alright, that sounds good. I'll go with that approach and close this PR as it won't be used. I'll open a PR in the blueprints repo outlining how I would do it, I'll try to bundle the data and see if it works. |
Define the algebraic closure of as the class of all fields that satisfy the following three properties:
Also postulate the axiom that the algebraic closure exists. This is needed to eventually discharge the hypotheses of the form
The definition fails for unknown reasons to me. Maybe one of you can help me.
Definition in lean:
https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosure
and its existence
https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.html#AlgebraicClosure.instField