-
Notifications
You must be signed in to change notification settings - Fork 90
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
Algebraic closure definition and existence axiom. #4554
base: develop
Are you sure you want to change the base?
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 |
that isn't provable since we have substitute L with something that isn't even a field. Then At best the hypothesis can be the setvar Edit: However the reverse closure IS possible thanks to brabga |
I fail to see why I can't eliminate it. My goal was to state lemmas about algebraic closures in a way like that
then that would be the API for the algebraic closure. Concretely, why I think I need the algebraic closure is because I want to count the set of primitive roots of a certain class of polynomials. There is a contradiction so ch = False. ch does not contain any variables and the existence of the algebraic closure should allow me to get rid of the hypothesis. Or do I miss something drastic? |
there is no "ch does not depend on L", only "ch does not depend on l" |
It would also be useful to prove that if L and M are two fields that each are an algebraic closure of a Field K, then there is a Field isomorphism between L and M. |
The field homomorphism result is here https://us.metamath.org/mpeuni/fldhmf1.html and was proven in #4542 The equivalence result of algebraic closures in in lean, but there are multiple isomorphism theorems https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosure.equivOfAlgebraic' Then there is https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosure.equivOfEquiv the algebraic closure of two isomorphic rings is also isomorphic. There are a lot of theorems that we will need if we want to develop that theory. Here is the roadmap https://github.com/leanprover-community/mathlib3/wiki/Algebraic-closure-roadmap of lean's development. If anyone wants to work on the project we can work on it with @tirix blueprint. @icecream17 I want to define a set of roots in the algebraic closure, then I want to count them, by that time that I've counted them I should be able to discard L and finish the proof using either eqidd or cbv* theorems. The reason I need the algebraic closure is because I need primitive roots, which I will likely define in the upcoming PR. |
I'm not sure why your plan wouldn't work with
another edit after far too much self-clarification: For example say we have a theorem that proves
This is equivalent to Then apply the theorem but substitute |
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 df-acl $a |- AlgCl = { f | A. p e. ( Base |
In the comment for isalgcl, the polynom p should be a positive degree |
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