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 = ( 𝑟 ∈ V , 𝑗 ∈ V ↦ ( 𝑝 ∈ ( Poly1 ‘ 𝑟 ) ↦ ( rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) ‘ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) ) ) ) |
Step | Hyp | Ref | Expression |
---|---|---|---|
0 | csf1 | ⊢ splitFld1 | |
1 | vr | ⊢ 𝑟 | |
2 | cvv | ⊢ V | |
3 | vj | ⊢ 𝑗 | |
4 | vp | ⊢ 𝑝 | |
5 | cpl1 | ⊢ Poly1 | |
6 | 1 | cv | ⊢ 𝑟 |
7 | 6 5 | cfv | ⊢ ( Poly1 ‘ 𝑟 ) |
8 | vs | ⊢ 𝑠 | |
9 | vf | ⊢ 𝑓 | |
10 | 8 | cv | ⊢ 𝑠 |
11 | 10 5 | cfv | ⊢ ( Poly1 ‘ 𝑠 ) |
12 | vm | ⊢ 𝑚 | |
13 | vg | ⊢ 𝑔 | |
14 | cmn1 | ⊢ Monic1p | |
15 | 10 14 | cfv | ⊢ ( Monic1p ‘ 𝑠 ) |
16 | cir | ⊢ Irred | |
17 | 12 | cv | ⊢ 𝑚 |
18 | 17 16 | cfv | ⊢ ( Irred ‘ 𝑚 ) |
19 | 15 18 | cin | ⊢ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) |
20 | 13 | cv | ⊢ 𝑔 |
21 | cdsr | ⊢ ∥r | |
22 | 17 21 | cfv | ⊢ ( ∥r ‘ 𝑚 ) |
23 | 4 | cv | ⊢ 𝑝 |
24 | 9 | cv | ⊢ 𝑓 |
25 | 23 24 | ccom | ⊢ ( 𝑝 ∘ 𝑓 ) |
26 | 20 25 22 | wbr | ⊢ 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) |
27 | c1 | ⊢ 1 | |
28 | clt | ⊢ < | |
29 | cdg1 | ⊢ deg1 | |
30 | 10 20 29 | co | ⊢ ( 𝑠 deg1 𝑔 ) |
31 | 27 30 28 | wbr | ⊢ 1 < ( 𝑠 deg1 𝑔 ) |
32 | 26 31 | wa | ⊢ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) |
33 | 32 13 19 | crab | ⊢ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } |
34 | vb | ⊢ 𝑏 | |
35 | c0g | ⊢ 0g | |
36 | 17 35 | cfv | ⊢ ( 0g ‘ 𝑚 ) |
37 | 25 36 | wceq | ⊢ ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) |
38 | 34 | cv | ⊢ 𝑏 |
39 | c0 | ⊢ ∅ | |
40 | 38 39 | wceq | ⊢ 𝑏 = ∅ |
41 | 37 40 | wo | ⊢ ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) |
42 | 10 24 | cop | ⊢ 〈 𝑠 , 𝑓 〉 |
43 | cglb | ⊢ glb | |
44 | 38 43 | cfv | ⊢ ( glb ‘ 𝑏 ) |
45 | vh | ⊢ ℎ | |
46 | cpfl | ⊢ polyFld | |
47 | 45 | cv | ⊢ ℎ |
48 | 10 47 46 | co | ⊢ ( 𝑠 polyFld ℎ ) |
49 | vt | ⊢ 𝑡 | |
50 | c1st | ⊢ 1st | |
51 | 49 | cv | ⊢ 𝑡 |
52 | 51 50 | cfv | ⊢ ( 1st ‘ 𝑡 ) |
53 | c2nd | ⊢ 2nd | |
54 | 51 53 | cfv | ⊢ ( 2nd ‘ 𝑡 ) |
55 | 24 54 | ccom | ⊢ ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) |
56 | 52 55 | cop | ⊢ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 |
57 | 49 48 56 | csb | ⊢ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 |
58 | 45 44 57 | csb | ⊢ ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 |
59 | 41 42 58 | cif | ⊢ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) |
60 | 34 33 59 | csb | ⊢ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) |
61 | 12 11 60 | csb | ⊢ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) |
62 | 8 9 2 2 61 | cmpo | ⊢ ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) |
63 | 3 | cv | ⊢ 𝑗 |
64 | 62 63 | crdg | ⊢ rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) |
65 | ccrd | ⊢ card | |
66 | cfz | ⊢ ... | |
67 | 6 23 29 | co | ⊢ ( 𝑟 deg1 𝑝 ) |
68 | 27 67 66 | co | ⊢ ( 1 ... ( 𝑟 deg1 𝑝 ) ) |
69 | 68 65 | cfv | ⊢ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) |
70 | 69 64 | cfv | ⊢ ( rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) ‘ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) ) |
71 | 4 7 70 | cmpt | ⊢ ( 𝑝 ∈ ( Poly1 ‘ 𝑟 ) ↦ ( rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) ‘ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) ) ) |
72 | 1 3 2 2 71 | cmpo | ⊢ ( 𝑟 ∈ V , 𝑗 ∈ V ↦ ( 𝑝 ∈ ( Poly1 ‘ 𝑟 ) ↦ ( rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) ‘ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) ) ) ) |
73 | 0 72 | wceq | ⊢ splitFld1 = ( 𝑟 ∈ V , 𝑗 ∈ V ↦ ( 𝑝 ∈ ( Poly1 ‘ 𝑟 ) ↦ ( rec ( ( 𝑠 ∈ V , 𝑓 ∈ V ↦ ⦋ ( Poly1 ‘ 𝑠 ) / 𝑚 ⦌ ⦋ { 𝑔 ∈ ( ( Monic1p ‘ 𝑠 ) ∩ ( Irred ‘ 𝑚 ) ) ∣ ( 𝑔 ( ∥r ‘ 𝑚 ) ( 𝑝 ∘ 𝑓 ) ∧ 1 < ( 𝑠 deg1 𝑔 ) ) } / 𝑏 ⦌ if ( ( ( 𝑝 ∘ 𝑓 ) = ( 0g ‘ 𝑚 ) ∨ 𝑏 = ∅ ) , 〈 𝑠 , 𝑓 〉 , ⦋ ( glb ‘ 𝑏 ) / ℎ ⦌ ⦋ ( 𝑠 polyFld ℎ ) / 𝑡 ⦌ 〈 ( 1st ‘ 𝑡 ) , ( 𝑓 ∘ ( 2nd ‘ 𝑡 ) ) 〉 ) ) , 𝑗 ) ‘ ( card ‘ ( 1 ... ( 𝑟 deg1 𝑝 ) ) ) ) ) ) |