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

Theorem revco 13379
Description: Mapping of words commutes with reversal. (Contributed by Stefan O'Rear, 27-Aug-2015.)
Assertion
Ref Expression
revco ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝐹 ∘ (reverse‘𝑊)) = (reverse‘(𝐹𝑊)))

Proof of Theorem revco
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 wrdfn 13122 . . . . . . 7 (𝑊 ∈ Word 𝐴𝑊 Fn (0..^(#‘𝑊)))
21ad2antrr 757 . . . . . 6 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → 𝑊 Fn (0..^(#‘𝑊)))
3 lencl 13127 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝐴 → (#‘𝑊) ∈ ℕ0)
43nn0zd 11314 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝐴 → (#‘𝑊) ∈ ℤ)
5 fzoval 12297 . . . . . . . . . . . 12 ((#‘𝑊) ∈ ℤ → (0..^(#‘𝑊)) = (0...((#‘𝑊) − 1)))
64, 5syl 17 . . . . . . . . . . 11 (𝑊 ∈ Word 𝐴 → (0..^(#‘𝑊)) = (0...((#‘𝑊) − 1)))
76adantr 479 . . . . . . . . . 10 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (0..^(#‘𝑊)) = (0...((#‘𝑊) − 1)))
87eleq2d 2672 . . . . . . . . 9 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝑥 ∈ (0..^(#‘𝑊)) ↔ 𝑥 ∈ (0...((#‘𝑊) − 1))))
98biimpa 499 . . . . . . . 8 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → 𝑥 ∈ (0...((#‘𝑊) − 1)))
10 fznn0sub2 12272 . . . . . . . 8 (𝑥 ∈ (0...((#‘𝑊) − 1)) → (((#‘𝑊) − 1) − 𝑥) ∈ (0...((#‘𝑊) − 1)))
119, 10syl 17 . . . . . . 7 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → (((#‘𝑊) − 1) − 𝑥) ∈ (0...((#‘𝑊) − 1)))
127adantr 479 . . . . . . 7 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → (0..^(#‘𝑊)) = (0...((#‘𝑊) − 1)))
1311, 12eleqtrrd 2690 . . . . . 6 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → (((#‘𝑊) − 1) − 𝑥) ∈ (0..^(#‘𝑊)))
14 fvco2 6167 . . . . . 6 ((𝑊 Fn (0..^(#‘𝑊)) ∧ (((#‘𝑊) − 1) − 𝑥) ∈ (0..^(#‘𝑊))) → ((𝐹𝑊)‘(((#‘𝑊) − 1) − 𝑥)) = (𝐹‘(𝑊‘(((#‘𝑊) − 1) − 𝑥))))
152, 13, 14syl2anc 690 . . . . 5 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → ((𝐹𝑊)‘(((#‘𝑊) − 1) − 𝑥)) = (𝐹‘(𝑊‘(((#‘𝑊) − 1) − 𝑥))))
16 lenco 13377 . . . . . . . . 9 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (#‘(𝐹𝑊)) = (#‘𝑊))
1716oveq1d 6541 . . . . . . . 8 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → ((#‘(𝐹𝑊)) − 1) = ((#‘𝑊) − 1))
1817oveq1d 6541 . . . . . . 7 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (((#‘(𝐹𝑊)) − 1) − 𝑥) = (((#‘𝑊) − 1) − 𝑥))
1918adantr 479 . . . . . 6 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → (((#‘(𝐹𝑊)) − 1) − 𝑥) = (((#‘𝑊) − 1) − 𝑥))
2019fveq2d 6091 . . . . 5 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥)) = ((𝐹𝑊)‘(((#‘𝑊) − 1) − 𝑥)))
21 revfv 13311 . . . . . . 7 ((𝑊 ∈ Word 𝐴𝑥 ∈ (0..^(#‘𝑊))) → ((reverse‘𝑊)‘𝑥) = (𝑊‘(((#‘𝑊) − 1) − 𝑥)))
2221adantlr 746 . . . . . 6 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → ((reverse‘𝑊)‘𝑥) = (𝑊‘(((#‘𝑊) − 1) − 𝑥)))
2322fveq2d 6091 . . . . 5 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → (𝐹‘((reverse‘𝑊)‘𝑥)) = (𝐹‘(𝑊‘(((#‘𝑊) − 1) − 𝑥))))
2415, 20, 233eqtr4d 2653 . . . 4 (((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑊))) → ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥)) = (𝐹‘((reverse‘𝑊)‘𝑥)))
2524mpteq2dva 4666 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝑥 ∈ (0..^(#‘𝑊)) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))) = (𝑥 ∈ (0..^(#‘𝑊)) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))))
2616oveq2d 6542 . . . 4 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (0..^(#‘(𝐹𝑊))) = (0..^(#‘𝑊)))
2726mpteq1d 4660 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝑥 ∈ (0..^(#‘(𝐹𝑊))) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))) = (𝑥 ∈ (0..^(#‘𝑊)) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))))
28 revlen 13310 . . . . . 6 (𝑊 ∈ Word 𝐴 → (#‘(reverse‘𝑊)) = (#‘𝑊))
2928adantr 479 . . . . 5 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (#‘(reverse‘𝑊)) = (#‘𝑊))
3029oveq2d 6542 . . . 4 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (0..^(#‘(reverse‘𝑊))) = (0..^(#‘𝑊)))
3130mpteq1d 4660 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝑥 ∈ (0..^(#‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))) = (𝑥 ∈ (0..^(#‘𝑊)) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))))
3225, 27, 313eqtr4rd 2654 . 2 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝑥 ∈ (0..^(#‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))) = (𝑥 ∈ (0..^(#‘(𝐹𝑊))) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))))
33 simpr 475 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → 𝐹:𝐴𝐵)
34 revcl 13309 . . . . 5 (𝑊 ∈ Word 𝐴 → (reverse‘𝑊) ∈ Word 𝐴)
35 wrdf 13113 . . . . 5 ((reverse‘𝑊) ∈ Word 𝐴 → (reverse‘𝑊):(0..^(#‘(reverse‘𝑊)))⟶𝐴)
3634, 35syl 17 . . . 4 (𝑊 ∈ Word 𝐴 → (reverse‘𝑊):(0..^(#‘(reverse‘𝑊)))⟶𝐴)
3736adantr 479 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (reverse‘𝑊):(0..^(#‘(reverse‘𝑊)))⟶𝐴)
38 fcompt 6290 . . 3 ((𝐹:𝐴𝐵 ∧ (reverse‘𝑊):(0..^(#‘(reverse‘𝑊)))⟶𝐴) → (𝐹 ∘ (reverse‘𝑊)) = (𝑥 ∈ (0..^(#‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))))
3933, 37, 38syl2anc 690 . 2 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝐹 ∘ (reverse‘𝑊)) = (𝑥 ∈ (0..^(#‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))))
40 ffun 5946 . . . . 5 (𝐹:𝐴𝐵 → Fun 𝐹)
4140adantl 480 . . . 4 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → Fun 𝐹)
42 simpl 471 . . . 4 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → 𝑊 ∈ Word 𝐴)
43 cofunexg 7000 . . . 4 ((Fun 𝐹𝑊 ∈ Word 𝐴) → (𝐹𝑊) ∈ V)
4441, 42, 43syl2anc 690 . . 3 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝐹𝑊) ∈ V)
45 revval 13308 . . 3 ((𝐹𝑊) ∈ V → (reverse‘(𝐹𝑊)) = (𝑥 ∈ (0..^(#‘(𝐹𝑊))) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))))
4644, 45syl 17 . 2 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (reverse‘(𝐹𝑊)) = (𝑥 ∈ (0..^(#‘(𝐹𝑊))) ↦ ((𝐹𝑊)‘(((#‘(𝐹𝑊)) − 1) − 𝑥))))
4732, 39, 463eqtr4d 2653 1 ((𝑊 ∈ Word 𝐴𝐹:𝐴𝐵) → (𝐹 ∘ (reverse‘𝑊)) = (reverse‘(𝐹𝑊)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 382   = wceq 1474  wcel 1976  Vcvv 3172  cmpt 4637  ccom 5031  Fun wfun 5783   Fn wfn 5784  wf 5785  cfv 5789  (class class class)co 6526  0cc0 9792  1c1 9793  cmin 10117  cz 11212  ...cfz 12154  ..^cfzo 12291  #chash 12936  Word cword 13094  reversecreverse 13100
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1712  ax-4 1727  ax-5 1826  ax-6 1874  ax-7 1921  ax-8 1978  ax-9 1985  ax-10 2005  ax-11 2020  ax-12 2033  ax-13 2233  ax-ext 2589  ax-rep 4693  ax-sep 4703  ax-nul 4711  ax-pow 4763  ax-pr 4827  ax-un 6824  ax-cnex 9848  ax-resscn 9849  ax-1cn 9850  ax-icn 9851  ax-addcl 9852  ax-addrcl 9853  ax-mulcl 9854  ax-mulrcl 9855  ax-mulcom 9856  ax-addass 9857  ax-mulass 9858  ax-distr 9859  ax-i2m1 9860  ax-1ne0 9861  ax-1rid 9862  ax-rnegex 9863  ax-rrecex 9864  ax-cnre 9865  ax-pre-lttri 9866  ax-pre-lttrn 9867  ax-pre-ltadd 9868  ax-pre-mulgt0 9869
This theorem depends on definitions:  df-bi 195  df-or 383  df-an 384  df-3or 1031  df-3an 1032  df-tru 1477  df-ex 1695  df-nf 1700  df-sb 1867  df-eu 2461  df-mo 2462  df-clab 2596  df-cleq 2602  df-clel 2605  df-nfc 2739  df-ne 2781  df-nel 2782  df-ral 2900  df-rex 2901  df-reu 2902  df-rab 2904  df-v 3174  df-sbc 3402  df-csb 3499  df-dif 3542  df-un 3544  df-in 3546  df-ss 3553  df-pss 3555  df-nul 3874  df-if 4036  df-pw 4109  df-sn 4125  df-pr 4127  df-tp 4129  df-op 4131  df-uni 4367  df-int 4405  df-iun 4451  df-br 4578  df-opab 4638  df-mpt 4639  df-tr 4675  df-eprel 4938  df-id 4942  df-po 4948  df-so 4949  df-fr 4986  df-we 4988  df-xp 5033  df-rel 5034  df-cnv 5035  df-co 5036  df-dm 5037  df-rn 5038  df-res 5039  df-ima 5040  df-pred 5582  df-ord 5628  df-on 5629  df-lim 5630  df-suc 5631  df-iota 5753  df-fun 5791  df-fn 5792  df-f 5793  df-f1 5794  df-fo 5795  df-f1o 5796  df-fv 5797  df-riota 6488  df-ov 6529  df-oprab 6530  df-mpt2 6531  df-om 6935  df-1st 7036  df-2nd 7037  df-wrecs 7271  df-recs 7332  df-rdg 7370  df-1o 7424  df-oadd 7428  df-er 7606  df-en 7819  df-dom 7820  df-sdom 7821  df-fin 7822  df-card 8625  df-pnf 9932  df-mnf 9933  df-xr 9934  df-ltxr 9935  df-le 9936  df-sub 10119  df-neg 10120  df-nn 10870  df-n0 11142  df-z 11213  df-uz 11522  df-fz 12155  df-fzo 12292  df-hash 12937  df-word 13102  df-reverse 13108
This theorem is referenced by:  efginvrel1  17912
  Copyright terms: Public domain W3C validator