Description: Temporary construction for the splitting field of a polynomial. The inputs are a field r and a polynomial p that we want to split, along with a tuple j in the same format as the output. The output is a tuple <. S , F >. where S is the splitting field and F is an injective homomorphism from the original field r .
The function works by repeatedly finding the smallest monic irreducible factor, and extending the field by that factor using the polyFld construction. We keep track of a total order in each of the splitting fields so that we can pick an element definably without needing global choice. (Contributed by Mario Carneiro, 2-Dec-2014)
Ref | Expression | ||
---|---|---|---|
Assertion | df-sfl1 | |- splitFld1 = ( r e. _V , j e. _V |-> ( p e. ( Poly1 ` r ) |-> ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) ` ( card ` ( 1 ... ( r deg1 p ) ) ) ) ) ) |
Step | Hyp | Ref | Expression |
---|---|---|---|
0 | csf1 | |- splitFld1 |
|
1 | vr | |- r |
|
2 | cvv | |- _V |
|
3 | vj | |- j |
|
4 | vp | |- p |
|
5 | cpl1 | |- Poly1 |
|
6 | 1 | cv | |- r |
7 | 6 5 | cfv | |- ( Poly1 ` r ) |
8 | vs | |- s |
|
9 | vf | |- f |
|
10 | cmpl | |- mPoly |
|
11 | 8 | cv | |- s |
12 | 11 10 | cfv | |- ( mPoly ` s ) |
13 | vm | |- m |
|
14 | vg | |- g |
|
15 | cmn1 | |- Monic1p |
|
16 | 11 15 | cfv | |- ( Monic1p ` s ) |
17 | cir | |- Irred |
|
18 | 13 | cv | |- m |
19 | 18 17 | cfv | |- ( Irred ` m ) |
20 | 16 19 | cin | |- ( ( Monic1p ` s ) i^i ( Irred ` m ) ) |
21 | 14 | cv | |- g |
22 | cdsr | |- ||r |
|
23 | 18 22 | cfv | |- ( ||r ` m ) |
24 | 4 | cv | |- p |
25 | 9 | cv | |- f |
26 | 24 25 | ccom | |- ( p o. f ) |
27 | 21 26 23 | wbr | |- g ( ||r ` m ) ( p o. f ) |
28 | c1 | |- 1 |
|
29 | clt | |- < |
|
30 | cdg1 | |- deg1 |
|
31 | 11 21 30 | co | |- ( s deg1 g ) |
32 | 28 31 29 | wbr | |- 1 < ( s deg1 g ) |
33 | 27 32 | wa | |- ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) |
34 | 33 14 20 | crab | |- { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } |
35 | vb | |- b |
|
36 | c0g | |- 0g |
|
37 | 18 36 | cfv | |- ( 0g ` m ) |
38 | 26 37 | wceq | |- ( p o. f ) = ( 0g ` m ) |
39 | 35 | cv | |- b |
40 | c0 | |- (/) |
|
41 | 39 40 | wceq | |- b = (/) |
42 | 38 41 | wo | |- ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) |
43 | 11 25 | cop | |- <. s , f >. |
44 | cglb | |- glb |
|
45 | 39 44 | cfv | |- ( glb ` b ) |
46 | vh | |- h |
|
47 | cpfl | |- polyFld |
|
48 | 46 | cv | |- h |
49 | 11 48 47 | co | |- ( s polyFld h ) |
50 | vt | |- t |
|
51 | c1st | |- 1st |
|
52 | 50 | cv | |- t |
53 | 52 51 | cfv | |- ( 1st ` t ) |
54 | c2nd | |- 2nd |
|
55 | 52 54 | cfv | |- ( 2nd ` t ) |
56 | 25 55 | ccom | |- ( f o. ( 2nd ` t ) ) |
57 | 53 56 | cop | |- <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. |
58 | 50 49 57 | csb | |- [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. |
59 | 46 45 58 | csb | |- [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. |
60 | 42 43 59 | cif | |- if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) |
61 | 35 34 60 | csb | |- [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) |
62 | 13 12 61 | csb | |- [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) |
63 | 8 9 2 2 62 | cmpo | |- ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) |
64 | 3 | cv | |- j |
65 | 63 64 | crdg | |- rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) |
66 | ccrd | |- card |
|
67 | cfz | |- ... |
|
68 | 6 24 30 | co | |- ( r deg1 p ) |
69 | 28 68 67 | co | |- ( 1 ... ( r deg1 p ) ) |
70 | 69 66 | cfv | |- ( card ` ( 1 ... ( r deg1 p ) ) ) |
71 | 70 65 | cfv | |- ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) ` ( card ` ( 1 ... ( r deg1 p ) ) ) ) |
72 | 4 7 71 | cmpt | |- ( p e. ( Poly1 ` r ) |-> ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) ` ( card ` ( 1 ... ( r deg1 p ) ) ) ) ) |
73 | 1 3 2 2 72 | cmpo | |- ( r e. _V , j e. _V |-> ( p e. ( Poly1 ` r ) |-> ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) ` ( card ` ( 1 ... ( r deg1 p ) ) ) ) ) ) |
74 | 0 73 | wceq | |- splitFld1 = ( r e. _V , j e. _V |-> ( p e. ( Poly1 ` r ) |-> ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_ [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) | ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_ if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. , [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_ <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) ` ( card ` ( 1 ... ( r deg1 p ) ) ) ) ) ) |