-
Notifications
You must be signed in to change notification settings - Fork 92
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
Constructible numbers - initial idea #4578
base: develop
Are you sure you want to change the base?
Conversation
Thierry, thank you making the effort and writing down the initial draft! I'll comment on everything in one message, instead of starting a review.
It would be nice to prove that they are equal, but actually it suffices to show that
I'm not a huge fan of special notation for extensions of degree 2. My impression was that we try to avoid new definitions in set.mm like the plague, even if they look natural.
which isn't worth the hassle, in my opinion. In the comment to
But the assumption is
I was hoping to avoid this for the proof of |
Co-authored-by: icecream17 <[email protected]>
Co-authored-by: icecream17 <[email protected]>
Co-authored-by: icecream17 <[email protected]>
Co-authored-by: icecream17 <[email protected]>
Yes, that's what |
Yes, you're right, in general we want to avoid it, and it's good to note that it can be much shorter. There is an even shorter version without free variable, namely Instead, I could use a "local" definition wih a class variable and repeat it in each theorem where it is used. |
I think if the general result exists and can be used, it's great because then it can serve as a foundation for more advanced things later. Here it will already be used 3 times. I'm wondering if I need a condition that the polynomial |
Sounds good (I hope we have enough class variables...).
I don't think monicity is required in
you consider polynomials over If you want to show a proper result like
|
( E. a e. s E. b e. s E. c e. s E. d e. s E. t e. RR E. r e. RR ( x = ( a + ( t x. ( b - a ) ) ) /\ x = ( c + ( r x. ( d - c ) ) ) /\ -. ( Im ` ( ( * ` ( b - a ) ) x. ( d - c ) ) ) = 0 ) | ||
\/ E. a e. s E. b e. s E. c e. s E. e e. s E. f e. s E. t e. RR ( x = ( a + ( t x. ( b - a ) ) ) /\ ( abs ` ( x - c ) ) = ( abs ` ( e - f ) ) ) | ||
\/ E. a e. s E. b e. s E. c e. s E. d e. s E. e e. s E. f e. s E. t e. RR ( -. a = d /\ ( abs ` ( x - a ) ) = ( abs ` ( b - c ) ) /\ ( abs ` ( x - d ) ) = ( abs ` ( e - f ) ) ) ) | ||
} ) , { 0 , 1 } ) " _om ) $. |
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.
Very long and complicated! Would it be helpful to have separate definitions for "set of intersections of two lines", "set of intersections of a line and a circle" and "set of intersections of two circles"?
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.
We try to limit the number of definitions - do you think it would be wise to add them? I don't know about any other use.
BTW, do you think we could reuse any of the theorems of the ~ inlinecirc02p
family?
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.
We try to limit the number of definitions - do you think it would be wise to add them? I don't know about any other use.
OK, maybe we can provide theorems instead which show the three kinds of construction explicitly.
BTW, do you think we could reuse any of the theorems of the
~ inlinecirc02p
family?
Maybe, but the definitions are too different at the moment. Maybe we need a mapping of the different representations first.
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.
OK, maybe we can provide theorems instead which show the three kinds of construction explicitly.
I have suggested some theorems in this post which decompose the definition into three subgoals. We don't have the algebraic definition of constructible numbers with towers yet, so they can't be used as is, but maybe we could restate those only in terms of fields. For example, for a line, given by two points, and a circle, given by three points, if these points lie in some subfield of C, then the intersection also lies in quadratic extension of that subfield.
I think we unfortunately can't use inlinecirc02p
since we need to keep track of the subfield we are working in.
Co-authored-by: icecream17 <[email protected]>
With this latest submission I'm adding a definition of algebraic numbers, and of minimal polynomials, as discussed in this comment. This includes a proof of the existence of a monic polynomial, the second step would be to prove its unicity. This also includes a definition for algebraic numbers in a field extension, which could be useful for @metakunt's #4554 . The definition of minimal polynomial is not yet used, so it might still change. I've included the new definitions directly in set.mm and not in the constr.mm file, because I'm using Yamma which does not support included files yet. This is a larger change with several theorems moved to main, and some hopefully useful theorems added, so I hope it can be merged before I'm going on. Two interesting new theorems are:
I was surprised none of those existed yet. |
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.
Nice work! The definitions are too technical for me, so I've been able to spot only one small inconsistency in comments, and have no other remarks.
Ah cool, how would we define the algebraic closure with this definition? |
althtmldef "fldGen" as "fldGen"; | ||
latexdef "fldGen" as "\mathrm{fldGen}"; | ||
htmldef "fldGen" as " fldGen "; | ||
althtmldef "fldGen" as " fldGen"; |
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.
A space character is missing at the end.
evls1scafv.r $e |- ( ph -> R e. ( SubRing ` S ) ) $. | ||
evls1scafv.x $e |- ( ph -> X e. R ) $. | ||
evls1scafv.1 $e |- ( ph -> C e. B ) $. | ||
$( Value of the univariate polynomial evaluation for a scalars. |
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 a scalar" or "for scalars"
algnbval.2 $e |- ( ph -> E e. Field ) $. | ||
algnbval.3 $e |- ( ph -> F e. ( SubDRing ` E ) ) $. | ||
$( The algebraic numbers over a field ` F ` within a field ` E ` . That | ||
is, the numbers ` X ` which are roots of nonconstant polynomials |
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.
"nonzero polynomials" (p e. ( dom O \ { Z } )
)?
Maybe it should be explicitly made clear that the idiom ( ` ' ( O ` p ) " { .0. } )
must be "translated": by ~fniniseg2, it is { x e. ( Base ` E ) | ( ( O ` p ) ` x ) = .0. }
, which matches the description in the comment.
Proposal:
The algebraic numbers over a field
F
within a fieldE
. That is, the numbersx
which are roots of nonzero polynomialsp ( x )
with coefficients in( Base ` F )
. This is expressed by the idiom( ` ' ( O ` p ) " { .0. } )
, which can be translated into{ x e. ( Base ` E ) | ( ( O ` p ) ` x ) = .0. }
by ~fniniseg2 .
@savask Here is an initial version for the scratchpad file for constructible numbers, as discussed in #4246 .
This is a separate file to it should be extremely easy to review and even edit directly on GitHub.
This brings no new proofs, only a few definitions.
I think a theorem like
fldextdgirred
might be important, both to prove that the extensions are quadratic, and to prove that the non-constructible numbers lead to cubic extensions, by exhibiting irreductible polynomials.I'm thinking this might be the most difficult part; I think the rest should be more easily filled in.