Metamath Proof Explorer


Theorem 0frgp

Description: The free group on zero generators is trivial. (Contributed by Mario Carneiro, 21-Apr-2016)

Ref Expression
Hypotheses 0frgp.g 𝐺 = ( freeGrp ‘ ∅ )
0frgp.b 𝐵 = ( Base ‘ 𝐺 )
Assertion 0frgp 𝐵 ≈ 1o

Proof

Step Hyp Ref Expression
1 0frgp.g 𝐺 = ( freeGrp ‘ ∅ )
2 0frgp.b 𝐵 = ( Base ‘ 𝐺 )
3 0ex ∅ ∈ V
4 1 frgpgrp ( ∅ ∈ V → 𝐺 ∈ Grp )
5 3 4 ax-mp 𝐺 ∈ Grp
6 f0 ∅ : ∅ ⟶ 𝐵
7 eqid ( ~FG ‘ ∅ ) = ( ~FG ‘ ∅ )
8 eqid ( varFGrp ‘ ∅ ) = ( varFGrp ‘ ∅ )
9 7 8 1 2 vrgpf ( ∅ ∈ V → ( varFGrp ‘ ∅ ) : ∅ ⟶ 𝐵 )
10 ffn ( ( varFGrp ‘ ∅ ) : ∅ ⟶ 𝐵 → ( varFGrp ‘ ∅ ) Fn ∅ )
11 3 9 10 mp2b ( varFGrp ‘ ∅ ) Fn ∅
12 fn0 ( ( varFGrp ‘ ∅ ) Fn ∅ ↔ ( varFGrp ‘ ∅ ) = ∅ )
13 11 12 mpbi ( varFGrp ‘ ∅ ) = ∅
14 13 eqcomi ∅ = ( varFGrp ‘ ∅ )
15 1 2 14 frgpup3 ( ( 𝐺 ∈ Grp ∧ ∅ ∈ V ∧ ∅ : ∅ ⟶ 𝐵 ) → ∃! 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅ )
16 5 3 6 15 mp3an ∃! 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅
17 reurmo ( ∃! 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅ → ∃* 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅ )
18 16 17 ax-mp ∃* 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅
19 2 idghm ( 𝐺 ∈ Grp → ( I ↾ 𝐵 ) ∈ ( 𝐺 GrpHom 𝐺 ) )
20 5 19 ax-mp ( I ↾ 𝐵 ) ∈ ( 𝐺 GrpHom 𝐺 )
21 tru
22 20 21 pm3.2i ( ( I ↾ 𝐵 ) ∈ ( 𝐺 GrpHom 𝐺 ) ∧ ⊤ )
23 eqid ( 0g𝐺 ) = ( 0g𝐺 )
24 23 2 0ghm ( ( 𝐺 ∈ Grp ∧ 𝐺 ∈ Grp ) → ( 𝐵 × { ( 0g𝐺 ) } ) ∈ ( 𝐺 GrpHom 𝐺 ) )
25 5 5 24 mp2an ( 𝐵 × { ( 0g𝐺 ) } ) ∈ ( 𝐺 GrpHom 𝐺 )
26 25 21 pm3.2i ( ( 𝐵 × { ( 0g𝐺 ) } ) ∈ ( 𝐺 GrpHom 𝐺 ) ∧ ⊤ )
27 co02 ( 𝑓 ∘ ∅ ) = ∅
28 27 bitru ( ( 𝑓 ∘ ∅ ) = ∅ ↔ ⊤ )
29 28 a1i ( 𝑓 = ( I ↾ 𝐵 ) → ( ( 𝑓 ∘ ∅ ) = ∅ ↔ ⊤ ) )
30 28 a1i ( 𝑓 = ( 𝐵 × { ( 0g𝐺 ) } ) → ( ( 𝑓 ∘ ∅ ) = ∅ ↔ ⊤ ) )
31 29 30 rmoi ( ( ∃* 𝑓 ∈ ( 𝐺 GrpHom 𝐺 ) ( 𝑓 ∘ ∅ ) = ∅ ∧ ( ( I ↾ 𝐵 ) ∈ ( 𝐺 GrpHom 𝐺 ) ∧ ⊤ ) ∧ ( ( 𝐵 × { ( 0g𝐺 ) } ) ∈ ( 𝐺 GrpHom 𝐺 ) ∧ ⊤ ) ) → ( I ↾ 𝐵 ) = ( 𝐵 × { ( 0g𝐺 ) } ) )
32 18 22 26 31 mp3an ( I ↾ 𝐵 ) = ( 𝐵 × { ( 0g𝐺 ) } )
33 mptresid ( I ↾ 𝐵 ) = ( 𝑥𝐵𝑥 )
34 fconstmpt ( 𝐵 × { ( 0g𝐺 ) } ) = ( 𝑥𝐵 ↦ ( 0g𝐺 ) )
35 32 33 34 3eqtr3i ( 𝑥𝐵𝑥 ) = ( 𝑥𝐵 ↦ ( 0g𝐺 ) )
36 mpteqb ( ∀ 𝑥𝐵 𝑥𝐵 → ( ( 𝑥𝐵𝑥 ) = ( 𝑥𝐵 ↦ ( 0g𝐺 ) ) ↔ ∀ 𝑥𝐵 𝑥 = ( 0g𝐺 ) ) )
37 id ( 𝑥𝐵𝑥𝐵 )
38 36 37 mprg ( ( 𝑥𝐵𝑥 ) = ( 𝑥𝐵 ↦ ( 0g𝐺 ) ) ↔ ∀ 𝑥𝐵 𝑥 = ( 0g𝐺 ) )
39 35 38 mpbi 𝑥𝐵 𝑥 = ( 0g𝐺 )
40 39 rspec ( 𝑥𝐵𝑥 = ( 0g𝐺 ) )
41 velsn ( 𝑥 ∈ { ( 0g𝐺 ) } ↔ 𝑥 = ( 0g𝐺 ) )
42 40 41 sylibr ( 𝑥𝐵𝑥 ∈ { ( 0g𝐺 ) } )
43 42 ssriv 𝐵 ⊆ { ( 0g𝐺 ) }
44 2 23 grpidcl ( 𝐺 ∈ Grp → ( 0g𝐺 ) ∈ 𝐵 )
45 5 44 ax-mp ( 0g𝐺 ) ∈ 𝐵
46 snssi ( ( 0g𝐺 ) ∈ 𝐵 → { ( 0g𝐺 ) } ⊆ 𝐵 )
47 45 46 ax-mp { ( 0g𝐺 ) } ⊆ 𝐵
48 43 47 eqssi 𝐵 = { ( 0g𝐺 ) }
49 fvex ( 0g𝐺 ) ∈ V
50 49 ensn1 { ( 0g𝐺 ) } ≈ 1o
51 48 50 eqbrtri 𝐵 ≈ 1o