Metamath Proof Explorer


Theorem qusgrp2

Description: Prove that a quotient structure is a group. (Contributed by Mario Carneiro, 14-Jun-2015) (Revised by Mario Carneiro, 12-Aug-2015)

Ref Expression
Hypotheses qusgrp2.u ( 𝜑𝑈 = ( 𝑅 /s ) )
qusgrp2.v ( 𝜑𝑉 = ( Base ‘ 𝑅 ) )
qusgrp2.p ( 𝜑+ = ( +g𝑅 ) )
qusgrp2.r ( 𝜑 Er 𝑉 )
qusgrp2.x ( 𝜑𝑅𝑋 )
qusgrp2.e ( 𝜑 → ( ( 𝑎 𝑝𝑏 𝑞 ) → ( 𝑎 + 𝑏 ) ( 𝑝 + 𝑞 ) ) )
qusgrp2.1 ( ( 𝜑𝑥𝑉𝑦𝑉 ) → ( 𝑥 + 𝑦 ) ∈ 𝑉 )
qusgrp2.2 ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → ( ( 𝑥 + 𝑦 ) + 𝑧 ) ( 𝑥 + ( 𝑦 + 𝑧 ) ) )
qusgrp2.3 ( 𝜑0𝑉 )
qusgrp2.4 ( ( 𝜑𝑥𝑉 ) → ( 0 + 𝑥 ) 𝑥 )
qusgrp2.5 ( ( 𝜑𝑥𝑉 ) → 𝑁𝑉 )
qusgrp2.6 ( ( 𝜑𝑥𝑉 ) → ( 𝑁 + 𝑥 ) 0 )
Assertion qusgrp2 ( 𝜑 → ( 𝑈 ∈ Grp ∧ [ 0 ] = ( 0g𝑈 ) ) )

Proof

