| Step | Hyp | Ref
| Expression |
| 1 | | wrdfn 14551 |
. . . . . . 7
⊢ (𝑊 ∈ Word 𝐴 → 𝑊 Fn (0..^(♯‘𝑊))) |
| 2 | 1 | ad2antrr 726 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → 𝑊 Fn (0..^(♯‘𝑊))) |
| 3 | | lencl 14556 |
. . . . . . . . . . . . 13
⊢ (𝑊 ∈ Word 𝐴 → (♯‘𝑊) ∈
ℕ0) |
| 4 | 3 | nn0zd 12619 |
. . . . . . . . . . . 12
⊢ (𝑊 ∈ Word 𝐴 → (♯‘𝑊) ∈ ℤ) |
| 5 | | fzoval 13682 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℤ → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1))) |
| 6 | 4, 5 | syl 17 |
. . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝐴 → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1))) |
| 7 | 6 | adantr 480 |
. . . . . . . . . 10
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1))) |
| 8 | 7 | eleq2d 2821 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝑥 ∈ (0..^(♯‘𝑊)) ↔ 𝑥 ∈ (0...((♯‘𝑊) − 1)))) |
| 9 | 8 | biimpa 476 |
. . . . . . . 8
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → 𝑥 ∈ (0...((♯‘𝑊) − 1))) |
| 10 | | fznn0sub2 13657 |
. . . . . . . 8
⊢ (𝑥 ∈
(0...((♯‘𝑊)
− 1)) → (((♯‘𝑊) − 1) − 𝑥) ∈ (0...((♯‘𝑊) − 1))) |
| 11 | 9, 10 | syl 17 |
. . . . . . 7
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘𝑊) − 1) − 𝑥) ∈
(0...((♯‘𝑊)
− 1))) |
| 12 | 7 | adantr 480 |
. . . . . . 7
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → (0..^(♯‘𝑊)) = (0...((♯‘𝑊) − 1))) |
| 13 | 11, 12 | eleqtrrd 2838 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘𝑊) − 1) − 𝑥) ∈
(0..^(♯‘𝑊))) |
| 14 | | fvco2 6981 |
. . . . . 6
⊢ ((𝑊 Fn (0..^(♯‘𝑊)) ∧ (((♯‘𝑊) − 1) − 𝑥) ∈
(0..^(♯‘𝑊)))
→ ((𝐹 ∘ 𝑊)‘(((♯‘𝑊) − 1) − 𝑥)) = (𝐹‘(𝑊‘(((♯‘𝑊) − 1) − 𝑥)))) |
| 15 | 2, 13, 14 | syl2anc 584 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → ((𝐹 ∘ 𝑊)‘(((♯‘𝑊) − 1) − 𝑥)) = (𝐹‘(𝑊‘(((♯‘𝑊) − 1) − 𝑥)))) |
| 16 | | lenco 14856 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (♯‘(𝐹 ∘ 𝑊)) = (♯‘𝑊)) |
| 17 | 16 | oveq1d 7425 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → ((♯‘(𝐹 ∘ 𝑊)) − 1) = ((♯‘𝑊) − 1)) |
| 18 | 17 | oveq1d 7425 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥) = (((♯‘𝑊) − 1) − 𝑥)) |
| 19 | 18 | adantr 480 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → (((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥) = (((♯‘𝑊) − 1) − 𝑥)) |
| 20 | 19 | fveq2d 6885 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)) = ((𝐹 ∘ 𝑊)‘(((♯‘𝑊) − 1) − 𝑥))) |
| 21 | | revfv 14786 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘𝑥) = (𝑊‘(((♯‘𝑊) − 1) − 𝑥))) |
| 22 | 21 | adantlr 715 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → ((reverse‘𝑊)‘𝑥) = (𝑊‘(((♯‘𝑊) − 1) − 𝑥))) |
| 23 | 22 | fveq2d 6885 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → (𝐹‘((reverse‘𝑊)‘𝑥)) = (𝐹‘(𝑊‘(((♯‘𝑊) − 1) − 𝑥)))) |
| 24 | 15, 20, 23 | 3eqtr4d 2781 |
. . . 4
⊢ (((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑊))) → ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)) = (𝐹‘((reverse‘𝑊)‘𝑥))) |
| 25 | 24 | mpteq2dva 5219 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝑥 ∈ (0..^(♯‘𝑊)) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥))) = (𝑥 ∈ (0..^(♯‘𝑊)) ↦ (𝐹‘((reverse‘𝑊)‘𝑥)))) |
| 26 | 16 | oveq2d 7426 |
. . . 4
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (0..^(♯‘(𝐹 ∘ 𝑊))) = (0..^(♯‘𝑊))) |
| 27 | 26 | mpteq1d 5215 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝑥 ∈ (0..^(♯‘(𝐹 ∘ 𝑊))) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥))) = (𝑥 ∈ (0..^(♯‘𝑊)) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)))) |
| 28 | | revlen 14785 |
. . . . . 6
⊢ (𝑊 ∈ Word 𝐴 → (♯‘(reverse‘𝑊)) = (♯‘𝑊)) |
| 29 | 28 | adantr 480 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (♯‘(reverse‘𝑊)) = (♯‘𝑊)) |
| 30 | 29 | oveq2d 7426 |
. . . 4
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) →
(0..^(♯‘(reverse‘𝑊))) = (0..^(♯‘𝑊))) |
| 31 | 30 | mpteq1d 5215 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝑥 ∈
(0..^(♯‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))) = (𝑥 ∈ (0..^(♯‘𝑊)) ↦ (𝐹‘((reverse‘𝑊)‘𝑥)))) |
| 32 | 25, 27, 31 | 3eqtr4rd 2782 |
. 2
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝑥 ∈
(0..^(♯‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥))) = (𝑥 ∈ (0..^(♯‘(𝐹 ∘ 𝑊))) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)))) |
| 33 | | simpr 484 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → 𝐹:𝐴⟶𝐵) |
| 34 | | revcl 14784 |
. . . . 5
⊢ (𝑊 ∈ Word 𝐴 → (reverse‘𝑊) ∈ Word 𝐴) |
| 35 | | wrdf 14541 |
. . . . 5
⊢
((reverse‘𝑊)
∈ Word 𝐴 →
(reverse‘𝑊):(0..^(♯‘(reverse‘𝑊)))⟶𝐴) |
| 36 | 34, 35 | syl 17 |
. . . 4
⊢ (𝑊 ∈ Word 𝐴 → (reverse‘𝑊):(0..^(♯‘(reverse‘𝑊)))⟶𝐴) |
| 37 | 36 | adantr 480 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (reverse‘𝑊):(0..^(♯‘(reverse‘𝑊)))⟶𝐴) |
| 38 | | fcompt 7128 |
. . 3
⊢ ((𝐹:𝐴⟶𝐵 ∧ (reverse‘𝑊):(0..^(♯‘(reverse‘𝑊)))⟶𝐴) → (𝐹 ∘ (reverse‘𝑊)) = (𝑥 ∈
(0..^(♯‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥)))) |
| 39 | 33, 37, 38 | syl2anc 584 |
. 2
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝐹 ∘ (reverse‘𝑊)) = (𝑥 ∈
(0..^(♯‘(reverse‘𝑊))) ↦ (𝐹‘((reverse‘𝑊)‘𝑥)))) |
| 40 | | ffun 6714 |
. . . 4
⊢ (𝐹:𝐴⟶𝐵 → Fun 𝐹) |
| 41 | | simpl 482 |
. . . 4
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → 𝑊 ∈ Word 𝐴) |
| 42 | | cofunexg 7952 |
. . . 4
⊢ ((Fun
𝐹 ∧ 𝑊 ∈ Word 𝐴) → (𝐹 ∘ 𝑊) ∈ V) |
| 43 | 40, 41, 42 | syl2an2 686 |
. . 3
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝐹 ∘ 𝑊) ∈ V) |
| 44 | | revval 14783 |
. . 3
⊢ ((𝐹 ∘ 𝑊) ∈ V → (reverse‘(𝐹 ∘ 𝑊)) = (𝑥 ∈ (0..^(♯‘(𝐹 ∘ 𝑊))) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)))) |
| 45 | 43, 44 | syl 17 |
. 2
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (reverse‘(𝐹 ∘ 𝑊)) = (𝑥 ∈ (0..^(♯‘(𝐹 ∘ 𝑊))) ↦ ((𝐹 ∘ 𝑊)‘(((♯‘(𝐹 ∘ 𝑊)) − 1) − 𝑥)))) |
| 46 | 32, 39, 45 | 3eqtr4d 2781 |
1
⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝐹:𝐴⟶𝐵) → (𝐹 ∘ (reverse‘𝑊)) = (reverse‘(𝐹 ∘ 𝑊))) |