Metamath Proof Explorer


Theorem zringfrac

Description: The field of fractions of the ring of integers is isomorphic to the field of the rational numbers. (Contributed by Thierry Arnoux, 4-May-2025)

Ref Expression
Hypotheses zringfrac.1 𝑄 = ( ℂflds ℚ )
zringfrac.2 = ( ℤring ~RL ( ℤ ∖ { 0 } ) )
zringfrac.3 𝐹 = ( 𝑞 ∈ ℚ ↦ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
Assertion zringfrac 𝐹 ∈ ( 𝑄 RingIso ( Frac ‘ ℤring ) )

Proof

Step Hyp Ref Expression
1 zringfrac.1 𝑄 = ( ℂflds ℚ )
2 zringfrac.2 = ( ℤring ~RL ( ℤ ∖ { 0 } ) )
3 zringfrac.3 𝐹 = ( 𝑞 ∈ ℚ ↦ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
4 1 qdrng 𝑄 ∈ DivRing
5 drngring ( 𝑄 ∈ DivRing → 𝑄 ∈ Ring )
6 4 5 ax-mp 𝑄 ∈ Ring
7 zringidom ring ∈ IDomn
8 id ( ℤring ∈ IDomn → ℤring ∈ IDomn )
9 8 fracfld ( ℤring ∈ IDomn → ( Frac ‘ ℤring ) ∈ Field )
10 9 fldcrngd ( ℤring ∈ IDomn → ( Frac ‘ ℤring ) ∈ CRing )
11 10 crngringd ( ℤring ∈ IDomn → ( Frac ‘ ℤring ) ∈ Ring )
12 7 11 ax-mp ( Frac ‘ ℤring ) ∈ Ring
13 6 12 pm3.2i ( 𝑄 ∈ Ring ∧ ( Frac ‘ ℤring ) ∈ Ring )
14 ringgrp ( 𝑄 ∈ Ring → 𝑄 ∈ Grp )
15 6 14 ax-mp 𝑄 ∈ Grp
16 ringgrp ( ( Frac ‘ ℤring ) ∈ Ring → ( Frac ‘ ℤring ) ∈ Grp )
17 12 16 ax-mp ( Frac ‘ ℤring ) ∈ Grp
18 15 17 pm3.2i ( 𝑄 ∈ Grp ∧ ( Frac ‘ ℤring ) ∈ Grp )
19 qnumcl ( 𝑞 ∈ ℚ → ( numer ‘ 𝑞 ) ∈ ℤ )
20 qdencl ( 𝑞 ∈ ℚ → ( denom ‘ 𝑞 ) ∈ ℕ )
21 20 nnzd ( 𝑞 ∈ ℚ → ( denom ‘ 𝑞 ) ∈ ℤ )
22 20 nnne0d ( 𝑞 ∈ ℚ → ( denom ‘ 𝑞 ) ≠ 0 )
23 21 22 eldifsnd ( 𝑞 ∈ ℚ → ( denom ‘ 𝑞 ) ∈ ( ℤ ∖ { 0 } ) )
24 19 23 opelxpd ( 𝑞 ∈ ℚ → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ∈ ( ℤ × ( ℤ ∖ { 0 } ) ) )
25 2 ovexi ∈ V
26 25 ecelqsi ( ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ∈ ( ℤ × ( ℤ ∖ { 0 } ) ) → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) )
27 24 26 syl ( 𝑞 ∈ ℚ → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) )
28 zringbas ℤ = ( Base ‘ ℤring )
29 zring0 0 = ( 0g ‘ ℤring )
30 zringmulr · = ( .r ‘ ℤring )
31 eqid ( -g ‘ ℤring ) = ( -g ‘ ℤring )
32 eqid ( ℤ × ( ℤ ∖ { 0 } ) ) = ( ℤ × ( ℤ ∖ { 0 } ) )
33 fracval ( Frac ‘ ℤring ) = ( ℤring RLocal ( RLReg ‘ ℤring ) )
34 8 idomdomd ( ℤring ∈ IDomn → ℤring ∈ Domn )
35 7 34 ax-mp ring ∈ Domn
36 eqid ( RLReg ‘ ℤring ) = ( RLReg ‘ ℤring )
37 28 36 29 isdomn6 ( ℤring ∈ Domn ↔ ( ℤring ∈ NzRing ∧ ( ℤ ∖ { 0 } ) = ( RLReg ‘ ℤring ) ) )
38 35 37 mpbi ( ℤring ∈ NzRing ∧ ( ℤ ∖ { 0 } ) = ( RLReg ‘ ℤring ) )
39 38 simpri ( ℤ ∖ { 0 } ) = ( RLReg ‘ ℤring )
40 39 oveq2i ( ℤring RLocal ( ℤ ∖ { 0 } ) ) = ( ℤring RLocal ( RLReg ‘ ℤring ) )
41 33 40 eqtr4i ( Frac ‘ ℤring ) = ( ℤring RLocal ( ℤ ∖ { 0 } ) )
42 7 a1i ( ⊤ → ℤring ∈ IDomn )
43 difssd ( ⊤ → ( ℤ ∖ { 0 } ) ⊆ ℤ )
44 28 29 30 31 32 41 2 42 43 rlocbas ( ⊤ → ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) = ( Base ‘ ( Frac ‘ ℤring ) ) )
45 44 mptru ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) = ( Base ‘ ( Frac ‘ ℤring ) )
46 27 45 eleqtrdi ( 𝑞 ∈ ℚ → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( Base ‘ ( Frac ‘ ℤring ) ) )
47 3 46 fmpti 𝐹 : ℚ ⟶ ( Base ‘ ( Frac ‘ ℤring ) )
48 ecexg ( ∈ V → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ V )
49 25 48 ax-mp [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ V
50 3 fvmpt2 ( ( 𝑞 ∈ ℚ ∧ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ V ) → ( 𝐹𝑞 ) = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
51 49 50 mpan2 ( 𝑞 ∈ ℚ → ( 𝐹𝑞 ) = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
52 51 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹𝑞 ) = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
53 fveq2 ( 𝑞 = 𝑝 → ( numer ‘ 𝑞 ) = ( numer ‘ 𝑝 ) )
54 fveq2 ( 𝑞 = 𝑝 → ( denom ‘ 𝑞 ) = ( denom ‘ 𝑝 ) )
55 53 54 opeq12d ( 𝑞 = 𝑝 → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ = ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ )
56 55 eceq1d ( 𝑞 = 𝑝 → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] )
57 56 3 27 fvmpt3 ( 𝑝 ∈ ℚ → ( 𝐹𝑝 ) = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] )
58 57 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹𝑝 ) = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] )
59 52 58 oveq12d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝐹𝑞 ) ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) ( 𝐹𝑝 ) ) = ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) )
60 41 fveq2i ( +g ‘ ( Frac ‘ ℤring ) ) = ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) )
61 60 oveqi ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) ( 𝐹𝑝 ) )
62 61 a1i ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) ( 𝐹𝑝 ) ) )
63 fveq2 ( 𝑞 = 𝑢 → ( numer ‘ 𝑞 ) = ( numer ‘ 𝑢 ) )
64 fveq2 ( 𝑞 = 𝑢 → ( denom ‘ 𝑞 ) = ( denom ‘ 𝑢 ) )
65 63 64 opeq12d ( 𝑞 = 𝑢 → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ = ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ )
66 65 eceq1d ( 𝑞 = 𝑢 → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] )
67 66 cbvmptv ( 𝑞 ∈ ℚ ↦ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ) = ( 𝑢 ∈ ℚ ↦ [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] )
68 3 67 eqtri 𝐹 = ( 𝑢 ∈ ℚ ↦ [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] )
69 zring1 1 = ( 1r ‘ ℤring )
70 7 a1i ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ℤring ∈ IDomn )
71 70 idomcringd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ℤring ∈ CRing )
72 35 a1i ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ℤring ∈ Domn )
73 eqid ( mulGrp ‘ ℤring ) = ( mulGrp ‘ ℤring )
74 28 29 73 isdomn3 ( ℤring ∈ Domn ↔ ( ℤring ∈ Ring ∧ ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) ) )
75 72 74 sylib ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ℤring ∈ Ring ∧ ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) ) )
76 75 simprd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) )
77 28 29 69 30 31 32 2 71 76 erler ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → Er ( ℤ × ( ℤ ∖ { 0 } ) ) )
78 qcn ( 𝑞 ∈ ℚ → 𝑞 ∈ ℂ )
79 78 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → 𝑞 ∈ ℂ )
80 qcn ( 𝑝 ∈ ℚ → 𝑝 ∈ ℂ )
81 80 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → 𝑝 ∈ ℂ )
82 79 81 addcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 + 𝑝 ) ∈ ℂ )
83 qaddcl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 + 𝑝 ) ∈ ℚ )
84 qdencl ( ( 𝑞 + 𝑝 ) ∈ ℚ → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ℕ )
85 83 84 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ℕ )
86 85 nncnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ℂ )
87 20 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ∈ ℕ )
88 87 nncnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ∈ ℂ )
89 qdencl ( 𝑝 ∈ ℚ → ( denom ‘ 𝑝 ) ∈ ℕ )
90 89 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ∈ ℕ )
91 90 nncnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ∈ ℂ )
92 88 91 mulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ℂ )
93 82 86 92 mul32d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 + 𝑝 ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( 𝑞 + 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) )
94 qmuldeneqnum ( ( 𝑞 + 𝑝 ) ∈ ℚ → ( ( 𝑞 + 𝑝 ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) = ( numer ‘ ( 𝑞 + 𝑝 ) ) )
95 83 94 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 + 𝑝 ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) = ( numer ‘ ( 𝑞 + 𝑝 ) ) )
96 95 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 + 𝑝 ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( numer ‘ ( 𝑞 + 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) )
97 79 88 91 mulassd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( denom ‘ 𝑝 ) ) = ( 𝑞 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) )
98 qmuldeneqnum ( 𝑞 ∈ ℚ → ( 𝑞 · ( denom ‘ 𝑞 ) ) = ( numer ‘ 𝑞 ) )
99 98 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 · ( denom ‘ 𝑞 ) ) = ( numer ‘ 𝑞 ) )
100 99 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( denom ‘ 𝑝 ) ) = ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) )
101 97 100 eqtr3d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) )
102 81 91 88 mulassd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑝 · ( denom ‘ 𝑝 ) ) · ( denom ‘ 𝑞 ) ) = ( 𝑝 · ( ( denom ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) )
103 qmuldeneqnum ( 𝑝 ∈ ℚ → ( 𝑝 · ( denom ‘ 𝑝 ) ) = ( numer ‘ 𝑝 ) )
104 103 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑝 · ( denom ‘ 𝑝 ) ) = ( numer ‘ 𝑝 ) )
105 104 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑝 · ( denom ‘ 𝑝 ) ) · ( denom ‘ 𝑞 ) ) = ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) )
106 91 88 mulcomd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) = ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) )
107 106 oveq2d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑝 · ( ( denom ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) = ( 𝑝 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) )
108 102 105 107 3eqtr3rd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑝 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) )
109 101 108 oveq12d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) + ( 𝑝 · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) ) = ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) )
110 79 92 81 109 joinlmuladdmuld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 + 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) )
111 110 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 + 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) = ( ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) )
112 93 96 111 3eqtr3d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( numer ‘ ( 𝑞 + 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) )
113 39 oveq2i ( ℤring ~RL ( ℤ ∖ { 0 } ) ) = ( ℤring ~RL ( RLReg ‘ ℤring ) )
114 2 113 eqtri = ( ℤring ~RL ( RLReg ‘ ℤring ) )
115 qnumcl ( ( 𝑞 + 𝑝 ) ∈ ℚ → ( numer ‘ ( 𝑞 + 𝑝 ) ) ∈ ℤ )
116 83 115 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ ( 𝑞 + 𝑝 ) ) ∈ ℤ )
117 19 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ 𝑞 ) ∈ ℤ )
118 89 nnzd ( 𝑝 ∈ ℚ → ( denom ‘ 𝑝 ) ∈ ℤ )
119 118 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ∈ ℤ )
120 117 119 zmulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ℤ )
121 qnumcl ( 𝑝 ∈ ℚ → ( numer ‘ 𝑝 ) ∈ ℤ )
122 121 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ 𝑝 ) ∈ ℤ )
123 21 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ∈ ℤ )
124 122 123 zmulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ∈ ℤ )
125 120 124 zaddcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) ∈ ℤ )
126 85 nnzd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ℤ )
127 85 nnne0d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ≠ 0 )
128 126 127 eldifsnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ( ℤ ∖ { 0 } ) )
129 128 39 eleqtrdi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 + 𝑝 ) ) ∈ ( RLReg ‘ ℤring ) )
130 123 119 zmulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ℤ )
131 87 90 nnmulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ℕ )
132 131 nnne0d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ≠ 0 )
133 130 132 eldifsnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ( ℤ ∖ { 0 } ) )
134 133 39 eleqtrdi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ∈ ( RLReg ‘ ℤring ) )
135 28 30 114 71 116 125 129 134 fracerl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ ⟨ ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ↔ ( ( numer ‘ ( 𝑞 + 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) · ( denom ‘ ( 𝑞 + 𝑝 ) ) ) ) )
136 112 135 mpbird ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ ⟨ ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ )
137 77 136 erthi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → [ ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ ] = [ ⟨ ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ] )
138 137 adantr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → [ ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ ] = [ ⟨ ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ] )
139 fveq2 ( 𝑢 = ( 𝑞 + 𝑝 ) → ( numer ‘ 𝑢 ) = ( numer ‘ ( 𝑞 + 𝑝 ) ) )
140 fveq2 ( 𝑢 = ( 𝑞 + 𝑝 ) → ( denom ‘ 𝑢 ) = ( denom ‘ ( 𝑞 + 𝑝 ) ) )
141 139 140 opeq12d ( 𝑢 = ( 𝑞 + 𝑝 ) → ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ = ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ )
142 141 adantl ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ = ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ )
143 142 eceq1d ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] = [ ⟨ ( numer ‘ ( 𝑞 + 𝑝 ) ) , ( denom ‘ ( 𝑞 + 𝑝 ) ) ⟩ ] )
144 zringplusg + = ( +g ‘ ℤring )
145 eqid ( ℤring RLocal ( ℤ ∖ { 0 } ) ) = ( ℤring RLocal ( ℤ ∖ { 0 } ) )
146 zringcrng ring ∈ CRing
147 146 a1i ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ℤring ∈ CRing )
148 35 74 mpbi ( ℤring ∈ Ring ∧ ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) )
149 148 simpri ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) )
150 149 a1i ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) )
151 117 adantr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( numer ‘ 𝑞 ) ∈ ℤ )
152 122 adantr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( numer ‘ 𝑝 ) ∈ ℤ )
153 23 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ∈ ( ℤ ∖ { 0 } ) )
154 153 adantr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( denom ‘ 𝑞 ) ∈ ( ℤ ∖ { 0 } ) )
155 89 nnne0d ( 𝑝 ∈ ℚ → ( denom ‘ 𝑝 ) ≠ 0 )
156 118 155 eldifsnd ( 𝑝 ∈ ℚ → ( denom ‘ 𝑝 ) ∈ ( ℤ ∖ { 0 } ) )
157 156 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ∈ ( ℤ ∖ { 0 } ) )
158 157 adantr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( denom ‘ 𝑝 ) ∈ ( ℤ ∖ { 0 } ) )
159 eqid ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) = ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) )
160 28 30 144 145 2 147 150 151 152 154 158 159 rlocaddval ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) = [ ⟨ ( ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) + ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ] )
161 138 143 160 3eqtr4d ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ 𝑢 = ( 𝑞 + 𝑝 ) ) → [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] = ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) )
162 ovexd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) ∈ V )
163 68 161 83 162 fvmptd2 ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹 ‘ ( 𝑞 + 𝑝 ) ) = ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( +g ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) )
164 59 62 163 3eqtr4rd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹 ‘ ( 𝑞 + 𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) )
165 164 rgen2 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 + 𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) )
166 47 165 pm3.2i ( 𝐹 : ℚ ⟶ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 + 𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) )
167 1 qrngbas ℚ = ( Base ‘ 𝑄 )
168 eqid ( Base ‘ ( Frac ‘ ℤring ) ) = ( Base ‘ ( Frac ‘ ℤring ) )
169 qex ℚ ∈ V
170 cnfldadd + = ( +g ‘ ℂfld )
171 1 170 ressplusg ( ℚ ∈ V → + = ( +g𝑄 ) )
172 169 171 ax-mp + = ( +g𝑄 )
173 eqid ( +g ‘ ( Frac ‘ ℤring ) ) = ( +g ‘ ( Frac ‘ ℤring ) )
174 167 168 172 173 isghm ( 𝐹 ∈ ( 𝑄 GrpHom ( Frac ‘ ℤring ) ) ↔ ( ( 𝑄 ∈ Grp ∧ ( Frac ‘ ℤring ) ∈ Grp ) ∧ ( 𝐹 : ℚ ⟶ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 + 𝑝 ) ) = ( ( 𝐹𝑞 ) ( +g ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) ) ) )
175 18 166 174 mpbir2an 𝐹 ∈ ( 𝑄 GrpHom ( Frac ‘ ℤring ) )
176 eqid ( mulGrp ‘ 𝑄 ) = ( mulGrp ‘ 𝑄 )
177 176 ringmgp ( 𝑄 ∈ Ring → ( mulGrp ‘ 𝑄 ) ∈ Mnd )
178 6 177 ax-mp ( mulGrp ‘ 𝑄 ) ∈ Mnd
179 eqid ( mulGrp ‘ ( Frac ‘ ℤring ) ) = ( mulGrp ‘ ( Frac ‘ ℤring ) )
180 179 ringmgp ( ( Frac ‘ ℤring ) ∈ Ring → ( mulGrp ‘ ( Frac ‘ ℤring ) ) ∈ Mnd )
181 12 180 ax-mp ( mulGrp ‘ ( Frac ‘ ℤring ) ) ∈ Mnd
182 178 181 pm3.2i ( ( mulGrp ‘ 𝑄 ) ∈ Mnd ∧ ( mulGrp ‘ ( Frac ‘ ℤring ) ) ∈ Mnd )
183 eqid ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) = ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) )
184 28 30 144 145 2 71 76 117 122 153 157 183 rlocmulval ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) = [ ⟨ ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ] )
185 79 81 mulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 · 𝑝 ) ∈ ℂ )
186 qmulcl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝑞 · 𝑝 ) ∈ ℚ )
187 qdencl ( ( 𝑞 · 𝑝 ) ∈ ℚ → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ℕ )
188 186 187 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ℕ )
189 188 nncnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ℂ )
190 185 189 92 mul32d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 · 𝑝 ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( 𝑞 · 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) )
191 79 81 88 91 mul4d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( 𝑝 · ( denom ‘ 𝑝 ) ) ) )
192 191 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 · 𝑝 ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( 𝑝 · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) )
193 190 192 eqtrd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 · 𝑝 ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( 𝑝 · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) )
194 qmuldeneqnum ( ( 𝑞 · 𝑝 ) ∈ ℚ → ( ( 𝑞 · 𝑝 ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( numer ‘ ( 𝑞 · 𝑝 ) ) )
195 186 194 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · 𝑝 ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( numer ‘ ( 𝑞 · 𝑝 ) ) )
196 195 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 · 𝑝 ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) = ( ( numer ‘ ( 𝑞 · 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) )
197 99 104 oveq12d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( 𝑝 · ( denom ‘ 𝑝 ) ) ) = ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) )
198 197 oveq1d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( 𝑞 · ( denom ‘ 𝑞 ) ) · ( 𝑝 · ( denom ‘ 𝑝 ) ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) )
199 193 196 198 3eqtr3rd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( ( numer ‘ ( 𝑞 · 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) )
200 117 122 zmulcld ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) ∈ ℤ )
201 qnumcl ( ( 𝑞 · 𝑝 ) ∈ ℚ → ( numer ‘ ( 𝑞 · 𝑝 ) ) ∈ ℤ )
202 186 201 syl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ ( 𝑞 · 𝑝 ) ) ∈ ℤ )
203 188 nnzd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ℤ )
204 188 nnne0d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ≠ 0 )
205 203 204 eldifsnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ( ℤ ∖ { 0 } ) )
206 205 39 eleqtrdi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ ( 𝑞 · 𝑝 ) ) ∈ ( RLReg ‘ ℤring ) )
207 28 30 114 71 200 202 134 206 fracerl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ⟨ ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ↔ ( ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) · ( denom ‘ ( 𝑞 · 𝑝 ) ) ) = ( ( numer ‘ ( 𝑞 · 𝑝 ) ) · ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ) ) )
208 199 207 mpbird ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ⟨ ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ )
209 77 208 erthi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → [ ⟨ ( ( numer ‘ 𝑞 ) · ( numer ‘ 𝑝 ) ) , ( ( denom ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) ⟩ ] = [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] )
210 184 209 eqtrd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) = [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] )
211 41 fveq2i ( .r ‘ ( Frac ‘ ℤring ) ) = ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) )
212 211 a1i ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( .r ‘ ( Frac ‘ ℤring ) ) = ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) )
213 212 52 58 oveq123d ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( 𝐹𝑞 ) ( .r ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) = ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ( .r ‘ ( ℤring RLocal ( ℤ ∖ { 0 } ) ) ) [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) )
214 fveq2 ( 𝑢 = ( 𝑞 · 𝑝 ) → ( numer ‘ 𝑢 ) = ( numer ‘ ( 𝑞 · 𝑝 ) ) )
215 fveq2 ( 𝑢 = ( 𝑞 · 𝑝 ) → ( denom ‘ 𝑢 ) = ( denom ‘ ( 𝑞 · 𝑝 ) ) )
216 214 215 opeq12d ( 𝑢 = ( 𝑞 · 𝑝 ) → ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ = ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ )
217 216 eceq1d ( 𝑢 = ( 𝑞 · 𝑝 ) → [ ⟨ ( numer ‘ 𝑢 ) , ( denom ‘ 𝑢 ) ⟩ ] = [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] )
218 ecexg ( ∈ V → [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] ∈ V )
219 25 218 mp1i ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] ∈ V )
220 68 217 186 219 fvmptd3 ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹 ‘ ( 𝑞 · 𝑝 ) ) = [ ⟨ ( numer ‘ ( 𝑞 · 𝑝 ) ) , ( denom ‘ ( 𝑞 · 𝑝 ) ) ⟩ ] )
221 210 213 220 3eqtr4rd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( 𝐹 ‘ ( 𝑞 · 𝑝 ) ) = ( ( 𝐹𝑞 ) ( .r ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) )
222 221 rgen2 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 · 𝑝 ) ) = ( ( 𝐹𝑞 ) ( .r ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) )
223 zssq ℤ ⊆ ℚ
224 1z 1 ∈ ℤ
225 223 224 sselii 1 ∈ ℚ
226 fveq2 ( 𝑞 = 1 → ( numer ‘ 𝑞 ) = ( numer ‘ 1 ) )
227 1zzd ( ℤring ∈ IDomn → 1 ∈ ℤ )
228 227 znumd ( ℤring ∈ IDomn → ( numer ‘ 1 ) = 1 )
229 7 228 ax-mp ( numer ‘ 1 ) = 1
230 226 229 eqtrdi ( 𝑞 = 1 → ( numer ‘ 𝑞 ) = 1 )
231 fveq2 ( 𝑞 = 1 → ( denom ‘ 𝑞 ) = ( denom ‘ 1 ) )
232 227 zdend ( ℤring ∈ IDomn → ( denom ‘ 1 ) = 1 )
233 7 232 ax-mp ( denom ‘ 1 ) = 1
234 231 233 eqtrdi ( 𝑞 = 1 → ( denom ‘ 𝑞 ) = 1 )
235 230 234 opeq12d ( 𝑞 = 1 → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ = ⟨ 1 , 1 ⟩ )
236 235 eceq1d ( 𝑞 = 1 → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ 1 , 1 ⟩ ] )
237 236 3 49 fvmpt3i ( 1 ∈ ℚ → ( 𝐹 ‘ 1 ) = [ ⟨ 1 , 1 ⟩ ] )
238 225 237 ax-mp ( 𝐹 ‘ 1 ) = [ ⟨ 1 , 1 ⟩ ]
239 47 222 238 3pm3.2i ( 𝐹 : ℚ ⟶ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 · 𝑝 ) ) = ( ( 𝐹𝑞 ) ( .r ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) ∧ ( 𝐹 ‘ 1 ) = [ ⟨ 1 , 1 ⟩ ] )
240 176 167 mgpbas ℚ = ( Base ‘ ( mulGrp ‘ 𝑄 ) )
241 179 168 mgpbas ( Base ‘ ( Frac ‘ ℤring ) ) = ( Base ‘ ( mulGrp ‘ ( Frac ‘ ℤring ) ) )
242 cnfldmul · = ( .r ‘ ℂfld )
243 1 242 ressmulr ( ℚ ∈ V → · = ( .r𝑄 ) )
244 169 243 ax-mp · = ( .r𝑄 )
245 176 244 mgpplusg · = ( +g ‘ ( mulGrp ‘ 𝑄 ) )
246 eqid ( .r ‘ ( Frac ‘ ℤring ) ) = ( .r ‘ ( Frac ‘ ℤring ) )
247 179 246 mgpplusg ( .r ‘ ( Frac ‘ ℤring ) ) = ( +g ‘ ( mulGrp ‘ ( Frac ‘ ℤring ) ) )
248 1 qrng1 1 = ( 1r𝑄 )
249 176 248 ringidval 1 = ( 0g ‘ ( mulGrp ‘ 𝑄 ) )
250 146 a1i ( ℤring ∈ IDomn → ℤring ∈ CRing )
251 149 a1i ( ℤring ∈ IDomn → ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) )
252 eqid [ ⟨ 1 , 1 ⟩ ] = [ ⟨ 1 , 1 ⟩ ]
253 29 69 41 2 250 251 252 rloc1r ( ℤring ∈ IDomn → [ ⟨ 1 , 1 ⟩ ] = ( 1r ‘ ( Frac ‘ ℤring ) ) )
254 7 253 ax-mp [ ⟨ 1 , 1 ⟩ ] = ( 1r ‘ ( Frac ‘ ℤring ) )
255 179 254 ringidval [ ⟨ 1 , 1 ⟩ ] = ( 0g ‘ ( mulGrp ‘ ( Frac ‘ ℤring ) ) )
256 240 241 245 247 249 255 ismhm ( 𝐹 ∈ ( ( mulGrp ‘ 𝑄 ) MndHom ( mulGrp ‘ ( Frac ‘ ℤring ) ) ) ↔ ( ( ( mulGrp ‘ 𝑄 ) ∈ Mnd ∧ ( mulGrp ‘ ( Frac ‘ ℤring ) ) ∈ Mnd ) ∧ ( 𝐹 : ℚ ⟶ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( 𝐹 ‘ ( 𝑞 · 𝑝 ) ) = ( ( 𝐹𝑞 ) ( .r ‘ ( Frac ‘ ℤring ) ) ( 𝐹𝑝 ) ) ∧ ( 𝐹 ‘ 1 ) = [ ⟨ 1 , 1 ⟩ ] ) ) )
257 182 239 256 mpbir2an 𝐹 ∈ ( ( mulGrp ‘ 𝑄 ) MndHom ( mulGrp ‘ ( Frac ‘ ℤring ) ) )
258 175 257 pm3.2i ( 𝐹 ∈ ( 𝑄 GrpHom ( Frac ‘ ℤring ) ) ∧ 𝐹 ∈ ( ( mulGrp ‘ 𝑄 ) MndHom ( mulGrp ‘ ( Frac ‘ ℤring ) ) ) )
259 176 179 isrhm ( 𝐹 ∈ ( 𝑄 RingHom ( Frac ‘ ℤring ) ) ↔ ( ( 𝑄 ∈ Ring ∧ ( Frac ‘ ℤring ) ∈ Ring ) ∧ ( 𝐹 ∈ ( 𝑄 GrpHom ( Frac ‘ ℤring ) ) ∧ 𝐹 ∈ ( ( mulGrp ‘ 𝑄 ) MndHom ( mulGrp ‘ ( Frac ‘ ℤring ) ) ) ) ) )
260 13 258 259 mpbir2an 𝐹 ∈ ( 𝑄 RingHom ( Frac ‘ ℤring ) )
261 46 rgen 𝑞 ∈ ℚ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( Base ‘ ( Frac ‘ ℤring ) )
262 117 zcnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ 𝑞 ) ∈ ℂ )
263 122 zcnd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( numer ‘ 𝑝 ) ∈ ℂ )
264 22 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ≠ 0 )
265 155 adantl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ≠ 0 )
266 262 88 263 91 264 265 divmuleqd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ( ( numer ‘ 𝑞 ) / ( denom ‘ 𝑞 ) ) = ( ( numer ‘ 𝑝 ) / ( denom ‘ 𝑝 ) ) ↔ ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) = ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) )
267 153 39 eleqtrdi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑞 ) ∈ ( RLReg ‘ ℤring ) )
268 157 39 eleqtrdi ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( denom ‘ 𝑝 ) ∈ ( RLReg ‘ ℤring ) )
269 28 30 114 71 117 122 267 268 fracerl ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ↔ ( ( numer ‘ 𝑞 ) · ( denom ‘ 𝑝 ) ) = ( ( numer ‘ 𝑝 ) · ( denom ‘ 𝑞 ) ) ) )
270 24 adantr ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ∈ ( ℤ × ( ℤ ∖ { 0 } ) ) )
271 77 270 erth ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ↔ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) )
272 266 269 271 3bitr2rd ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ↔ ( ( numer ‘ 𝑞 ) / ( denom ‘ 𝑞 ) ) = ( ( numer ‘ 𝑝 ) / ( denom ‘ 𝑝 ) ) ) )
273 272 biimpa ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) → ( ( numer ‘ 𝑞 ) / ( denom ‘ 𝑞 ) ) = ( ( numer ‘ 𝑝 ) / ( denom ‘ 𝑝 ) ) )
274 qeqnumdivden ( 𝑞 ∈ ℚ → 𝑞 = ( ( numer ‘ 𝑞 ) / ( denom ‘ 𝑞 ) ) )
275 274 ad2antrr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) → 𝑞 = ( ( numer ‘ 𝑞 ) / ( denom ‘ 𝑞 ) ) )
276 qeqnumdivden ( 𝑝 ∈ ℚ → 𝑝 = ( ( numer ‘ 𝑝 ) / ( denom ‘ 𝑝 ) ) )
277 276 ad2antlr ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) → 𝑝 = ( ( numer ‘ 𝑝 ) / ( denom ‘ 𝑝 ) ) )
278 273 275 277 3eqtr4d ( ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) ∧ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] ) → 𝑞 = 𝑝 )
279 278 ex ( ( 𝑞 ∈ ℚ ∧ 𝑝 ∈ ℚ ) → ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] 𝑞 = 𝑝 ) )
280 279 rgen2 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] 𝑞 = 𝑝 )
281 3 56 f1mpt ( 𝐹 : ℚ –1-1→ ( Base ‘ ( Frac ‘ ℤring ) ) ↔ ( ∀ 𝑞 ∈ ℚ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑞 ∈ ℚ ∀ 𝑝 ∈ ℚ ( [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ 𝑝 ) , ( denom ‘ 𝑝 ) ⟩ ] 𝑞 = 𝑝 ) ) )
282 261 280 281 mpbir2an 𝐹 : ℚ –1-1→ ( Base ‘ ( Frac ‘ ℤring ) )
283 fveq2 ( 𝑞 = ( 𝑎 / 𝑏 ) → ( numer ‘ 𝑞 ) = ( numer ‘ ( 𝑎 / 𝑏 ) ) )
284 fveq2 ( 𝑞 = ( 𝑎 / 𝑏 ) → ( denom ‘ 𝑞 ) = ( denom ‘ ( 𝑎 / 𝑏 ) ) )
285 283 284 opeq12d ( 𝑞 = ( 𝑎 / 𝑏 ) → ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ = ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ )
286 285 eceq1d ( 𝑞 = ( 𝑎 / 𝑏 ) → [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] = [ ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ ] )
287 286 eqeq2d ( 𝑞 = ( 𝑎 / 𝑏 ) → ( 𝑧 = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] 𝑧 = [ ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ ] ) )
288 simpllr ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑎 ∈ ℤ )
289 223 288 sselid ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑎 ∈ ℚ )
290 simplr ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑏 ∈ ( ℤ ∖ { 0 } ) )
291 290 eldifad ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑏 ∈ ℤ )
292 223 291 sselid ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑏 ∈ ℚ )
293 eldifsni ( 𝑏 ∈ ( ℤ ∖ { 0 } ) → 𝑏 ≠ 0 )
294 290 293 syl ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑏 ≠ 0 )
295 qdivcl ( ( 𝑎 ∈ ℚ ∧ 𝑏 ∈ ℚ ∧ 𝑏 ≠ 0 ) → ( 𝑎 / 𝑏 ) ∈ ℚ )
296 289 292 294 295 syl3anc ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → ( 𝑎 / 𝑏 ) ∈ ℚ )
297 simpr ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] )
298 146 a1i ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → ℤring ∈ CRing )
299 149 a1i ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → ( ℤ ∖ { 0 } ) ∈ ( SubMnd ‘ ( mulGrp ‘ ℤring ) ) )
300 28 29 69 30 31 32 2 298 299 erler ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → Er ( ℤ × ( ℤ ∖ { 0 } ) ) )
301 simpl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑎 ∈ ℤ )
302 301 zcnd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑎 ∈ ℂ )
303 eldifi ( 𝑏 ∈ ( ℤ ∖ { 0 } ) → 𝑏 ∈ ℤ )
304 303 adantl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ∈ ℤ )
305 304 zcnd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ∈ ℂ )
306 293 adantl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ≠ 0 )
307 302 305 306 divcld ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( 𝑎 / 𝑏 ) ∈ ℂ )
308 223 301 sselid ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑎 ∈ ℚ )
309 223 304 sselid ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ∈ ℚ )
310 308 309 306 295 syl3anc ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( 𝑎 / 𝑏 ) ∈ ℚ )
311 qdencl ( ( 𝑎 / 𝑏 ) ∈ ℚ → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ℕ )
312 310 311 syl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ℕ )
313 312 nncnd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ℂ )
314 307 313 305 mul32d ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ( ( 𝑎 / 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) · 𝑏 ) = ( ( ( 𝑎 / 𝑏 ) · 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) )
315 qmuldeneqnum ( ( 𝑎 / 𝑏 ) ∈ ℚ → ( ( 𝑎 / 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) = ( numer ‘ ( 𝑎 / 𝑏 ) ) )
316 310 315 syl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ( 𝑎 / 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) = ( numer ‘ ( 𝑎 / 𝑏 ) ) )
317 316 oveq1d ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ( ( 𝑎 / 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) · 𝑏 ) = ( ( numer ‘ ( 𝑎 / 𝑏 ) ) · 𝑏 ) )
318 302 305 306 divcan1d ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ( 𝑎 / 𝑏 ) · 𝑏 ) = 𝑎 )
319 318 oveq1d ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ( ( 𝑎 / 𝑏 ) · 𝑏 ) · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) = ( 𝑎 · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) )
320 314 317 319 3eqtr3rd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( 𝑎 · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) = ( ( numer ‘ ( 𝑎 / 𝑏 ) ) · 𝑏 ) )
321 146 a1i ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ℤring ∈ CRing )
322 qnumcl ( ( 𝑎 / 𝑏 ) ∈ ℚ → ( numer ‘ ( 𝑎 / 𝑏 ) ) ∈ ℤ )
323 310 322 syl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( numer ‘ ( 𝑎 / 𝑏 ) ) ∈ ℤ )
324 simpr ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ∈ ( ℤ ∖ { 0 } ) )
325 324 39 eleqtrdi ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → 𝑏 ∈ ( RLReg ‘ ℤring ) )
326 312 nnzd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ℤ )
327 312 nnne0d ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ≠ 0 )
328 326 327 eldifsnd ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ( ℤ ∖ { 0 } ) )
329 328 39 eleqtrdi ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( denom ‘ ( 𝑎 / 𝑏 ) ) ∈ ( RLReg ‘ ℤring ) )
330 28 30 114 321 301 323 325 329 fracerl ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ( ⟨ 𝑎 , 𝑏 ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ ↔ ( 𝑎 · ( denom ‘ ( 𝑎 / 𝑏 ) ) ) = ( ( numer ‘ ( 𝑎 / 𝑏 ) ) · 𝑏 ) ) )
331 320 330 mpbird ( ( 𝑎 ∈ ℤ ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) → ⟨ 𝑎 , 𝑏 ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ )
332 331 ad4ant23 ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → ⟨ 𝑎 , 𝑏 ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ )
333 300 332 erthi ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → [ ⟨ 𝑎 , 𝑏 ⟩ ] = [ ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ ] )
334 297 333 eqtrd ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → 𝑧 = [ ⟨ ( numer ‘ ( 𝑎 / 𝑏 ) ) , ( denom ‘ ( 𝑎 / 𝑏 ) ) ⟩ ] )
335 287 296 334 rspcedvdw ( ( ( ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝑎 ∈ ℤ ) ∧ 𝑏 ∈ ( ℤ ∖ { 0 } ) ) ∧ 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] ) → ∃ 𝑞 ∈ ℚ 𝑧 = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
336 45 eleq2i ( 𝑧 ∈ ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) ↔ 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) )
337 336 biimpri ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) → 𝑧 ∈ ( ( ℤ × ( ℤ ∖ { 0 } ) ) / ) )
338 337 elrlocbasi ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) → ∃ 𝑎 ∈ ℤ ∃ 𝑏 ∈ ( ℤ ∖ { 0 } ) 𝑧 = [ ⟨ 𝑎 , 𝑏 ⟩ ] )
339 335 338 r19.29vva ( 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) → ∃ 𝑞 ∈ ℚ 𝑧 = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] )
340 339 rgen 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∃ 𝑞 ∈ ℚ 𝑧 = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ]
341 3 fompt ( 𝐹 : ℚ –onto→ ( Base ‘ ( Frac ‘ ℤring ) ) ↔ ( ∀ 𝑞 ∈ ℚ [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ ∀ 𝑧 ∈ ( Base ‘ ( Frac ‘ ℤring ) ) ∃ 𝑞 ∈ ℚ 𝑧 = [ ⟨ ( numer ‘ 𝑞 ) , ( denom ‘ 𝑞 ) ⟩ ] ) )
342 261 340 341 mpbir2an 𝐹 : ℚ –onto→ ( Base ‘ ( Frac ‘ ℤring ) )
343 df-f1o ( 𝐹 : ℚ –1-1-onto→ ( Base ‘ ( Frac ‘ ℤring ) ) ↔ ( 𝐹 : ℚ –1-1→ ( Base ‘ ( Frac ‘ ℤring ) ) ∧ 𝐹 : ℚ –onto→ ( Base ‘ ( Frac ‘ ℤring ) ) ) )
344 282 342 343 mpbir2an 𝐹 : ℚ –1-1-onto→ ( Base ‘ ( Frac ‘ ℤring ) )
345 167 168 isrim ( 𝐹 ∈ ( 𝑄 RingIso ( Frac ‘ ℤring ) ) ↔ ( 𝐹 ∈ ( 𝑄 RingHom ( Frac ‘ ℤring ) ) ∧ 𝐹 : ℚ –1-1-onto→ ( Base ‘ ( Frac ‘ ℤring ) ) ) )
346 260 344 345 mpbir2an 𝐹 ∈ ( 𝑄 RingIso ( Frac ‘ ℤring ) )