MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  erclwwlknsym Structured version   Visualization version   GIF version

Theorem erclwwlknsym 30145
Description: is a symmetric relation over the set of closed walks (defined as words). (Contributed by Alexander van der Vekens, 10-Apr-2018.) (Revised by AV, 30-Apr-2021.)
Hypotheses
Ref Expression
erclwwlkn.w 𝑊 = (𝑁 ClWWalksN 𝐺)
erclwwlkn.r = {⟨𝑡, 𝑢⟩ ∣ (𝑡𝑊𝑢𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑡 = (𝑢 cyclShift 𝑛))}
Assertion
Ref Expression
erclwwlknsym (𝑥 𝑦𝑦 𝑥)
Distinct variable groups:   𝑡,𝑊,𝑢   𝑛,𝑁,𝑢,𝑡,𝑥   𝑦,𝑛,𝑡,𝑢,𝑥   𝑛,𝑊
Allowed substitution hints:   (𝑥,𝑦,𝑢,𝑡,𝑛)   𝐺(𝑥,𝑦,𝑢,𝑡,𝑛)   𝑁(𝑦)   𝑊(𝑥,𝑦)

Proof of Theorem erclwwlknsym
Dummy variable 𝑚 is distinct from all other variables.
StepHypRef Expression
1 erclwwlkn.w . . . 4 𝑊 = (𝑁 ClWWalksN 𝐺)
2 erclwwlkn.r . . . 4 = {⟨𝑡, 𝑢⟩ ∣ (𝑡𝑊𝑢𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑡 = (𝑢 cyclShift 𝑛))}
31, 2erclwwlkneqlen 30143 . . 3 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (𝑥 𝑦 → (♯‘𝑥) = (♯‘𝑦)))
41, 2erclwwlkneq 30142 . . . 4 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (𝑥 𝑦 ↔ (𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛))))
5 simpl2 1193 . . . . . . 7 (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → 𝑦𝑊)
6 simpl1 1192 . . . . . . 7 (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → 𝑥𝑊)
7 eqid 2736 . . . . . . . . . . . . . . . . . . . 20 (Vtx‘𝐺) = (Vtx‘𝐺)
87clwwlknbp 30110 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ (𝑁 ClWWalksN 𝐺) → (𝑥 ∈ Word (Vtx‘𝐺) ∧ (♯‘𝑥) = 𝑁))
9 eqcom 2743 . . . . . . . . . . . . . . . . . . . 20 ((♯‘𝑥) = 𝑁𝑁 = (♯‘𝑥))
109biimpi 216 . . . . . . . . . . . . . . . . . . 19 ((♯‘𝑥) = 𝑁𝑁 = (♯‘𝑥))
118, 10simpl2im 503 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ (𝑁 ClWWalksN 𝐺) → 𝑁 = (♯‘𝑥))
1211, 1eleq2s 2854 . . . . . . . . . . . . . . . . 17 (𝑥𝑊𝑁 = (♯‘𝑥))
1312adantr 480 . . . . . . . . . . . . . . . 16 ((𝑥𝑊𝑦𝑊) → 𝑁 = (♯‘𝑥))
1413adantr 480 . . . . . . . . . . . . . . 15 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → 𝑁 = (♯‘𝑥))
157clwwlknwrd 30109 . . . . . . . . . . . . . . . . . . . . 21 (𝑦 ∈ (𝑁 ClWWalksN 𝐺) → 𝑦 ∈ Word (Vtx‘𝐺))
1615, 1eleq2s 2854 . . . . . . . . . . . . . . . . . . . 20 (𝑦𝑊𝑦 ∈ Word (Vtx‘𝐺))
1716adantl 481 . . . . . . . . . . . . . . . . . . 19 ((𝑥𝑊𝑦𝑊) → 𝑦 ∈ Word (Vtx‘𝐺))
1817adantr 480 . . . . . . . . . . . . . . . . . 18 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → 𝑦 ∈ Word (Vtx‘𝐺))
1918adantl 481 . . . . . . . . . . . . . . . . 17 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → 𝑦 ∈ Word (Vtx‘𝐺))
20 simprr 772 . . . . . . . . . . . . . . . . 17 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → (♯‘𝑥) = (♯‘𝑦))
2119, 20cshwcshid 14750 . . . . . . . . . . . . . . . 16 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → ((𝑛 ∈ (0...(♯‘𝑦)) ∧ 𝑥 = (𝑦 cyclShift 𝑛)) → ∃𝑚 ∈ (0...(♯‘𝑥))𝑦 = (𝑥 cyclShift 𝑚)))
22 oveq2 7366 . . . . . . . . . . . . . . . . . . 19 (𝑁 = (♯‘𝑥) → (0...𝑁) = (0...(♯‘𝑥)))
23 oveq2 7366 . . . . . . . . . . . . . . . . . . . 20 ((♯‘𝑥) = (♯‘𝑦) → (0...(♯‘𝑥)) = (0...(♯‘𝑦)))
2423adantl 481 . . . . . . . . . . . . . . . . . . 19 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → (0...(♯‘𝑥)) = (0...(♯‘𝑦)))
2522, 24sylan9eq 2791 . . . . . . . . . . . . . . . . . 18 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → (0...𝑁) = (0...(♯‘𝑦)))
2625eleq2d 2822 . . . . . . . . . . . . . . . . 17 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → (𝑛 ∈ (0...𝑁) ↔ 𝑛 ∈ (0...(♯‘𝑦))))
2726anbi1d 631 . . . . . . . . . . . . . . . 16 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → ((𝑛 ∈ (0...𝑁) ∧ 𝑥 = (𝑦 cyclShift 𝑛)) ↔ (𝑛 ∈ (0...(♯‘𝑦)) ∧ 𝑥 = (𝑦 cyclShift 𝑛))))
2822adantr 480 . . . . . . . . . . . . . . . . 17 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → (0...𝑁) = (0...(♯‘𝑥)))
2928rexeqdv 3297 . . . . . . . . . . . . . . . 16 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → (∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚) ↔ ∃𝑚 ∈ (0...(♯‘𝑥))𝑦 = (𝑥 cyclShift 𝑚)))
3021, 27, 293imtr4d 294 . . . . . . . . . . . . . . 15 ((𝑁 = (♯‘𝑥) ∧ ((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦))) → ((𝑛 ∈ (0...𝑁) ∧ 𝑥 = (𝑦 cyclShift 𝑛)) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚)))
3114, 30mpancom 688 . . . . . . . . . . . . . 14 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → ((𝑛 ∈ (0...𝑁) ∧ 𝑥 = (𝑦 cyclShift 𝑛)) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚)))
3231expd 415 . . . . . . . . . . . . 13 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → (𝑛 ∈ (0...𝑁) → (𝑥 = (𝑦 cyclShift 𝑛) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚))))
3332rexlimdv 3135 . . . . . . . . . . . 12 (((𝑥𝑊𝑦𝑊) ∧ (♯‘𝑥) = (♯‘𝑦)) → (∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚)))
3433ex 412 . . . . . . . . . . 11 ((𝑥𝑊𝑦𝑊) → ((♯‘𝑥) = (♯‘𝑦) → (∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚))))
3534com23 86 . . . . . . . . . 10 ((𝑥𝑊𝑦𝑊) → (∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛) → ((♯‘𝑥) = (♯‘𝑦) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚))))
36353impia 1117 . . . . . . . . 9 ((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) → ((♯‘𝑥) = (♯‘𝑦) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚)))
3736imp 406 . . . . . . . 8 (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚))
38 oveq2 7366 . . . . . . . . . 10 (𝑛 = 𝑚 → (𝑥 cyclShift 𝑛) = (𝑥 cyclShift 𝑚))
3938eqeq2d 2747 . . . . . . . . 9 (𝑛 = 𝑚 → (𝑦 = (𝑥 cyclShift 𝑛) ↔ 𝑦 = (𝑥 cyclShift 𝑚)))
4039cbvrexvw 3215 . . . . . . . 8 (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑛) ↔ ∃𝑚 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑚))
4137, 40sylibr 234 . . . . . . 7 (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑛))
425, 6, 413jca 1128 . . . . . 6 (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → (𝑦𝑊𝑥𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑛)))
431, 2erclwwlkneq 30142 . . . . . . 7 ((𝑦 ∈ V ∧ 𝑥 ∈ V) → (𝑦 𝑥 ↔ (𝑦𝑊𝑥𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑛))))
4443ancoms 458 . . . . . 6 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (𝑦 𝑥 ↔ (𝑦𝑊𝑥𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑥 cyclShift 𝑛))))
4542, 44imbitrrid 246 . . . . 5 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) ∧ (♯‘𝑥) = (♯‘𝑦)) → 𝑦 𝑥))
4645expd 415 . . . 4 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → ((𝑥𝑊𝑦𝑊 ∧ ∃𝑛 ∈ (0...𝑁)𝑥 = (𝑦 cyclShift 𝑛)) → ((♯‘𝑥) = (♯‘𝑦) → 𝑦 𝑥)))
474, 46sylbid 240 . . 3 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (𝑥 𝑦 → ((♯‘𝑥) = (♯‘𝑦) → 𝑦 𝑥)))
483, 47mpdd 43 . 2 ((𝑥 ∈ V ∧ 𝑦 ∈ V) → (𝑥 𝑦𝑦 𝑥))
4948el2v 3447 1 (𝑥 𝑦𝑦 𝑥)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 206  wa 395  w3a 1086   = wceq 1541  wcel 2113  wrex 3060  Vcvv 3440   class class class wbr 5098  {copab 5160  cfv 6492  (class class class)co 7358  0cc0 11026  ...cfz 13423  chash 14253  Word cword 14436   cyclShift ccsh 14711  Vtxcvtx 29069   ClWWalksN cclwwlkn 30099
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2115  ax-9 2123  ax-10 2146  ax-11 2162  ax-12 2184  ax-ext 2708  ax-rep 5224  ax-sep 5241  ax-nul 5251  ax-pow 5310  ax-pr 5377  ax-un 7680  ax-cnex 11082  ax-resscn 11083  ax-1cn 11084  ax-icn 11085  ax-addcl 11086  ax-addrcl 11087  ax-mulcl 11088  ax-mulrcl 11089  ax-mulcom 11090  ax-addass 11091  ax-mulass 11092  ax-distr 11093  ax-i2m1 11094  ax-1ne0 11095  ax-1rid 11096  ax-rnegex 11097  ax-rrecex 11098  ax-cnre 11099  ax-pre-lttri 11100  ax-pre-lttrn 11101  ax-pre-ltadd 11102  ax-pre-mulgt0 11103  ax-pre-sup 11104
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2539  df-eu 2569  df-clab 2715  df-cleq 2728  df-clel 2811  df-nfc 2885  df-ne 2933  df-nel 3037  df-ral 3052  df-rex 3061  df-rmo 3350  df-reu 3351  df-rab 3400  df-v 3442  df-sbc 3741  df-csb 3850  df-dif 3904  df-un 3906  df-in 3908  df-ss 3918  df-pss 3921  df-nul 4286  df-if 4480  df-pw 4556  df-sn 4581  df-pr 4583  df-op 4587  df-uni 4864  df-int 4903  df-iun 4948  df-br 5099  df-opab 5161  df-mpt 5180  df-tr 5206  df-id 5519  df-eprel 5524  df-po 5532  df-so 5533  df-fr 5577  df-we 5579  df-xp 5630  df-rel 5631  df-cnv 5632  df-co 5633  df-dm 5634  df-rn 5635  df-res 5636  df-ima 5637  df-pred 6259  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6494  df-fn 6495  df-f 6496  df-f1 6497  df-fo 6498  df-f1o 6499  df-fv 6500  df-riota 7315  df-ov 7361  df-oprab 7362  df-mpo 7363  df-om 7809  df-1st 7933  df-2nd 7934  df-frecs 8223  df-wrecs 8254  df-recs 8303  df-rdg 8341  df-1o 8397  df-er 8635  df-map 8765  df-en 8884  df-dom 8885  df-sdom 8886  df-fin 8887  df-sup 9345  df-inf 9346  df-card 9851  df-pnf 11168  df-mnf 11169  df-xr 11170  df-ltxr 11171  df-le 11172  df-sub 11366  df-neg 11367  df-div 11795  df-nn 12146  df-2 12208  df-n0 12402  df-z 12489  df-uz 12752  df-rp 12906  df-fz 13424  df-fzo 13571  df-fl 13712  df-mod 13790  df-hash 14254  df-word 14437  df-concat 14494  df-substr 14565  df-pfx 14595  df-csh 14712  df-clwwlk 30057  df-clwwlkn 30100
This theorem is referenced by:  erclwwlkn  30147  eclclwwlkn1  30150
  Copyright terms: Public domain W3C validator