Step Hyp Ref Expression
1 qusgrp2.u ( 𝜑𝑈 = ( 𝑅 /s ) )
2 qusgrp2.v ( 𝜑𝑉 = ( Base ‘ 𝑅 ) )
3 qusgrp2.p ( 𝜑+ = ( +g𝑅 ) )
4 qusgrp2.r ( 𝜑 Er 𝑉 )
5 qusgrp2.x ( 𝜑𝑅𝑋 )
6 qusgrp2.e ( 𝜑 → ( ( 𝑎 𝑝𝑏 𝑞 ) → ( 𝑎 + 𝑏 ) ( 𝑝 + 𝑞 ) ) )
7 qusgrp2.1 ( ( 𝜑𝑥𝑉𝑦𝑉 ) → ( 𝑥 + 𝑦 ) ∈ 𝑉 )
8 qusgrp2.2 ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → ( ( 𝑥 + 𝑦 ) + 𝑧 ) ( 𝑥 + ( 𝑦 + 𝑧 ) ) )
9 qusgrp2.3 ( 𝜑0𝑉 )
10 qusgrp2.4 ( ( 𝜑𝑥𝑉 ) → ( 0 + 𝑥 ) 𝑥 )
11 qusgrp2.5 ( ( 𝜑𝑥𝑉 ) → 𝑁𝑉 )
12 qusgrp2.6 ( ( 𝜑𝑥𝑉 ) → ( 𝑁 + 𝑥 ) 0 )
13 eqid ( 𝑢𝑉 ↦ [ 𝑢 ] ) = ( 𝑢𝑉 ↦ [ 𝑢 ] )
14 fvex ( Base ‘ 𝑅 ) ∈ V
15 2 14 eqeltrdi ( 𝜑𝑉 ∈ V )
16 erex ( Er 𝑉 → ( 𝑉 ∈ V → ∈ V ) )
17 4 15 16 sylc ( 𝜑 ∈ V )
18 1 2 13 17 5 qusval ( 𝜑𝑈 = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) “s 𝑅 ) )
19 1 2 13 17 5 quslem ( 𝜑 → ( 𝑢𝑉 ↦ [ 𝑢 ] ) : 𝑉onto→ ( 𝑉 / ) )
20 7 3expb ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉 ) ) → ( 𝑥 + 𝑦 ) ∈ 𝑉 )
21 4 15 13 20 6 ercpbl ( ( 𝜑 ∧ ( 𝑎𝑉𝑏𝑉 ) ∧ ( 𝑝𝑉𝑞𝑉 ) ) → ( ( ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑎 ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑝 ) ∧ ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑏 ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑞 ) ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑎 + 𝑏 ) ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑝 + 𝑞 ) ) ) )
22 4 adantr ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → Er 𝑉 )
23 22 8 erthi ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → [ ( ( 𝑥 + 𝑦 ) + 𝑧 ) ] = [ ( 𝑥 + ( 𝑦 + 𝑧 ) ) ] )
24 15 adantr ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → 𝑉 ∈ V )
25 22 24 13 divsfval ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( ( 𝑥 + 𝑦 ) + 𝑧 ) ) = [ ( ( 𝑥 + 𝑦 ) + 𝑧 ) ] )
26 22 24 13 divsfval ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑥 + ( 𝑦 + 𝑧 ) ) ) = [ ( 𝑥 + ( 𝑦 + 𝑧 ) ) ] )
27 23 25 26 3eqtr4d ( ( 𝜑 ∧ ( 𝑥𝑉𝑦𝑉𝑧𝑉 ) ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( ( 𝑥 + 𝑦 ) + 𝑧 ) ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑥 + ( 𝑦 + 𝑧 ) ) ) )
28 4 adantr ( ( 𝜑𝑥𝑉 ) → Er 𝑉 )
29 28 10 erthi ( ( 𝜑𝑥𝑉 ) → [ ( 0 + 𝑥 ) ] = [ 𝑥 ] )
30 15 adantr ( ( 𝜑𝑥𝑉 ) → 𝑉 ∈ V )
31 28 30 13 divsfval ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 0 + 𝑥 ) ) = [ ( 0 + 𝑥 ) ] )
32 28 30 13 divsfval ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑥 ) = [ 𝑥 ] )
33 29 31 32 3eqtr4d ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 0 + 𝑥 ) ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 𝑥 ) )
34 28 12 ersym ( ( 𝜑𝑥𝑉 ) → 0 ( 𝑁 + 𝑥 ) )
35 28 34 erthi ( ( 𝜑𝑥𝑉 ) → [ 0 ] = [ ( 𝑁 + 𝑥 ) ] )
36 28 30 13 divsfval ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) = [ 0 ] )
37 28 30 13 divsfval ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑁 + 𝑥 ) ) = [ ( 𝑁 + 𝑥 ) ] )
38 35 36 37 3eqtr4rd ( ( 𝜑𝑥𝑉 ) → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ ( 𝑁 + 𝑥 ) ) = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) )
39 18 2 3 19 21 5 7 27 9 33 11 38 imasgrp2 ( 𝜑 → ( 𝑈 ∈ Grp ∧ ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) = ( 0g𝑈 ) ) )
40 4 15 13 divsfval ( 𝜑 → ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) = [ 0 ] )
41 40 eqcomd ( 𝜑 → [ 0 ] = ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) )
42 41 eqeq1d ( 𝜑 → ( [ 0 ] = ( 0g𝑈 ) ↔ ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) = ( 0g𝑈 ) ) )
43 42 anbi2d ( 𝜑 → ( ( 𝑈 ∈ Grp ∧ [ 0 ] = ( 0g𝑈 ) ) ↔ ( 𝑈 ∈ Grp ∧ ( ( 𝑢𝑉 ↦ [ 𝑢 ] ) ‘ 0 ) = ( 0g𝑈 ) ) ) )
44 39 43 mpbird ( 𝜑 → ( 𝑈 ∈ Grp ∧ [ 0 ] = ( 0g𝑈 ) ) )