Metamath Proof Explorer < Previous   Next > Nearby theorems Mirrors  >  Home  >  MPE Home  >  Th. List  >  ig1peu Structured version   Visualization version   GIF version

Theorem ig1peu 24770
 Description: There is a unique monic polynomial of minimal degree in any nonzero ideal. (Contributed by Stefan O'Rear, 29-Mar-2015.) (Revised by AV, 25-Sep-2020.)
Hypotheses
Ref Expression
ig1peu.p 𝑃 = (Poly1𝑅)
ig1peu.u 𝑈 = (LIdeal‘𝑃)
ig1peu.z 0 = (0g𝑃)
ig1peu.m 𝑀 = (Monic1p𝑅)
ig1peu.d 𝐷 = ( deg1𝑅)
Assertion
Ref Expression
ig1peu ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ∃!𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
Distinct variable groups:   𝐷,𝑔   𝑔,𝐼   𝑔,𝑀   𝑃,𝑔   𝑅,𝑔   𝑈,𝑔   0 ,𝑔

Proof of Theorem ig1peu
Dummy variable is distinct from all other variables.
StepHypRef Expression
1 eqid 2822 . . . . . . . . . . 11 (Base‘𝑃) = (Base‘𝑃)
2 ig1peu.u . . . . . . . . . . 11 𝑈 = (LIdeal‘𝑃)
31, 2lidlss 19974 . . . . . . . . . 10 (𝐼𝑈𝐼 ⊆ (Base‘𝑃))
433ad2ant2 1131 . . . . . . . . 9 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝐼 ⊆ (Base‘𝑃))
54ssdifd 4092 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐼 ∖ { 0 }) ⊆ ((Base‘𝑃) ∖ { 0 }))
6 imass2 5943 . . . . . . . 8 ((𝐼 ∖ { 0 }) ⊆ ((Base‘𝑃) ∖ { 0 }) → (𝐷 “ (𝐼 ∖ { 0 })) ⊆ (𝐷 “ ((Base‘𝑃) ∖ { 0 })))
75, 6syl 17 . . . . . . 7 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐷 “ (𝐼 ∖ { 0 })) ⊆ (𝐷 “ ((Base‘𝑃) ∖ { 0 })))
8 drngring 19500 . . . . . . . . 9 (𝑅 ∈ DivRing → 𝑅 ∈ Ring)
983ad2ant1 1130 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝑅 ∈ Ring)
10 ig1peu.d . . . . . . . . 9 𝐷 = ( deg1𝑅)
11 ig1peu.p . . . . . . . . 9 𝑃 = (Poly1𝑅)
12 ig1peu.z . . . . . . . . 9 0 = (0g𝑃)
1310, 11, 12, 1deg1n0ima 24688 . . . . . . . 8 (𝑅 ∈ Ring → (𝐷 “ ((Base‘𝑃) ∖ { 0 })) ⊆ ℕ0)
149, 13syl 17 . . . . . . 7 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐷 “ ((Base‘𝑃) ∖ { 0 })) ⊆ ℕ0)
157, 14sstrd 3952 . . . . . 6 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐷 “ (𝐼 ∖ { 0 })) ⊆ ℕ0)
16 nn0uz 12268 . . . . . 6 0 = (ℤ‘0)
1715, 16sseqtrdi 3992 . . . . 5 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐷 “ (𝐼 ∖ { 0 })) ⊆ (ℤ‘0))
1811ply1ring 20875 . . . . . . . . . 10 (𝑅 ∈ Ring → 𝑃 ∈ Ring)
199, 18syl 17 . . . . . . . . 9 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝑃 ∈ Ring)
20 simp2 1134 . . . . . . . . 9 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝐼𝑈)
212, 12lidl0cl 19976 . . . . . . . . 9 ((𝑃 ∈ Ring ∧ 𝐼𝑈) → 0𝐼)
2219, 20, 21syl2anc 587 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 0𝐼)
2322snssd 4715 . . . . . . 7 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → { 0 } ⊆ 𝐼)
24 simp3 1135 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝐼 ≠ { 0 })
2524necomd 3066 . . . . . . 7 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → { 0 } ≠ 𝐼)
26 pssdifn0 4297 . . . . . . 7 (({ 0 } ⊆ 𝐼 ∧ { 0 } ≠ 𝐼) → (𝐼 ∖ { 0 }) ≠ ∅)
2723, 25, 26syl2anc 587 . . . . . 6 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐼 ∖ { 0 }) ≠ ∅)
2810, 11, 1deg1xrf 24680 . . . . . . . . . 10 𝐷:(Base‘𝑃)⟶ℝ*
29 ffn 6494 . . . . . . . . . 10 (𝐷:(Base‘𝑃)⟶ℝ*𝐷 Fn (Base‘𝑃))
3028, 29ax-mp 5 . . . . . . . . 9 𝐷 Fn (Base‘𝑃)
3130a1i 11 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝐷 Fn (Base‘𝑃))
324ssdifssd 4094 . . . . . . . 8 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐼 ∖ { 0 }) ⊆ (Base‘𝑃))
33 fnimaeq0 6461 . . . . . . . 8 ((𝐷 Fn (Base‘𝑃) ∧ (𝐼 ∖ { 0 }) ⊆ (Base‘𝑃)) → ((𝐷 “ (𝐼 ∖ { 0 })) = ∅ ↔ (𝐼 ∖ { 0 }) = ∅))
3431, 32, 33syl2anc 587 . . . . . . 7 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ((𝐷 “ (𝐼 ∖ { 0 })) = ∅ ↔ (𝐼 ∖ { 0 }) = ∅))
3534necon3bid 3055 . . . . . 6 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ((𝐷 “ (𝐼 ∖ { 0 })) ≠ ∅ ↔ (𝐼 ∖ { 0 }) ≠ ∅))
3627, 35mpbird 260 . . . . 5 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐷 “ (𝐼 ∖ { 0 })) ≠ ∅)
37 infssuzcl 12320 . . . . 5 (((𝐷 “ (𝐼 ∖ { 0 })) ⊆ (ℤ‘0) ∧ (𝐷 “ (𝐼 ∖ { 0 })) ≠ ∅) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∈ (𝐷 “ (𝐼 ∖ { 0 })))
3817, 36, 37syl2anc 587 . . . 4 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∈ (𝐷 “ (𝐼 ∖ { 0 })))
3931, 32fvelimabd 6720 . . . 4 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∈ (𝐷 “ (𝐼 ∖ { 0 })) ↔ ∃ ∈ (𝐼 ∖ { 0 })(𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
4038, 39mpbid 235 . . 3 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ∃ ∈ (𝐼 ∖ { 0 })(𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
4119adantr 484 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 𝑃 ∈ Ring)
42 simpl2 1189 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 𝐼𝑈)
439adantr 484 . . . . . . . . . 10 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 𝑅 ∈ Ring)
44 eqid 2822 . . . . . . . . . . 11 (algSc‘𝑃) = (algSc‘𝑃)
45 eqid 2822 . . . . . . . . . . 11 (Base‘𝑅) = (Base‘𝑅)
4611, 44, 45, 1ply1sclf 20912 . . . . . . . . . 10 (𝑅 ∈ Ring → (algSc‘𝑃):(Base‘𝑅)⟶(Base‘𝑃))
4743, 46syl 17 . . . . . . . . 9 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (algSc‘𝑃):(Base‘𝑅)⟶(Base‘𝑃))
48 simpl1 1188 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 𝑅 ∈ DivRing)
4932sselda 3942 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ∈ (Base‘𝑃))
50 eldifsni 4696 . . . . . . . . . . . . . 14 ( ∈ (𝐼 ∖ { 0 }) → 0 )
5150adantl 485 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 0 )
52 eqid 2822 . . . . . . . . . . . . . 14 (Unic1p𝑅) = (Unic1p𝑅)
5311, 1, 12, 52drnguc1p 24769 . . . . . . . . . . . . 13 ((𝑅 ∈ DivRing ∧ ∈ (Base‘𝑃) ∧ 0 ) → ∈ (Unic1p𝑅))
5448, 49, 51, 53syl3anc 1368 . . . . . . . . . . . 12 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ∈ (Unic1p𝑅))
55 eqid 2822 . . . . . . . . . . . . 13 (Unit‘𝑅) = (Unit‘𝑅)
5610, 55, 52uc1pldg 24747 . . . . . . . . . . . 12 ( ∈ (Unic1p𝑅) → ((coe1)‘(𝐷)) ∈ (Unit‘𝑅))
5754, 56syl 17 . . . . . . . . . . 11 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((coe1)‘(𝐷)) ∈ (Unit‘𝑅))
58 eqid 2822 . . . . . . . . . . . 12 (invr𝑅) = (invr𝑅)
5955, 58unitinvcl 19418 . . . . . . . . . . 11 ((𝑅 ∈ Ring ∧ ((coe1)‘(𝐷)) ∈ (Unit‘𝑅)) → ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (Unit‘𝑅))
6043, 57, 59syl2anc 587 . . . . . . . . . 10 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (Unit‘𝑅))
6145, 55unitcl 19403 . . . . . . . . . 10 (((invr𝑅)‘((coe1)‘(𝐷))) ∈ (Unit‘𝑅) → ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (Base‘𝑅))
6260, 61syl 17 . . . . . . . . 9 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (Base‘𝑅))
6347, 62ffvelrnd 6834 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷)))) ∈ (Base‘𝑃))
64 eldifi 4078 . . . . . . . . 9 ( ∈ (𝐼 ∖ { 0 }) → 𝐼)
6564adantl 485 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → 𝐼)
66 eqid 2822 . . . . . . . . 9 (.r𝑃) = (.r𝑃)
672, 1, 66lidlmcl 19981 . . . . . . . 8 (((𝑃 ∈ Ring ∧ 𝐼𝑈) ∧ (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷)))) ∈ (Base‘𝑃) ∧ 𝐼)) → (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ 𝐼)
6841, 42, 63, 65, 67syl22anc 837 . . . . . . 7 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ 𝐼)
69 ig1peu.m . . . . . . . . 9 𝑀 = (Monic1p𝑅)
7052, 69, 11, 66, 44, 10, 58uc1pmon1p 24750 . . . . . . . 8 ((𝑅 ∈ Ring ∧ ∈ (Unic1p𝑅)) → (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ 𝑀)
7143, 54, 70syl2anc 587 . . . . . . 7 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ 𝑀)
7268, 71elind 4145 . . . . . 6 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ (𝐼𝑀))
73 eqid 2822 . . . . . . . . . 10 (RLReg‘𝑅) = (RLReg‘𝑅)
7473, 55unitrrg 20057 . . . . . . . . 9 (𝑅 ∈ Ring → (Unit‘𝑅) ⊆ (RLReg‘𝑅))
7543, 74syl 17 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (Unit‘𝑅) ⊆ (RLReg‘𝑅))
7675, 60sseldd 3943 . . . . . . 7 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (RLReg‘𝑅))
7710, 11, 73, 1, 66, 44deg1mul3 24714 . . . . . . 7 ((𝑅 ∈ Ring ∧ ((invr𝑅)‘((coe1)‘(𝐷))) ∈ (RLReg‘𝑅) ∧ ∈ (Base‘𝑃)) → (𝐷‘(((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃))) = (𝐷))
7843, 76, 49, 77syl3anc 1368 . . . . . 6 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → (𝐷‘(((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃))) = (𝐷))
79 fveqeq2 6661 . . . . . . 7 (𝑔 = (((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) → ((𝐷𝑔) = (𝐷) ↔ (𝐷‘(((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃))) = (𝐷)))
8079rspcev 3598 . . . . . 6 (((((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃)) ∈ (𝐼𝑀) ∧ (𝐷‘(((algSc‘𝑃)‘((invr𝑅)‘((coe1)‘(𝐷))))(.r𝑃))) = (𝐷)) → ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = (𝐷))
8172, 78, 80syl2anc 587 . . . . 5 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = (𝐷))
82 eqeq2 2834 . . . . . 6 ((𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) → ((𝐷𝑔) = (𝐷) ↔ (𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
8382rexbidv 3283 . . . . 5 ((𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) → (∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = (𝐷) ↔ ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
8481, 83syl5ibcom 248 . . . 4 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ ∈ (𝐼 ∖ { 0 })) → ((𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) → ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
8584rexlimdva 3270 . . 3 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (∃ ∈ (𝐼 ∖ { 0 })(𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) → ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
8640, 85mpd 15 . 2 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
87 eqid 2822 . . . . . . 7 (-g𝑃) = (-g𝑃)
889ad2antrr 725 . . . . . . 7 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → 𝑅 ∈ Ring)
89 simprl 770 . . . . . . . . 9 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑔 ∈ (𝐼𝑀))
9089elin2d 4150 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑔𝑀)
9190adantr 484 . . . . . . 7 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → 𝑔𝑀)
92 simprl 770 . . . . . . 7 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → (𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
93 simprr 772 . . . . . . . . 9 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ∈ (𝐼𝑀))
9493elin2d 4150 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑀)
9594adantr 484 . . . . . . 7 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → 𝑀)
96 simprr 772 . . . . . . 7 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
9710, 69, 11, 87, 88, 91, 92, 95, 96deg1submon1p 24751 . . . . . 6 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))) → (𝐷‘(𝑔(-g𝑃))) < inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
9897ex 416 . . . . 5 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )) → (𝐷‘(𝑔(-g𝑃))) < inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
9917ad2antrr 725 . . . . . . . . 9 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝐷 “ (𝐼 ∖ { 0 })) ⊆ (ℤ‘0))
10030a1i 11 . . . . . . . . . 10 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → 𝐷 Fn (Base‘𝑃))
10132ad2antrr 725 . . . . . . . . . 10 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝐼 ∖ { 0 }) ⊆ (Base‘𝑃))
10219adantr 484 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑃 ∈ Ring)
103 simpl2 1189 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝐼𝑈)
10489elin1d 4149 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑔𝐼)
10593elin1d 4149 . . . . . . . . . . . . 13 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝐼)
1062, 87lidlsubcl 19980 . . . . . . . . . . . . 13 (((𝑃 ∈ Ring ∧ 𝐼𝑈) ∧ (𝑔𝐼𝐼)) → (𝑔(-g𝑃)) ∈ 𝐼)
107102, 103, 104, 105, 106syl22anc 837 . . . . . . . . . . . 12 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (𝑔(-g𝑃)) ∈ 𝐼)
108107adantr 484 . . . . . . . . . . 11 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝑔(-g𝑃)) ∈ 𝐼)
109 simpr 488 . . . . . . . . . . 11 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝑔(-g𝑃)) ≠ 0 )
110 eldifsn 4693 . . . . . . . . . . 11 ((𝑔(-g𝑃)) ∈ (𝐼 ∖ { 0 }) ↔ ((𝑔(-g𝑃)) ∈ 𝐼 ∧ (𝑔(-g𝑃)) ≠ 0 ))
111108, 109, 110sylanbrc 586 . . . . . . . . . 10 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝑔(-g𝑃)) ∈ (𝐼 ∖ { 0 }))
112 fnfvima 6978 . . . . . . . . . 10 ((𝐷 Fn (Base‘𝑃) ∧ (𝐼 ∖ { 0 }) ⊆ (Base‘𝑃) ∧ (𝑔(-g𝑃)) ∈ (𝐼 ∖ { 0 })) → (𝐷‘(𝑔(-g𝑃))) ∈ (𝐷 “ (𝐼 ∖ { 0 })))
113100, 101, 111, 112syl3anc 1368 . . . . . . . . 9 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → (𝐷‘(𝑔(-g𝑃))) ∈ (𝐷 “ (𝐼 ∖ { 0 })))
114 infssuzle 12319 . . . . . . . . 9 (((𝐷 “ (𝐼 ∖ { 0 })) ⊆ (ℤ‘0) ∧ (𝐷‘(𝑔(-g𝑃))) ∈ (𝐷 “ (𝐼 ∖ { 0 }))) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ≤ (𝐷‘(𝑔(-g𝑃))))
11599, 113, 114syl2anc 587 . . . . . . . 8 ((((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) ∧ (𝑔(-g𝑃)) ≠ 0 ) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ≤ (𝐷‘(𝑔(-g𝑃))))
116115ex 416 . . . . . . 7 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ((𝑔(-g𝑃)) ≠ 0 → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ≤ (𝐷‘(𝑔(-g𝑃)))))
117 imassrn 5918 . . . . . . . . . . 11 (𝐷 “ (𝐼 ∖ { 0 })) ⊆ ran 𝐷
118 frn 6500 . . . . . . . . . . . 12 (𝐷:(Base‘𝑃)⟶ℝ* → ran 𝐷 ⊆ ℝ*)
11928, 118ax-mp 5 . . . . . . . . . . 11 ran 𝐷 ⊆ ℝ*
120117, 119sstri 3951 . . . . . . . . . 10 (𝐷 “ (𝐼 ∖ { 0 })) ⊆ ℝ*
121120, 38sseldi 3940 . . . . . . . . 9 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∈ ℝ*)
122121adantr 484 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∈ ℝ*)
123 ringgrp 19293 . . . . . . . . . . . 12 (𝑃 ∈ Ring → 𝑃 ∈ Grp)
12419, 123syl 17 . . . . . . . . . . 11 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → 𝑃 ∈ Grp)
125124adantr 484 . . . . . . . . . 10 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑃 ∈ Grp)
126 inss1 4179 . . . . . . . . . . . . 13 (𝐼𝑀) ⊆ 𝐼
127126, 4sstrid 3953 . . . . . . . . . . . 12 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → (𝐼𝑀) ⊆ (Base‘𝑃))
128127adantr 484 . . . . . . . . . . 11 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (𝐼𝑀) ⊆ (Base‘𝑃))
129128, 89sseldd 3943 . . . . . . . . . 10 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → 𝑔 ∈ (Base‘𝑃))
130128, 93sseldd 3943 . . . . . . . . . 10 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ∈ (Base‘𝑃))
1311, 87grpsubcl 18170 . . . . . . . . . 10 ((𝑃 ∈ Grp ∧ 𝑔 ∈ (Base‘𝑃) ∧ ∈ (Base‘𝑃)) → (𝑔(-g𝑃)) ∈ (Base‘𝑃))
132125, 129, 130, 131syl3anc 1368 . . . . . . . . 9 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (𝑔(-g𝑃)) ∈ (Base‘𝑃))
13310, 11, 1deg1xrcl 24681 . . . . . . . . 9 ((𝑔(-g𝑃)) ∈ (Base‘𝑃) → (𝐷‘(𝑔(-g𝑃))) ∈ ℝ*)
134132, 133syl 17 . . . . . . . 8 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (𝐷‘(𝑔(-g𝑃))) ∈ ℝ*)
135122, 134xrlenltd 10696 . . . . . . 7 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ≤ (𝐷‘(𝑔(-g𝑃))) ↔ ¬ (𝐷‘(𝑔(-g𝑃))) < inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
136116, 135sylibd 242 . . . . . 6 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ((𝑔(-g𝑃)) ≠ 0 → ¬ (𝐷‘(𝑔(-g𝑃))) < inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
137136necon4ad 3030 . . . . 5 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ((𝐷‘(𝑔(-g𝑃))) < inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) → (𝑔(-g𝑃)) = 0 ))
13898, 137syld 47 . . . 4 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )) → (𝑔(-g𝑃)) = 0 ))
1391, 12, 87grpsubeq0 18176 . . . . 5 ((𝑃 ∈ Grp ∧ 𝑔 ∈ (Base‘𝑃) ∧ ∈ (Base‘𝑃)) → ((𝑔(-g𝑃)) = 0𝑔 = ))
140125, 129, 130, 139syl3anc 1368 . . . 4 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → ((𝑔(-g𝑃)) = 0𝑔 = ))
141138, 140sylibd 242 . . 3 (((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) ∧ (𝑔 ∈ (𝐼𝑀) ∧ ∈ (𝐼𝑀))) → (((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )) → 𝑔 = ))
142141ralrimivva 3181 . 2 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ∀𝑔 ∈ (𝐼𝑀)∀ ∈ (𝐼𝑀)(((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )) → 𝑔 = ))
143 fveqeq2 6661 . . 3 (𝑔 = → ((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ↔ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )))
144143reu4 3697 . 2 (∃!𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ↔ (∃𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ ∀𝑔 ∈ (𝐼𝑀)∀ ∈ (𝐼𝑀)(((𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ) ∧ (𝐷) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < )) → 𝑔 = )))
14586, 142, 144sylanbrc 586 1 ((𝑅 ∈ DivRing ∧ 𝐼𝑈𝐼 ≠ { 0 }) → ∃!𝑔 ∈ (𝐼𝑀)(𝐷𝑔) = inf((𝐷 “ (𝐼 ∖ { 0 })), ℝ, < ))
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 399   ∧ w3a 1084   = wceq 1538   ∈ wcel 2114   ≠ wne 3011  ∀wral 3130  ∃wrex 3131  ∃!wreu 3132   ∖ cdif 3905   ∩ cin 3907   ⊆ wss 3908  ∅c0 4265  {csn 4539   class class class wbr 5042  ran crn 5533   “ cima 5535   Fn wfn 6329  ⟶wf 6330  ‘cfv 6334  (class class class)co 7140  infcinf 8893  ℝcr 10525  0cc0 10526  ℝ*cxr 10663   < clt 10664   ≤ cle 10665  ℕ0cn0 11885  ℤ≥cuz 12231  Basecbs 16474  .rcmulr 16557  0gc0g 16704  Grpcgrp 18094  -gcsg 18096  Ringcrg 19288  Unitcui 19383  invrcinvr 19415  DivRingcdr 19493  LIdealclidl 19933  RLRegcrlreg 20043  algSccascl 20539  Poly1cpl1 20804  coe1cco1 20805   deg1 cdg1 24653  Monic1pcmn1 24724  Unic1pcuc1p 24725 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2178  ax-ext 2794  ax-rep 5166  ax-sep 5179  ax-nul 5186  ax-pow 5243  ax-pr 5307  ax-un 7446  ax-cnex 10582  ax-resscn 10583  ax-1cn 10584  ax-icn 10585  ax-addcl 10586  ax-addrcl 10587  ax-mulcl 10588  ax-mulrcl 10589  ax-mulcom 10590  ax-addass 10591  ax-mulass 10592  ax-distr 10593  ax-i2m1 10594  ax-1ne0 10595  ax-1rid 10596  ax-rnegex 10597  ax-rrecex 10598  ax-cnre 10599  ax-pre-lttri 10600  ax-pre-lttrn 10601  ax-pre-ltadd 10602  ax-pre-mulgt0 10603  ax-pre-sup 10604  ax-addf 10605  ax-mulf 10606 This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3or 1085  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2622  df-eu 2653  df-clab 2801  df-cleq 2815  df-clel 2894  df-nfc 2962  df-ne 3012  df-nel 3116  df-ral 3135  df-rex 3136  df-reu 3137  df-rmo 3138  df-rab 3139  df-v 3471  df-sbc 3748  df-csb 3856  df-dif 3911  df-un 3913  df-in 3915  df-ss 3925  df-pss 3927  df-nul 4266  df-if 4440  df-pw 4513  df-sn 4540  df-pr 4542  df-tp 4544  df-op 4546  df-uni 4814  df-int 4852  df-iun 4896  df-iin 4897  df-br 5043  df-opab 5105  df-mpt 5123  df-tr 5149  df-id 5437  df-eprel 5442  df-po 5451  df-so 5452  df-fr 5491  df-se 5492  df-we 5493  df-xp 5538  df-rel 5539  df-cnv 5540  df-co 5541  df-dm 5542  df-rn 5543  df-res 5544  df-ima 5545  df-pred 6126  df-ord 6172  df-on 6173  df-lim 6174  df-suc 6175  df-iota 6293  df-fun 6336  df-fn 6337  df-f 6338  df-f1 6339  df-fo 6340  df-f1o 6341  df-fv 6342  df-isom 6343  df-riota 7098  df-ov 7143  df-oprab 7144  df-mpo 7145  df-of 7394  df-ofr 7395  df-om 7566  df-1st 7675  df-2nd 7676  df-supp 7818  df-tpos 7879  df-wrecs 7934  df-recs 7995  df-rdg 8033  df-1o 8089  df-2o 8090  df-oadd 8093  df-er 8276  df-map 8395  df-pm 8396  df-ixp 8449  df-en 8497  df-dom 8498  df-sdom 8499  df-fin 8500  df-fsupp 8822  df-sup 8894  df-inf 8895  df-oi 8962  df-card 9356  df-pnf 10666  df-mnf 10667  df-xr 10668  df-ltxr 10669  df-le 10670  df-sub 10861  df-neg 10862  df-nn 11626  df-2 11688  df-3 11689  df-4 11690  df-5 11691  df-6 11692  df-7 11693  df-8 11694  df-9 11695  df-n0 11886  df-z 11970  df-dec 12087  df-uz 12232  df-fz 12886  df-fzo 13029  df-seq 13365  df-hash 13687  df-struct 16476  df-ndx 16477  df-slot 16478  df-base 16480  df-sets 16481  df-ress 16482  df-plusg 16569  df-mulr 16570  df-starv 16571  df-sca 16572  df-vsca 16573  df-ip 16574  df-tset 16575  df-ple 16576  df-ds 16578  df-unif 16579  df-0g 16706  df-gsum 16707  df-mre 16848  df-mrc 16849  df-acs 16851  df-mgm 17843  df-sgrp 17892  df-mnd 17903  df-mhm 17947  df-submnd 17948  df-grp 18097  df-minusg 18098  df-sbg 18099  df-mulg 18216  df-subg 18267  df-ghm 18347  df-cntz 18438  df-cmn 18899  df-abl 18900  df-mgp 19231  df-ur 19243  df-ring 19290  df-cring 19291  df-oppr 19367  df-dvdsr 19385  df-unit 19386  df-invr 19416  df-drng 19495  df-subrg 19524  df-lmod 19627  df-lss 19695  df-sra 19935  df-rgmod 19936  df-lidl 19937  df-rlreg 20047  df-cnfld 20090  df-ascl 20542  df-psr 20592  df-mvr 20593  df-mpl 20594  df-opsr 20596  df-psr1 20807  df-vr1 20808  df-ply1 20809  df-coe1 20810  df-mdeg 24654  df-deg1 24655  df-mon1 24729  df-uc1p 24730 This theorem is referenced by:  ig1pval3  24773
 Copyright terms: Public domain W3C validator