Metamath Proof Explorer


Definition df-sfl1

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

Detailed syntax breakdown

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