Metamath Proof Explorer


Theorem nn0srg

Description: The nonnegative integers form a semiring (commutative by subcmn ). (Contributed by Thierry Arnoux, 1-May-2018)

Ref Expression
Assertion nn0srg ( ℂflds0 ) ∈ SRing

Proof

Step Hyp Ref Expression
1 cnring fld ∈ Ring
2 ringcmn ( ℂfld ∈ Ring → ℂfld ∈ CMnd )
3 1 2 ax-mp fld ∈ CMnd
4 nn0subm 0 ∈ ( SubMnd ‘ ℂfld )
5 eqid ( ℂflds0 ) = ( ℂflds0 )
6 5 submcmn ( ( ℂfld ∈ CMnd ∧ ℕ0 ∈ ( SubMnd ‘ ℂfld ) ) → ( ℂflds0 ) ∈ CMnd )
7 3 4 6 mp2an ( ℂflds0 ) ∈ CMnd
8 nn0ex 0 ∈ V
9 eqid ( mulGrp ‘ ℂfld ) = ( mulGrp ‘ ℂfld )
10 5 9 mgpress ( ( ℂfld ∈ CMnd ∧ ℕ0 ∈ V ) → ( ( mulGrp ‘ ℂfld ) ↾s0 ) = ( mulGrp ‘ ( ℂflds0 ) ) )
11 3 8 10 mp2an ( ( mulGrp ‘ ℂfld ) ↾s0 ) = ( mulGrp ‘ ( ℂflds0 ) )
12 nn0sscn 0 ⊆ ℂ
13 1nn0 1 ∈ ℕ0
14 nn0mulcl ( ( 𝑥 ∈ ℕ0𝑦 ∈ ℕ0 ) → ( 𝑥 · 𝑦 ) ∈ ℕ0 )
15 14 rgen2 𝑥 ∈ ℕ0𝑦 ∈ ℕ0 ( 𝑥 · 𝑦 ) ∈ ℕ0
16 9 ringmgp ( ℂfld ∈ Ring → ( mulGrp ‘ ℂfld ) ∈ Mnd )
17 1 16 ax-mp ( mulGrp ‘ ℂfld ) ∈ Mnd
18 cnfldbas ℂ = ( Base ‘ ℂfld )
19 9 18 mgpbas ℂ = ( Base ‘ ( mulGrp ‘ ℂfld ) )
20 cnfld1 1 = ( 1r ‘ ℂfld )
21 9 20 ringidval 1 = ( 0g ‘ ( mulGrp ‘ ℂfld ) )
22 cnfldmul · = ( .r ‘ ℂfld )
23 9 22 mgpplusg · = ( +g ‘ ( mulGrp ‘ ℂfld ) )
24 19 21 23 issubm ( ( mulGrp ‘ ℂfld ) ∈ Mnd → ( ℕ0 ∈ ( SubMnd ‘ ( mulGrp ‘ ℂfld ) ) ↔ ( ℕ0 ⊆ ℂ ∧ 1 ∈ ℕ0 ∧ ∀ 𝑥 ∈ ℕ0𝑦 ∈ ℕ0 ( 𝑥 · 𝑦 ) ∈ ℕ0 ) ) )
25 17 24 ax-mp ( ℕ0 ∈ ( SubMnd ‘ ( mulGrp ‘ ℂfld ) ) ↔ ( ℕ0 ⊆ ℂ ∧ 1 ∈ ℕ0 ∧ ∀ 𝑥 ∈ ℕ0𝑦 ∈ ℕ0 ( 𝑥 · 𝑦 ) ∈ ℕ0 ) )
26 12 13 15 25 mpbir3an 0 ∈ ( SubMnd ‘ ( mulGrp ‘ ℂfld ) )
27 eqid ( ( mulGrp ‘ ℂfld ) ↾s0 ) = ( ( mulGrp ‘ ℂfld ) ↾s0 )
28 27 submmnd ( ℕ0 ∈ ( SubMnd ‘ ( mulGrp ‘ ℂfld ) ) → ( ( mulGrp ‘ ℂfld ) ↾s0 ) ∈ Mnd )
29 26 28 ax-mp ( ( mulGrp ‘ ℂfld ) ↾s0 ) ∈ Mnd
30 11 29 eqeltrri ( mulGrp ‘ ( ℂflds0 ) ) ∈ Mnd
31 simpl ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑥 ∈ ℕ0 )
32 31 nn0cnd ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑥 ∈ ℂ )
33 simprl ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑦 ∈ ℕ0 )
34 33 nn0cnd ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑦 ∈ ℂ )
35 simprr ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑧 ∈ ℕ0 )
36 35 nn0cnd ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → 𝑧 ∈ ℂ )
37 32 34 36 adddid ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) )
38 32 34 36 adddird ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) )
39 37 38 jca ( ( 𝑥 ∈ ℕ0 ∧ ( 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ) ) → ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
40 39 ralrimivva ( 𝑥 ∈ ℕ0 → ∀ 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
41 nn0cn ( 𝑥 ∈ ℕ0𝑥 ∈ ℂ )
42 41 mul02d ( 𝑥 ∈ ℕ0 → ( 0 · 𝑥 ) = 0 )
43 41 mul01d ( 𝑥 ∈ ℕ0 → ( 𝑥 · 0 ) = 0 )
44 40 42 43 jca32 ( 𝑥 ∈ ℕ0 → ( ∀ 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( 0 · 𝑥 ) = 0 ∧ ( 𝑥 · 0 ) = 0 ) ) )
45 44 rgen 𝑥 ∈ ℕ0 ( ∀ 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( 0 · 𝑥 ) = 0 ∧ ( 𝑥 · 0 ) = 0 ) )
46 5 18 ressbas2 ( ℕ0 ⊆ ℂ → ℕ0 = ( Base ‘ ( ℂflds0 ) ) )
47 12 46 ax-mp 0 = ( Base ‘ ( ℂflds0 ) )
48 eqid ( mulGrp ‘ ( ℂflds0 ) ) = ( mulGrp ‘ ( ℂflds0 ) )
49 cnfldadd + = ( +g ‘ ℂfld )
50 5 49 ressplusg ( ℕ0 ∈ V → + = ( +g ‘ ( ℂflds0 ) ) )
51 8 50 ax-mp + = ( +g ‘ ( ℂflds0 ) )
52 5 22 ressmulr ( ℕ0 ∈ V → · = ( .r ‘ ( ℂflds0 ) ) )
53 8 52 ax-mp · = ( .r ‘ ( ℂflds0 ) )
54 ringmnd ( ℂfld ∈ Ring → ℂfld ∈ Mnd )
55 1 54 ax-mp fld ∈ Mnd
56 0nn0 0 ∈ ℕ0
57 cnfld0 0 = ( 0g ‘ ℂfld )
58 5 18 57 ress0g ( ( ℂfld ∈ Mnd ∧ 0 ∈ ℕ0 ∧ ℕ0 ⊆ ℂ ) → 0 = ( 0g ‘ ( ℂflds0 ) ) )
59 55 56 12 58 mp3an 0 = ( 0g ‘ ( ℂflds0 ) )
60 47 48 51 53 59 issrg ( ( ℂflds0 ) ∈ SRing ↔ ( ( ℂflds0 ) ∈ CMnd ∧ ( mulGrp ‘ ( ℂflds0 ) ) ∈ Mnd ∧ ∀ 𝑥 ∈ ℕ0 ( ∀ 𝑦 ∈ ℕ0𝑧 ∈ ℕ0 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( 0 · 𝑥 ) = 0 ∧ ( 𝑥 · 0 ) = 0 ) ) ) )
61 7 30 45 60 mpbir3an ( ℂflds0 ) ∈ SRing