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

Theorem revccat 13724
Description: Antiautomorphic property of the reversal operation. (Contributed by Stefan O'Rear, 27-Aug-2015.)
Assertion
Ref Expression
revccat ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (reverse‘(𝑆 ++ 𝑇)) = ((reverse‘𝑇) ++ (reverse‘𝑆)))

Proof of Theorem revccat
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 ccatcl 13556 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑆 ++ 𝑇) ∈ Word 𝐴)
2 revcl 13719 . . . 4 ((𝑆 ++ 𝑇) ∈ Word 𝐴 → (reverse‘(𝑆 ++ 𝑇)) ∈ Word 𝐴)
3 wrdf 13506 . . . 4 ((reverse‘(𝑆 ++ 𝑇)) ∈ Word 𝐴 → (reverse‘(𝑆 ++ 𝑇)):(0..^(♯‘(reverse‘(𝑆 ++ 𝑇))))⟶𝐴)
4 ffn 6184 . . . 4 ((reverse‘(𝑆 ++ 𝑇)):(0..^(♯‘(reverse‘(𝑆 ++ 𝑇))))⟶𝐴 → (reverse‘(𝑆 ++ 𝑇)) Fn (0..^(♯‘(reverse‘(𝑆 ++ 𝑇)))))
51, 2, 3, 44syl 19 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (reverse‘(𝑆 ++ 𝑇)) Fn (0..^(♯‘(reverse‘(𝑆 ++ 𝑇)))))
6 revlen 13720 . . . . . . 7 ((𝑆 ++ 𝑇) ∈ Word 𝐴 → (♯‘(reverse‘(𝑆 ++ 𝑇))) = (♯‘(𝑆 ++ 𝑇)))
71, 6syl 17 . . . . . 6 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(reverse‘(𝑆 ++ 𝑇))) = (♯‘(𝑆 ++ 𝑇)))
8 ccatlen 13557 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇)))
9 lencl 13520 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℕ0)
109nn0cnd 11560 . . . . . . . 8 (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℂ)
11 lencl 13520 . . . . . . . . 9 (𝑇 ∈ Word 𝐴 → (♯‘𝑇) ∈ ℕ0)
1211nn0cnd 11560 . . . . . . . 8 (𝑇 ∈ Word 𝐴 → (♯‘𝑇) ∈ ℂ)
13 addcom 10428 . . . . . . . 8 (((♯‘𝑆) ∈ ℂ ∧ (♯‘𝑇) ∈ ℂ) → ((♯‘𝑆) + (♯‘𝑇)) = ((♯‘𝑇) + (♯‘𝑆)))
1410, 12, 13syl2an 583 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑆) + (♯‘𝑇)) = ((♯‘𝑇) + (♯‘𝑆)))
158, 14eqtrd 2805 . . . . . 6 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑇) + (♯‘𝑆)))
167, 15eqtrd 2805 . . . . 5 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(reverse‘(𝑆 ++ 𝑇))) = ((♯‘𝑇) + (♯‘𝑆)))
1716oveq2d 6812 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘(reverse‘(𝑆 ++ 𝑇)))) = (0..^((♯‘𝑇) + (♯‘𝑆))))
1817fneq2d 6121 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((reverse‘(𝑆 ++ 𝑇)) Fn (0..^(♯‘(reverse‘(𝑆 ++ 𝑇)))) ↔ (reverse‘(𝑆 ++ 𝑇)) Fn (0..^((♯‘𝑇) + (♯‘𝑆)))))
195, 18mpbid 222 . 2 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (reverse‘(𝑆 ++ 𝑇)) Fn (0..^((♯‘𝑇) + (♯‘𝑆))))
20 revcl 13719 . . . . 5 (𝑇 ∈ Word 𝐴 → (reverse‘𝑇) ∈ Word 𝐴)
21 revcl 13719 . . . . 5 (𝑆 ∈ Word 𝐴 → (reverse‘𝑆) ∈ Word 𝐴)
22 ccatcl 13556 . . . . 5 (((reverse‘𝑇) ∈ Word 𝐴 ∧ (reverse‘𝑆) ∈ Word 𝐴) → ((reverse‘𝑇) ++ (reverse‘𝑆)) ∈ Word 𝐴)
2320, 21, 22syl2anr 584 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((reverse‘𝑇) ++ (reverse‘𝑆)) ∈ Word 𝐴)
24 wrdf 13506 . . . 4 (((reverse‘𝑇) ++ (reverse‘𝑆)) ∈ Word 𝐴 → ((reverse‘𝑇) ++ (reverse‘𝑆)):(0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆))))⟶𝐴)
25 ffn 6184 . . . 4 (((reverse‘𝑇) ++ (reverse‘𝑆)):(0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆))))⟶𝐴 → ((reverse‘𝑇) ++ (reverse‘𝑆)) Fn (0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆)))))
2623, 24, 253syl 18 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((reverse‘𝑇) ++ (reverse‘𝑆)) Fn (0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆)))))
27 ccatlen 13557 . . . . . . 7 (((reverse‘𝑇) ∈ Word 𝐴 ∧ (reverse‘𝑆) ∈ Word 𝐴) → (♯‘((reverse‘𝑇) ++ (reverse‘𝑆))) = ((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆))))
2820, 21, 27syl2anr 584 . . . . . 6 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘((reverse‘𝑇) ++ (reverse‘𝑆))) = ((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆))))
29 revlen 13720 . . . . . . 7 (𝑇 ∈ Word 𝐴 → (♯‘(reverse‘𝑇)) = (♯‘𝑇))
30 revlen 13720 . . . . . . 7 (𝑆 ∈ Word 𝐴 → (♯‘(reverse‘𝑆)) = (♯‘𝑆))
3129, 30oveqan12rd 6816 . . . . . 6 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆))) = ((♯‘𝑇) + (♯‘𝑆)))
3228, 31eqtrd 2805 . . . . 5 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘((reverse‘𝑇) ++ (reverse‘𝑆))) = ((♯‘𝑇) + (♯‘𝑆)))
3332oveq2d 6812 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆)))) = (0..^((♯‘𝑇) + (♯‘𝑆))))
3433fneq2d 6121 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((reverse‘𝑇) ++ (reverse‘𝑆)) Fn (0..^(♯‘((reverse‘𝑇) ++ (reverse‘𝑆)))) ↔ ((reverse‘𝑇) ++ (reverse‘𝑆)) Fn (0..^((♯‘𝑇) + (♯‘𝑆)))))
3526, 34mpbid 222 . 2 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((reverse‘𝑇) ++ (reverse‘𝑆)) Fn (0..^((♯‘𝑇) + (♯‘𝑆))))
36 id 22 . . . 4 (𝑥 ∈ (0..^((♯‘𝑇) + (♯‘𝑆))) → 𝑥 ∈ (0..^((♯‘𝑇) + (♯‘𝑆))))
3711nn0zd 11687 . . . . 5 (𝑇 ∈ Word 𝐴 → (♯‘𝑇) ∈ ℤ)
3837adantl 467 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑇) ∈ ℤ)
39 fzospliti 12708 . . . 4 ((𝑥 ∈ (0..^((♯‘𝑇) + (♯‘𝑆))) ∧ (♯‘𝑇) ∈ ℤ) → (𝑥 ∈ (0..^(♯‘𝑇)) ∨ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))))
4036, 38, 39syl2anr 584 . . 3 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑥 ∈ (0..^(♯‘𝑇)) ∨ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))))
41 simpll 750 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑆 ∈ Word 𝐴)
42 simplr 752 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑇 ∈ Word 𝐴)
43 fzoval 12679 . . . . . . . . . . . 12 ((♯‘𝑇) ∈ ℤ → (0..^(♯‘𝑇)) = (0...((♯‘𝑇) − 1)))
4438, 43syl 17 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘𝑇)) = (0...((♯‘𝑇) − 1)))
4544eleq2d 2836 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑥 ∈ (0..^(♯‘𝑇)) ↔ 𝑥 ∈ (0...((♯‘𝑇) − 1))))
4645biimpa 462 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ (0...((♯‘𝑇) − 1)))
47 fznn0sub2 12654 . . . . . . . . 9 (𝑥 ∈ (0...((♯‘𝑇) − 1)) → (((♯‘𝑇) − 1) − 𝑥) ∈ (0...((♯‘𝑇) − 1)))
4846, 47syl 17 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (((♯‘𝑇) − 1) − 𝑥) ∈ (0...((♯‘𝑇) − 1)))
4944adantr 466 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (0..^(♯‘𝑇)) = (0...((♯‘𝑇) − 1)))
5048, 49eleqtrrd 2853 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (((♯‘𝑇) − 1) − 𝑥) ∈ (0..^(♯‘𝑇)))
51 ccatval3 13561 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴 ∧ (((♯‘𝑇) − 1) − 𝑥) ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘((((♯‘𝑇) − 1) − 𝑥) + (♯‘𝑆))) = (𝑇‘(((♯‘𝑇) − 1) − 𝑥)))
5241, 42, 50, 51syl3anc 1476 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘((((♯‘𝑇) − 1) − 𝑥) + (♯‘𝑆))) = (𝑇‘(((♯‘𝑇) − 1) − 𝑥)))
5315oveq1d 6811 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(𝑆 ++ 𝑇)) − 1) = (((♯‘𝑇) + (♯‘𝑆)) − 1))
5412adantl 467 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑇) ∈ ℂ)
5510adantr 466 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑆) ∈ ℂ)
56 1cnd 10262 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → 1 ∈ ℂ)
5754, 55, 56addsubd 10619 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑇) + (♯‘𝑆)) − 1) = (((♯‘𝑇) − 1) + (♯‘𝑆)))
5853, 57eqtrd 2805 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(𝑆 ++ 𝑇)) − 1) = (((♯‘𝑇) − 1) + (♯‘𝑆)))
5958oveq1d 6811 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑇) − 1) + (♯‘𝑆)) − 𝑥))
6059adantr 466 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑇) − 1) + (♯‘𝑆)) − 𝑥))
61 peano2zm 11627 . . . . . . . . . . . 12 ((♯‘𝑇) ∈ ℤ → ((♯‘𝑇) − 1) ∈ ℤ)
6237, 61syl 17 . . . . . . . . . . 11 (𝑇 ∈ Word 𝐴 → ((♯‘𝑇) − 1) ∈ ℤ)
6362zcnd 11690 . . . . . . . . . 10 (𝑇 ∈ Word 𝐴 → ((♯‘𝑇) − 1) ∈ ℂ)
6463ad2antlr 706 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((♯‘𝑇) − 1) ∈ ℂ)
6510ad2antrr 705 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (♯‘𝑆) ∈ ℂ)
66 elfzoelz 12678 . . . . . . . . . . 11 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℤ)
6766zcnd 11690 . . . . . . . . . 10 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℂ)
6867adantl 467 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ ℂ)
6964, 65, 68addsubd 10619 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((((♯‘𝑇) − 1) + (♯‘𝑆)) − 𝑥) = ((((♯‘𝑇) − 1) − 𝑥) + (♯‘𝑆)))
7060, 69eqtrd 2805 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑇) − 1) − 𝑥) + (♯‘𝑆)))
7170fveq2d 6337 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = ((𝑆 ++ 𝑇)‘((((♯‘𝑇) − 1) − 𝑥) + (♯‘𝑆))))
72 revfv 13721 . . . . . . 7 ((𝑇 ∈ Word 𝐴𝑥 ∈ (0..^(♯‘𝑇))) → ((reverse‘𝑇)‘𝑥) = (𝑇‘(((♯‘𝑇) − 1) − 𝑥)))
7372adantll 693 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((reverse‘𝑇)‘𝑥) = (𝑇‘(((♯‘𝑇) − 1) − 𝑥)))
7452, 71, 733eqtr4d 2815 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = ((reverse‘𝑇)‘𝑥))
751adantr 466 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑆 ++ 𝑇) ∈ Word 𝐴)
76 uzid 11908 . . . . . . . . . . 11 ((♯‘𝑇) ∈ ℤ → (♯‘𝑇) ∈ (ℤ‘(♯‘𝑇)))
7738, 76syl 17 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑇) ∈ (ℤ‘(♯‘𝑇)))
789adantr 466 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑆) ∈ ℕ0)
79 uzaddcl 11951 . . . . . . . . . 10 (((♯‘𝑇) ∈ (ℤ‘(♯‘𝑇)) ∧ (♯‘𝑆) ∈ ℕ0) → ((♯‘𝑇) + (♯‘𝑆)) ∈ (ℤ‘(♯‘𝑇)))
8077, 78, 79syl2anc 573 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇) + (♯‘𝑆)) ∈ (ℤ‘(♯‘𝑇)))
8115, 80eqeltrd 2850 . . . . . . . 8 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(𝑆 ++ 𝑇)) ∈ (ℤ‘(♯‘𝑇)))
82 fzoss2 12704 . . . . . . . 8 ((♯‘(𝑆 ++ 𝑇)) ∈ (ℤ‘(♯‘𝑇)) → (0..^(♯‘𝑇)) ⊆ (0..^(♯‘(𝑆 ++ 𝑇))))
8381, 82syl 17 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘𝑇)) ⊆ (0..^(♯‘(𝑆 ++ 𝑇))))
8483sselda 3752 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ (0..^(♯‘(𝑆 ++ 𝑇))))
85 revfv 13721 . . . . . 6 (((𝑆 ++ 𝑇) ∈ Word 𝐴𝑥 ∈ (0..^(♯‘(𝑆 ++ 𝑇)))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)))
8675, 84, 85syl2anc 573 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)))
8720ad2antlr 706 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (reverse‘𝑇) ∈ Word 𝐴)
8821ad2antrr 705 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (reverse‘𝑆) ∈ Word 𝐴)
8929adantl 467 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘(reverse‘𝑇)) = (♯‘𝑇))
9089oveq2d 6812 . . . . . . . 8 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘(reverse‘𝑇))) = (0..^(♯‘𝑇)))
9190eleq2d 2836 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑥 ∈ (0..^(♯‘(reverse‘𝑇))) ↔ 𝑥 ∈ (0..^(♯‘𝑇))))
9291biimpar 463 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ (0..^(♯‘(reverse‘𝑇))))
93 ccatval1 13559 . . . . . 6 (((reverse‘𝑇) ∈ Word 𝐴 ∧ (reverse‘𝑆) ∈ Word 𝐴𝑥 ∈ (0..^(♯‘(reverse‘𝑇)))) → (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥) = ((reverse‘𝑇)‘𝑥))
9487, 88, 92, 93syl3anc 1476 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥) = ((reverse‘𝑇)‘𝑥))
9574, 86, 943eqtr4d 2815 . . . 4 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥))
968oveq1d 6811 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(𝑆 ++ 𝑇)) − 1) = (((♯‘𝑆) + (♯‘𝑇)) − 1))
9755, 54, 56addsubd 10619 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑆) + (♯‘𝑇)) − 1) = (((♯‘𝑆) − 1) + (♯‘𝑇)))
9896, 97eqtrd 2805 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(𝑆 ++ 𝑇)) − 1) = (((♯‘𝑆) − 1) + (♯‘𝑇)))
9998oveq1d 6811 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑆) − 1) + (♯‘𝑇)) − 𝑥))
10099adantr 466 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑆) − 1) + (♯‘𝑇)) − 𝑥))
1019nn0zd 11687 . . . . . . . . . . . . 13 (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℤ)
102 peano2zm 11627 . . . . . . . . . . . . 13 ((♯‘𝑆) ∈ ℤ → ((♯‘𝑆) − 1) ∈ ℤ)
103101, 102syl 17 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐴 → ((♯‘𝑆) − 1) ∈ ℤ)
104103zcnd 11690 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴 → ((♯‘𝑆) − 1) ∈ ℂ)
105104ad2antrr 705 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((♯‘𝑆) − 1) ∈ ℂ)
106 elfzoelz 12678 . . . . . . . . . . . 12 (𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) → 𝑥 ∈ ℤ)
107106zcnd 11690 . . . . . . . . . . 11 (𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) → 𝑥 ∈ ℂ)
108107adantl 467 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑥 ∈ ℂ)
10912ad2antlr 706 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (♯‘𝑇) ∈ ℂ)
110105, 108, 109subsub3d 10628 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘𝑆) − 1) − (𝑥 − (♯‘𝑇))) = ((((♯‘𝑆) − 1) + (♯‘𝑇)) − 𝑥))
111100, 110eqtr4d 2808 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = (((♯‘𝑆) − 1) − (𝑥 − (♯‘𝑇))))
11289oveq2d 6812 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑥 − (♯‘(reverse‘𝑇))) = (𝑥 − (♯‘𝑇)))
113112oveq2d 6812 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇)))) = (((♯‘𝑆) − 1) − (𝑥 − (♯‘𝑇))))
114113adantr 466 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇)))) = (((♯‘𝑆) − 1) − (𝑥 − (♯‘𝑇))))
115111, 114eqtr4d 2808 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = (((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇)))))
116115fveq2d 6337 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑆‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = (𝑆‘(((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇))))))
117 simpll 750 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑆 ∈ Word 𝐴)
118 simplr 752 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑇 ∈ Word 𝐴)
119 zaddcl 11624 . . . . . . . . . . . 12 (((♯‘𝑇) ∈ ℤ ∧ (♯‘𝑆) ∈ ℤ) → ((♯‘𝑇) + (♯‘𝑆)) ∈ ℤ)
12037, 101, 119syl2anr 584 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇) + (♯‘𝑆)) ∈ ℤ)
121 peano2zm 11627 . . . . . . . . . . 11 (((♯‘𝑇) + (♯‘𝑆)) ∈ ℤ → (((♯‘𝑇) + (♯‘𝑆)) − 1) ∈ ℤ)
122120, 121syl 17 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑇) + (♯‘𝑆)) − 1) ∈ ℤ)
123122adantr 466 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘𝑇) + (♯‘𝑆)) − 1) ∈ ℤ)
124 fzoval 12679 . . . . . . . . . . . 12 (((♯‘𝑇) + (♯‘𝑆)) ∈ ℤ → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) = ((♯‘𝑇)...(((♯‘𝑇) + (♯‘𝑆)) − 1)))
125120, 124syl 17 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) = ((♯‘𝑇)...(((♯‘𝑇) + (♯‘𝑆)) − 1)))
126125eleq2d 2836 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ↔ 𝑥 ∈ ((♯‘𝑇)...(((♯‘𝑇) + (♯‘𝑆)) − 1))))
127126biimpa 462 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑥 ∈ ((♯‘𝑇)...(((♯‘𝑇) + (♯‘𝑆)) − 1)))
128 fzrev2i 12612 . . . . . . . . 9 (((((♯‘𝑇) + (♯‘𝑆)) − 1) ∈ ℤ ∧ 𝑥 ∈ ((♯‘𝑇)...(((♯‘𝑇) + (♯‘𝑆)) − 1))) → ((((♯‘𝑇) + (♯‘𝑆)) − 1) − 𝑥) ∈ (((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1))...((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇))))
129123, 127, 128syl2anc 573 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((((♯‘𝑇) + (♯‘𝑆)) − 1) − 𝑥) ∈ (((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1))...((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇))))
13053oveq1d 6811 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑇) + (♯‘𝑆)) − 1) − 𝑥))
131130adantr 466 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) = ((((♯‘𝑇) + (♯‘𝑆)) − 1) − 𝑥))
132101adantr 466 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑆) ∈ ℤ)
133 fzoval 12679 . . . . . . . . . . 11 ((♯‘𝑆) ∈ ℤ → (0..^(♯‘𝑆)) = (0...((♯‘𝑆) − 1)))
134132, 133syl 17 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘𝑆)) = (0...((♯‘𝑆) − 1)))
135122zcnd 11690 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑇) + (♯‘𝑆)) − 1) ∈ ℂ)
136135subidd 10586 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1)) = 0)
137 addcl 10224 . . . . . . . . . . . . . 14 (((♯‘𝑇) ∈ ℂ ∧ (♯‘𝑆) ∈ ℂ) → ((♯‘𝑇) + (♯‘𝑆)) ∈ ℂ)
13812, 10, 137syl2anr 584 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇) + (♯‘𝑆)) ∈ ℂ)
139138, 56, 54sub32d 10630 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇)) = ((((♯‘𝑇) + (♯‘𝑆)) − (♯‘𝑇)) − 1))
140 pncan2 10494 . . . . . . . . . . . . . 14 (((♯‘𝑇) ∈ ℂ ∧ (♯‘𝑆) ∈ ℂ) → (((♯‘𝑇) + (♯‘𝑆)) − (♯‘𝑇)) = (♯‘𝑆))
14112, 10, 140syl2anr 584 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((♯‘𝑇) + (♯‘𝑆)) − (♯‘𝑇)) = (♯‘𝑆))
142141oveq1d 6811 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((((♯‘𝑇) + (♯‘𝑆)) − (♯‘𝑇)) − 1) = ((♯‘𝑆) − 1))
143139, 142eqtrd 2805 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇)) = ((♯‘𝑆) − 1))
144136, 143oveq12d 6814 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1))...((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇))) = (0...((♯‘𝑆) − 1)))
145134, 144eqtr4d 2808 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘𝑆)) = (((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1))...((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇))))
146145adantr 466 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (0..^(♯‘𝑆)) = (((((♯‘𝑇) + (♯‘𝑆)) − 1) − (((♯‘𝑇) + (♯‘𝑆)) − 1))...((((♯‘𝑇) + (♯‘𝑆)) − 1) − (♯‘𝑇))))
147129, 131, 1463eltr4d 2865 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) ∈ (0..^(♯‘𝑆)))
148 ccatval1 13559 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴 ∧ (((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥) ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = (𝑆‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)))
149117, 118, 147, 148syl3anc 1476 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = (𝑆‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)))
15029ad2antlr 706 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (♯‘(reverse‘𝑇)) = (♯‘𝑇))
151150oveq2d 6812 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑥 − (♯‘(reverse‘𝑇))) = (𝑥 − (♯‘𝑇)))
152 id 22 . . . . . . . . 9 (𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) → 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))))
153 fzosubel3 12737 . . . . . . . . 9 ((𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ∧ (♯‘𝑆) ∈ ℤ) → (𝑥 − (♯‘𝑇)) ∈ (0..^(♯‘𝑆)))
154152, 132, 153syl2anr 584 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑥 − (♯‘𝑇)) ∈ (0..^(♯‘𝑆)))
155151, 154eqeltrd 2850 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑥 − (♯‘(reverse‘𝑇))) ∈ (0..^(♯‘𝑆)))
156 revfv 13721 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑥 − (♯‘(reverse‘𝑇))) ∈ (0..^(♯‘𝑆))) → ((reverse‘𝑆)‘(𝑥 − (♯‘(reverse‘𝑇)))) = (𝑆‘(((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇))))))
157117, 155, 156syl2anc 573 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((reverse‘𝑆)‘(𝑥 − (♯‘(reverse‘𝑇)))) = (𝑆‘(((♯‘𝑆) − 1) − (𝑥 − (♯‘(reverse‘𝑇))))))
158116, 149, 1573eqtr4d 2815 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)) = ((reverse‘𝑆)‘(𝑥 − (♯‘(reverse‘𝑇)))))
1591adantr 466 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (𝑆 ++ 𝑇) ∈ Word 𝐴)
16011adantl 467 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (♯‘𝑇) ∈ ℕ0)
161 fzoss1 12703 . . . . . . . . . 10 ((♯‘𝑇) ∈ (ℤ‘0) → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ⊆ (0..^((♯‘𝑇) + (♯‘𝑆))))
162 nn0uz 11929 . . . . . . . . . 10 0 = (ℤ‘0)
163161, 162eleq2s 2868 . . . . . . . . 9 ((♯‘𝑇) ∈ ℕ0 → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ⊆ (0..^((♯‘𝑇) + (♯‘𝑆))))
164160, 163syl 17 . . . . . . . 8 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ⊆ (0..^((♯‘𝑇) + (♯‘𝑆))))
16515oveq2d 6812 . . . . . . . 8 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (0..^(♯‘(𝑆 ++ 𝑇))) = (0..^((♯‘𝑇) + (♯‘𝑆))))
166164, 165sseqtr4d 3791 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))) ⊆ (0..^(♯‘(𝑆 ++ 𝑇))))
167166sselda 3752 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑥 ∈ (0..^(♯‘(𝑆 ++ 𝑇))))
168159, 167, 85syl2anc 573 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = ((𝑆 ++ 𝑇)‘(((♯‘(𝑆 ++ 𝑇)) − 1) − 𝑥)))
16920ad2antlr 706 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (reverse‘𝑇) ∈ Word 𝐴)
17021ad2antrr 705 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (reverse‘𝑆) ∈ Word 𝐴)
17189, 31oveq12d 6814 . . . . . . . 8 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → ((♯‘(reverse‘𝑇))..^((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆)))) = ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))))
172171eleq2d 2836 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (𝑥 ∈ ((♯‘(reverse‘𝑇))..^((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆)))) ↔ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))))
173172biimpar 463 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → 𝑥 ∈ ((♯‘(reverse‘𝑇))..^((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆)))))
174 ccatval2 13560 . . . . . 6 (((reverse‘𝑇) ∈ Word 𝐴 ∧ (reverse‘𝑆) ∈ Word 𝐴𝑥 ∈ ((♯‘(reverse‘𝑇))..^((♯‘(reverse‘𝑇)) + (♯‘(reverse‘𝑆))))) → (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥) = ((reverse‘𝑆)‘(𝑥 − (♯‘(reverse‘𝑇)))))
175169, 170, 173, 174syl3anc 1476 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥) = ((reverse‘𝑆)‘(𝑥 − (♯‘(reverse‘𝑇)))))
176158, 168, 1753eqtr4d 2815 . . . 4 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆)))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥))
17795, 176jaodan 942 . . 3 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ (𝑥 ∈ (0..^(♯‘𝑇)) ∨ 𝑥 ∈ ((♯‘𝑇)..^((♯‘𝑇) + (♯‘𝑆))))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥))
17840, 177syldan 579 . 2 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) ∧ 𝑥 ∈ (0..^((♯‘𝑇) + (♯‘𝑆)))) → ((reverse‘(𝑆 ++ 𝑇))‘𝑥) = (((reverse‘𝑇) ++ (reverse‘𝑆))‘𝑥))
17919, 35, 178eqfnfvd 6459 1 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐴) → (reverse‘(𝑆 ++ 𝑇)) = ((reverse‘𝑇) ++ (reverse‘𝑆)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 382  wo 836   = wceq 1631  wcel 2145  wss 3723   Fn wfn 6025  wf 6026  cfv 6030  (class class class)co 6796  cc 10140  0cc0 10142  1c1 10143   + caddc 10145  cmin 10472  0cn0 11499  cz 11584  cuz 11893  ...cfz 12533  ..^cfzo 12673  chash 13321  Word cword 13487   ++ cconcat 13489  reversecreverse 13493
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1870  ax-4 1885  ax-5 1991  ax-6 2057  ax-7 2093  ax-8 2147  ax-9 2154  ax-10 2174  ax-11 2190  ax-12 2203  ax-13 2408  ax-ext 2751  ax-rep 4905  ax-sep 4916  ax-nul 4924  ax-pow 4975  ax-pr 5035  ax-un 7100  ax-cnex 10198  ax-resscn 10199  ax-1cn 10200  ax-icn 10201  ax-addcl 10202  ax-addrcl 10203  ax-mulcl 10204  ax-mulrcl 10205  ax-mulcom 10206  ax-addass 10207  ax-mulass 10208  ax-distr 10209  ax-i2m1 10210  ax-1ne0 10211  ax-1rid 10212  ax-rnegex 10213  ax-rrecex 10214  ax-cnre 10215  ax-pre-lttri 10216  ax-pre-lttrn 10217  ax-pre-ltadd 10218  ax-pre-mulgt0 10219
This theorem depends on definitions:  df-bi 197  df-an 383  df-or 837  df-3or 1072  df-3an 1073  df-tru 1634  df-ex 1853  df-nf 1858  df-sb 2050  df-eu 2622  df-mo 2623  df-clab 2758  df-cleq 2764  df-clel 2767  df-nfc 2902  df-ne 2944  df-nel 3047  df-ral 3066  df-rex 3067  df-reu 3068  df-rab 3070  df-v 3353  df-sbc 3588  df-csb 3683  df-dif 3726  df-un 3728  df-in 3730  df-ss 3737  df-pss 3739  df-nul 4064  df-if 4227  df-pw 4300  df-sn 4318  df-pr 4320  df-tp 4322  df-op 4324  df-uni 4576  df-int 4613  df-iun 4657  df-br 4788  df-opab 4848  df-mpt 4865  df-tr 4888  df-id 5158  df-eprel 5163  df-po 5171  df-so 5172  df-fr 5209  df-we 5211  df-xp 5256  df-rel 5257  df-cnv 5258  df-co 5259  df-dm 5260  df-rn 5261  df-res 5262  df-ima 5263  df-pred 5822  df-ord 5868  df-on 5869  df-lim 5870  df-suc 5871  df-iota 5993  df-fun 6032  df-fn 6033  df-f 6034  df-f1 6035  df-fo 6036  df-f1o 6037  df-fv 6038  df-riota 6757  df-ov 6799  df-oprab 6800  df-mpt2 6801  df-om 7217  df-1st 7319  df-2nd 7320  df-wrecs 7563  df-recs 7625  df-rdg 7663  df-1o 7717  df-oadd 7721  df-er 7900  df-en 8114  df-dom 8115  df-sdom 8116  df-fin 8117  df-card 8969  df-pnf 10282  df-mnf 10283  df-xr 10284  df-ltxr 10285  df-le 10286  df-sub 10474  df-neg 10475  df-nn 11227  df-n0 11500  df-z 11585  df-uz 11894  df-fz 12534  df-fzo 12674  df-hash 13322  df-word 13495  df-concat 13497  df-reverse 13501
This theorem is referenced by:  gsumwrev  18003  efginvrel2  18347
  Copyright terms: Public domain W3C validator