Step |
Hyp |
Ref |
Expression |
1 |
|
hashcl |
⊢ ( ( Base ‘ 𝐺 ) ∈ Fin → ( ♯ ‘ ( Base ‘ 𝐺 ) ) ∈ ℕ0 ) |
2 |
1
|
adantl |
⊢ ( ( 𝐺 ∈ CycGrp ∧ ( Base ‘ 𝐺 ) ∈ Fin ) → ( ♯ ‘ ( Base ‘ 𝐺 ) ) ∈ ℕ0 ) |
3 |
|
0nn0 |
⊢ 0 ∈ ℕ0 |
4 |
3
|
a1i |
⊢ ( ( 𝐺 ∈ CycGrp ∧ ¬ ( Base ‘ 𝐺 ) ∈ Fin ) → 0 ∈ ℕ0 ) |
5 |
2 4
|
ifclda |
⊢ ( 𝐺 ∈ CycGrp → if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ∈ ℕ0 ) |
6 |
|
eqid |
⊢ ( Base ‘ 𝐺 ) = ( Base ‘ 𝐺 ) |
7 |
|
eqid |
⊢ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) = if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) |
8 |
|
eqid |
⊢ ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) = ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) |
9 |
6 7 8
|
cygzn |
⊢ ( 𝐺 ∈ CycGrp → 𝐺 ≃𝑔 ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) ) |
10 |
|
fveq2 |
⊢ ( 𝑛 = if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) → ( ℤ/nℤ ‘ 𝑛 ) = ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) ) |
11 |
10
|
breq2d |
⊢ ( 𝑛 = if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) → ( 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) ↔ 𝐺 ≃𝑔 ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) ) ) |
12 |
11
|
rspcev |
⊢ ( ( if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ∈ ℕ0 ∧ 𝐺 ≃𝑔 ( ℤ/nℤ ‘ if ( ( Base ‘ 𝐺 ) ∈ Fin , ( ♯ ‘ ( Base ‘ 𝐺 ) ) , 0 ) ) ) → ∃ 𝑛 ∈ ℕ0 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) ) |
13 |
5 9 12
|
syl2anc |
⊢ ( 𝐺 ∈ CycGrp → ∃ 𝑛 ∈ ℕ0 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) ) |
14 |
|
gicsym |
⊢ ( 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) → ( ℤ/nℤ ‘ 𝑛 ) ≃𝑔 𝐺 ) |
15 |
|
eqid |
⊢ ( ℤ/nℤ ‘ 𝑛 ) = ( ℤ/nℤ ‘ 𝑛 ) |
16 |
15
|
zncyg |
⊢ ( 𝑛 ∈ ℕ0 → ( ℤ/nℤ ‘ 𝑛 ) ∈ CycGrp ) |
17 |
|
giccyg |
⊢ ( ( ℤ/nℤ ‘ 𝑛 ) ≃𝑔 𝐺 → ( ( ℤ/nℤ ‘ 𝑛 ) ∈ CycGrp → 𝐺 ∈ CycGrp ) ) |
18 |
14 16 17
|
syl2imc |
⊢ ( 𝑛 ∈ ℕ0 → ( 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) → 𝐺 ∈ CycGrp ) ) |
19 |
18
|
rexlimiv |
⊢ ( ∃ 𝑛 ∈ ℕ0 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) → 𝐺 ∈ CycGrp ) |
20 |
13 19
|
impbii |
⊢ ( 𝐺 ∈ CycGrp ↔ ∃ 𝑛 ∈ ℕ0 𝐺 ≃𝑔 ( ℤ/nℤ ‘ 𝑛 ) ) |