Metamath Proof Explorer


Theorem cycpmcl

Description: Cyclic permutations are permutations. (Contributed by Thierry Arnoux, 24-Sep-2023)

Ref Expression
Hypotheses tocycval.1 ⊢ C = toCyc ⁡ D
tocycfv.d ⊢ φ → D ∈ V
tocycfv.w ⊢ φ → W ∈ Word D
tocycfv.1 ⊢ φ → W : dom ⁡ W ⟶ 1-1 D
cycpmcl.s ⊢ S = SymGrp ⁡ D
Assertion cycpmcl ⊢ φ → C ⁡ W ∈ Base S

Proof

Step Hyp Ref Expression
1 tocycval.1 ⊢ C = toCyc ⁡ D
2 tocycfv.d ⊢ φ → D ∈ V
3 tocycfv.w ⊢ φ → W ∈ Word D
4 tocycfv.1 ⊢ φ → W : dom ⁡ W ⟶ 1-1 D
5 cycpmcl.s ⊢ S = SymGrp ⁡ D
6 f1oi ⊢ I ↾ D ∖ ran ⁡ W : D ∖ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W
7 6 a1i ⊢ φ → I ↾ D ∖ ran ⁡ W : D ∖ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W
8 1zzd ⊢ φ → 1 ∈ ℤ
9 cshwf ⊢ W ∈ Word D ∧ 1 ∈ ℤ → W cyclShift 1 : 0 ..^ W ⟶ D
10 3 8 9 syl2anc ⊢ φ → W cyclShift 1 : 0 ..^ W ⟶ D
11 10 ffnd ⊢ φ → W cyclShift 1 Fn 0 ..^ W
12 df-f1 ⊢ W : dom ⁡ W ⟶ 1-1 D ↔ W : dom ⁡ W ⟶ D ∧ Fun ⁡ W -1
13 4 12 sylib ⊢ φ → W : dom ⁡ W ⟶ D ∧ Fun ⁡ W -1
14 13 simprd ⊢ φ → Fun ⁡ W -1
15 eqid ⊢ W cyclShift 1 = W cyclShift 1
16 cshinj ⊢ W ∈ Word D ∧ Fun ⁡ W -1 ∧ 1 ∈ ℤ → W cyclShift 1 = W cyclShift 1 → Fun ⁡ W cyclShift 1 -1
17 15 16 mpi ⊢ W ∈ Word D ∧ Fun ⁡ W -1 ∧ 1 ∈ ℤ → Fun ⁡ W cyclShift 1 -1
18 3 14 8 17 syl3anc ⊢ φ → Fun ⁡ W cyclShift 1 -1
19 f1orn ⊢ W cyclShift 1 : 0 ..^ W ⟶ 1-1 onto ran ⁡ W cyclShift 1 ↔ W cyclShift 1 Fn 0 ..^ W ∧ Fun ⁡ W cyclShift 1 -1
20 11 18 19 sylanbrc ⊢ φ → W cyclShift 1 : 0 ..^ W ⟶ 1-1 onto ran ⁡ W cyclShift 1
21 eqidd ⊢ φ → W cyclShift 1 = W cyclShift 1
22 wrdf ⊢ W ∈ Word D → W : 0 ..^ W ⟶ D
23 3 22 syl ⊢ φ → W : 0 ..^ W ⟶ D
24 23 fdmd ⊢ φ → dom ⁡ W = 0 ..^ W
25 cshwrnid ⊢ W ∈ Word D ∧ 1 ∈ ℤ → ran ⁡ W cyclShift 1 = ran ⁡ W
26 3 8 25 syl2anc ⊢ φ → ran ⁡ W cyclShift 1 = ran ⁡ W
27 26 eqcomd ⊢ φ → ran ⁡ W = ran ⁡ W cyclShift 1
28 21 24 27 f1oeq123d ⊢ φ → W cyclShift 1 : dom ⁡ W ⟶ 1-1 onto ran ⁡ W ↔ W cyclShift 1 : 0 ..^ W ⟶ 1-1 onto ran ⁡ W cyclShift 1
29 20 28 mpbird ⊢ φ → W cyclShift 1 : dom ⁡ W ⟶ 1-1 onto ran ⁡ W
30 f1f1orn ⊢ W : dom ⁡ W ⟶ 1-1 D → W : dom ⁡ W ⟶ 1-1 onto ran ⁡ W
31 f1ocnv ⊢ W : dom ⁡ W ⟶ 1-1 onto ran ⁡ W → W -1 : ran ⁡ W ⟶ 1-1 onto dom ⁡ W
32 4 30 31 3syl ⊢ φ → W -1 : ran ⁡ W ⟶ 1-1 onto dom ⁡ W
33 f1oco ⊢ W cyclShift 1 : dom ⁡ W ⟶ 1-1 onto ran ⁡ W ∧ W -1 : ran ⁡ W ⟶ 1-1 onto dom ⁡ W → W cyclShift 1 ∘ W -1 : ran ⁡ W ⟶ 1-1 onto ran ⁡ W
34 29 32 33 syl2anc ⊢ φ → W cyclShift 1 ∘ W -1 : ran ⁡ W ⟶ 1-1 onto ran ⁡ W
35 disjdifr ⊢ D ∖ ran ⁡ W ∩ ran ⁡ W = ∅
36 35 a1i ⊢ φ → D ∖ ran ⁡ W ∩ ran ⁡ W = ∅
37 f1oun ⊢ I ↾ D ∖ ran ⁡ W : D ∖ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W ∧ W cyclShift 1 ∘ W -1 : ran ⁡ W ⟶ 1-1 onto ran ⁡ W ∧ D ∖ ran ⁡ W ∩ ran ⁡ W = ∅ ∧ D ∖ ran ⁡ W ∩ ran ⁡ W = ∅ → I ↾ D ∖ ran ⁡ W ∪ W cyclShift 1 ∘ W -1 : D ∖ ran ⁡ W ∪ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W ∪ ran ⁡ W
38 7 34 36 36 37 syl22anc ⊢ φ → I ↾ D ∖ ran ⁡ W ∪ W cyclShift 1 ∘ W -1 : D ∖ ran ⁡ W ∪ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W ∪ ran ⁡ W
39 1 2 3 4 tocycfv ⊢ φ → C ⁡ W = I ↾ D ∖ ran ⁡ W ∪ W cyclShift 1 ∘ W -1
40 23 frnd ⊢ φ → ran ⁡ W ⊆ D
41 undif ⊢ ran ⁡ W ⊆ D ↔ ran ⁡ W ∪ D ∖ ran ⁡ W = D
42 40 41 sylib ⊢ φ → ran ⁡ W ∪ D ∖ ran ⁡ W = D
43 uncom ⊢ ran ⁡ W ∪ D ∖ ran ⁡ W = D ∖ ran ⁡ W ∪ ran ⁡ W
44 42 43 eqtr3di ⊢ φ → D = D ∖ ran ⁡ W ∪ ran ⁡ W
45 39 44 44 f1oeq123d ⊢ φ → C ⁡ W : D ⟶ 1-1 onto D ↔ I ↾ D ∖ ran ⁡ W ∪ W cyclShift 1 ∘ W -1 : D ∖ ran ⁡ W ∪ ran ⁡ W ⟶ 1-1 onto D ∖ ran ⁡ W ∪ ran ⁡ W
46 38 45 mpbird ⊢ φ → C ⁡ W : D ⟶ 1-1 onto D
47 fvex ⊢ C ⁡ W ∈ V
48 eqid ⊢ Base S = Base S
49 5 48 elsymgbas2 ⊢ C ⁡ W ∈ V → C ⁡ W ∈ Base S ↔ C ⁡ W : D ⟶ 1-1 onto D
50 47 49 ax-mp ⊢ C ⁡ W ∈ Base S ↔ C ⁡ W : D ⟶ 1-1 onto D
51 46 50 sylibr ⊢ φ → C ⁡ W ∈ Base S