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

Theorem revrev 13953
Description: Reversal is an involution on words. (Contributed by Mario Carneiro, 1-Oct-2015.)
Assertion
Ref Expression
revrev (𝑊 ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)) = 𝑊)

Proof of Theorem revrev
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 revcl 13947 . . . 4 (𝑊 ∈ Word 𝐴 → (reverse‘𝑊) ∈ Word 𝐴)
2 revcl 13947 . . . 4 ((reverse‘𝑊) ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)) ∈ Word 𝐴)
3 wrdf 13700 . . . 4 ((reverse‘(reverse‘𝑊)) ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)):(0..^(♯‘(reverse‘(reverse‘𝑊))))⟶𝐴)
4 ffn 6374 . . . 4 ((reverse‘(reverse‘𝑊)):(0..^(♯‘(reverse‘(reverse‘𝑊))))⟶𝐴 → (reverse‘(reverse‘𝑊)) Fn (0..^(♯‘(reverse‘(reverse‘𝑊)))))
51, 2, 3, 44syl 19 . . 3 (𝑊 ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)) Fn (0..^(♯‘(reverse‘(reverse‘𝑊)))))
6 revlen 13948 . . . . . . 7 ((reverse‘𝑊) ∈ Word 𝐴 → (♯‘(reverse‘(reverse‘𝑊))) = (♯‘(reverse‘𝑊)))
71, 6syl 17 . . . . . 6 (𝑊 ∈ Word 𝐴 → (♯‘(reverse‘(reverse‘𝑊))) = (♯‘(reverse‘𝑊)))
8 revlen 13948 . . . . . 6 (𝑊 ∈ Word 𝐴 → (♯‘(reverse‘𝑊)) = (♯‘𝑊))
97, 8eqtrd 2829 . . . . 5 (𝑊 ∈ Word 𝐴 → (♯‘(reverse‘(reverse‘𝑊))) = (♯‘𝑊))
109oveq2d 7023 . . . 4 (𝑊 ∈ Word 𝐴 → (0..^(♯‘(reverse‘(reverse‘𝑊)))) = (0..^(♯‘𝑊)))
1110fneq2d 6309 . . 3 (𝑊 ∈ Word 𝐴 → ((reverse‘(reverse‘𝑊)) Fn (0..^(♯‘(reverse‘(reverse‘𝑊)))) ↔ (reverse‘(reverse‘𝑊)) Fn (0..^(♯‘𝑊))))
125, 11mpbid 233 . 2 (𝑊 ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)) Fn (0..^(♯‘𝑊)))
13 wrdfn 13710 . 2 (𝑊 ∈ Word 𝐴𝑊 Fn (0..^(♯‘𝑊)))
14 simpr 485 . . . . 5 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → 𝑥 ∈ (0..^(♯‘𝑊)))
158adantr 481 . . . . . 6 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (♯‘(reverse‘𝑊)) = (♯‘𝑊))
1615oveq2d 7023 . . . . 5 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (0..^(♯‘(reverse‘𝑊))) = (0..^(♯‘𝑊)))
1714, 16eleqtrrd 2884 . . . 4 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → 𝑥 ∈ (0..^(♯‘(reverse‘𝑊))))
18 revfv 13949 . . . 4 (((reverse‘𝑊) ∈ Word 𝐴𝑥 ∈ (0..^(♯‘(reverse‘𝑊)))) → ((reverse‘(reverse‘𝑊))‘𝑥) = ((reverse‘𝑊)‘(((♯‘(reverse‘𝑊)) − 1) − 𝑥)))
191, 17, 18syl2an2r 681 . . 3 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘(reverse‘𝑊))‘𝑥) = ((reverse‘𝑊)‘(((♯‘(reverse‘𝑊)) − 1) − 𝑥)))
2015oveq1d 7022 . . . . 5 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((♯‘(reverse‘𝑊)) − 1) = ((♯‘𝑊) − 1))
2120fvoveq1d 7029 . . . 4 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘(((♯‘(reverse‘𝑊)) − 1) − 𝑥)) = ((reverse‘𝑊)‘(((♯‘𝑊) − 1) − 𝑥)))
22 lencl 13717 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝐴 → (♯‘𝑊) ∈ ℕ0)
2322nn0zd 11923 . . . . . . . . . . 11 (𝑊 ∈ Word 𝐴 → (♯‘𝑊) ∈ ℤ)
24 fzoval 12878 . . . . . . . . . . 11 ((♯‘𝑊) ∈ ℤ → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1)))
2523, 24syl 17 . . . . . . . . . 10 (𝑊 ∈ Word 𝐴 → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1)))
2625eleq2d 2866 . . . . . . . . 9 (𝑊 ∈ Word 𝐴 → (𝑥 ∈ (0..^(♯‘𝑊)) ↔ 𝑥 ∈ (0...((♯‘𝑊) − 1))))
2726biimpa 477 . . . . . . . 8 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → 𝑥 ∈ (0...((♯‘𝑊) − 1)))
28 fznn0sub2 12853 . . . . . . . 8 (𝑥 ∈ (0...((♯‘𝑊) − 1)) → (((♯‘𝑊) − 1) − 𝑥) ∈ (0...((♯‘𝑊) − 1)))
2927, 28syl 17 . . . . . . 7 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘𝑊) − 1) − 𝑥) ∈ (0...((♯‘𝑊) − 1)))
3025adantr 481 . . . . . . 7 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1)))
3129, 30eleqtrrd 2884 . . . . . 6 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘𝑊) − 1) − 𝑥) ∈ (0..^(♯‘𝑊)))
32 revfv 13949 . . . . . 6 ((𝑊 ∈ Word 𝐴 ∧ (((♯‘𝑊) − 1) − 𝑥) ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘(((♯‘𝑊) − 1) − 𝑥)) = (𝑊‘(((♯‘𝑊) − 1) − (((♯‘𝑊) − 1) − 𝑥))))
3331, 32syldan 591 . . . . 5 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘(((♯‘𝑊) − 1) − 𝑥)) = (𝑊‘(((♯‘𝑊) − 1) − (((♯‘𝑊) − 1) − 𝑥))))
34 peano2zm 11863 . . . . . . . . 9 ((♯‘𝑊) ∈ ℤ → ((♯‘𝑊) − 1) ∈ ℤ)
3523, 34syl 17 . . . . . . . 8 (𝑊 ∈ Word 𝐴 → ((♯‘𝑊) − 1) ∈ ℤ)
3635zcnd 11926 . . . . . . 7 (𝑊 ∈ Word 𝐴 → ((♯‘𝑊) − 1) ∈ ℂ)
37 elfzoelz 12877 . . . . . . . 8 (𝑥 ∈ (0..^(♯‘𝑊)) → 𝑥 ∈ ℤ)
3837zcnd 11926 . . . . . . 7 (𝑥 ∈ (0..^(♯‘𝑊)) → 𝑥 ∈ ℂ)
39 nncan 10752 . . . . . . 7 ((((♯‘𝑊) − 1) ∈ ℂ ∧ 𝑥 ∈ ℂ) → (((♯‘𝑊) − 1) − (((♯‘𝑊) − 1) − 𝑥)) = 𝑥)
4036, 38, 39syl2an 595 . . . . . 6 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘𝑊) − 1) − (((♯‘𝑊) − 1) − 𝑥)) = 𝑥)
4140fveq2d 6534 . . . . 5 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → (𝑊‘(((♯‘𝑊) − 1) − (((♯‘𝑊) − 1) − 𝑥))) = (𝑊𝑥))
4233, 41eqtrd 2829 . . . 4 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘(((♯‘𝑊) − 1) − 𝑥)) = (𝑊𝑥))
4321, 42eqtrd 2829 . . 3 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘(((♯‘(reverse‘𝑊)) − 1) − 𝑥)) = (𝑊𝑥))
4419, 43eqtrd 2829 . 2 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘(reverse‘𝑊))‘𝑥) = (𝑊𝑥))
4512, 13, 44eqfnfvd 6661 1 (𝑊 ∈ Word 𝐴 → (reverse‘(reverse‘𝑊)) = 𝑊)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 396   = wceq 1520  wcel 2079   Fn wfn 6212  wf 6213  cfv 6217  (class class class)co 7007  cc 10370  0cc0 10372  1c1 10373  cmin 10706  cz 11818  ...cfz 12731  ..^cfzo 12872  chash 13528  Word cword 13695  reversecreverse 13944
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1775  ax-4 1789  ax-5 1886  ax-6 1945  ax-7 1990  ax-8 2081  ax-9 2089  ax-10 2110  ax-11 2124  ax-12 2139  ax-13 2342  ax-ext 2767  ax-rep 5075  ax-sep 5088  ax-nul 5095  ax-pow 5150  ax-pr 5214  ax-un 7310  ax-cnex 10428  ax-resscn 10429  ax-1cn 10430  ax-icn 10431  ax-addcl 10432  ax-addrcl 10433  ax-mulcl 10434  ax-mulrcl 10435  ax-mulcom 10436  ax-addass 10437  ax-mulass 10438  ax-distr 10439  ax-i2m1 10440  ax-1ne0 10441  ax-1rid 10442  ax-rnegex 10443  ax-rrecex 10444  ax-cnre 10445  ax-pre-lttri 10446  ax-pre-lttrn 10447  ax-pre-ltadd 10448  ax-pre-mulgt0 10449
This theorem depends on definitions:  df-bi 208  df-an 397  df-or 843  df-3or 1079  df-3an 1080  df-tru 1523  df-ex 1760  df-nf 1764  df-sb 2041  df-mo 2574  df-eu 2610  df-clab 2774  df-cleq 2786  df-clel 2861  df-nfc 2933  df-ne 2983  df-nel 3089  df-ral 3108  df-rex 3109  df-reu 3110  df-rab 3112  df-v 3434  df-sbc 3702  df-csb 3807  df-dif 3857  df-un 3859  df-in 3861  df-ss 3869  df-pss 3871  df-nul 4207  df-if 4376  df-pw 4449  df-sn 4467  df-pr 4469  df-tp 4471  df-op 4473  df-uni 4740  df-int 4777  df-iun 4821  df-br 4957  df-opab 5019  df-mpt 5036  df-tr 5058  df-id 5340  df-eprel 5345  df-po 5354  df-so 5355  df-fr 5394  df-we 5396  df-xp 5441  df-rel 5442  df-cnv 5443  df-co 5444  df-dm 5445  df-rn 5446  df-res 5447  df-ima 5448  df-pred 6015  df-ord 6061  df-on 6062  df-lim 6063  df-suc 6064  df-iota 6181  df-fun 6219  df-fn 6220  df-f 6221  df-f1 6222  df-fo 6223  df-f1o 6224  df-fv 6225  df-riota 6968  df-ov 7010  df-oprab 7011  df-mpo 7012  df-om 7428  df-1st 7536  df-2nd 7537  df-wrecs 7789  df-recs 7851  df-rdg 7889  df-1o 7944  df-oadd 7948  df-er 8130  df-en 8348  df-dom 8349  df-sdom 8350  df-fin 8351  df-card 9203  df-pnf 10512  df-mnf 10513  df-xr 10514  df-ltxr 10515  df-le 10516  df-sub 10708  df-neg 10709  df-nn 11476  df-n0 11735  df-z 11819  df-uz 12083  df-fz 12732  df-fzo 12873  df-hash 13529  df-word 13696  df-reverse 13945
This theorem is referenced by:  efginvrel1  18569
  Copyright terms: Public domain W3C validator