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 𝑝 ) ) ) ) ) ) |