Users' Mathboxes Mathbox for BTernaryTau < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  swrdrevpfx Structured version   Visualization version   GIF version

Theorem swrdrevpfx 35352
Description: A subword expressed in terms of reverses and prefixes. (Contributed by BTernaryTau, 3-Dec-2023.)
Assertion
Ref Expression
swrdrevpfx ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝑊 substr ⟨𝐹, 𝐿⟩) = (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))))

Proof of Theorem swrdrevpfx
StepHypRef Expression
1 fznn0sub2 13587 . . . . . 6 (𝐹 ∈ (0...𝐿) → (𝐿𝐹) ∈ (0...𝐿))
2 pfxcl 14638 . . . . . . . . 9 (𝑊 ∈ Word 𝑉 → (𝑊 prefix 𝐿) ∈ Word 𝑉)
3 revcl 14721 . . . . . . . . 9 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
42, 3syl 17 . . . . . . . 8 (𝑊 ∈ Word 𝑉 → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
543ad2ant1 1139 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
6 simp3 1144 . . . . . . . 8 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (𝐿𝐹) ∈ (0...𝐿))
7 revlen 14722 . . . . . . . . . . . . 13 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
82, 7syl 17 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
98adantr 481 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
10 pfxlen 14644 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(𝑊 prefix 𝐿)) = 𝐿)
119, 10eqtrd 2775 . . . . . . . . . 10 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
12113adant3 1138 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
1312oveq2d 7379 . . . . . . . 8 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (0...(♯‘(reverse‘(𝑊 prefix 𝐿)))) = (0...𝐿))
146, 13eleqtrrd 2843 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿)))))
155, 14jca 516 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
161, 15syl3an3 1171 . . . . 5 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ 𝐹 ∈ (0...𝐿)) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
17163com23 1132 . . . 4 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
18 revpfxsfxrev 35351 . . . 4 (((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))) → (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))) = ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
1917, 18syl 17 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))) = ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
20 revrev 14727 . . . . . 6 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (reverse‘(reverse‘(𝑊 prefix 𝐿))) = (𝑊 prefix 𝐿))
212, 20syl 17 . . . . 5 (𝑊 ∈ Word 𝑉 → (reverse‘(reverse‘(𝑊 prefix 𝐿))) = (𝑊 prefix 𝐿))
2221oveq1d 7378 . . . 4 (𝑊 ∈ Word 𝑉 → ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
23223ad2ant1 1139 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
2411oveq1d 7378 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = (𝐿 − (𝐿𝐹)))
25243adant2 1137 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = (𝐿 − (𝐿𝐹)))
26 elfzel2 13474 . . . . . . . . 9 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ ℤ)
2726zcnd 12632 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ ℂ)
28 elfzelz 13476 . . . . . . . . 9 (𝐹 ∈ (0...𝐿) → 𝐹 ∈ ℤ)
2928zcnd 12632 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐹 ∈ ℂ)
3027, 29nncand 11508 . . . . . . 7 (𝐹 ∈ (0...𝐿) → (𝐿 − (𝐿𝐹)) = 𝐹)
31303ad2ant2 1140 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝐿 − (𝐿𝐹)) = 𝐹)
3225, 31eqtrd 2775 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = 𝐹)
33113adant2 1137 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
3432, 33opeq12d 4819 . . . 4 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩ = ⟨𝐹, 𝐿⟩)
3534oveq2d 7379 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩))
3619, 23, 353eqtrd 2779 . 2 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))) = ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩))
37 elfzuz3 13473 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ (ℤ𝐹))
38 eluzfz2 13484 . . . . . . . 8 (𝐿 ∈ (ℤ𝐹) → 𝐿 ∈ (𝐹...𝐿))
3937, 38syl 17 . . . . . . 7 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ (𝐹...𝐿))
4039ancli 553 . . . . . 6 (𝐹 ∈ (0...𝐿) → (𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)))
41403ad2ant2 1140 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)))
42 swrdpfx 14667 . . . . 5 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
4341, 42syl5 34 . . . 4 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
44433adant2 1137 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
4544pm2.43i 52 . 2 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩))
4636, 45eqtr2d 2776 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝑊 substr ⟨𝐹, 𝐿⟩) = (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 396  w3a 1092   = wceq 1547  wcel 2119  cop 4568  cfv 6492  (class class class)co 7363  0cc0 11036  cmin 11375  cuz 12786  ...cfz 13459  chash 14290  Word cword 14473   substr csubstr 14601   prefix cpfx 14631  reversecreverse 14718
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1802  ax-4 1816  ax-5 1917  ax-6 1974  ax-7 2015  ax-8 2121  ax-9 2129  ax-10 2152  ax-11 2168  ax-12 2189  ax-ext 2712  ax-rep 5206  ax-sep 5225  ax-nul 5235  ax-pow 5301  ax-pr 5369  ax-un 7685  ax-cnex 11092  ax-resscn 11093  ax-1cn 11094  ax-icn 11095  ax-addcl 11096  ax-addrcl 11097  ax-mulcl 11098  ax-mulrcl 11099  ax-mulcom 11100  ax-addass 11101  ax-mulass 11102  ax-distr 11103  ax-i2m1 11104  ax-1ne0 11105  ax-1rid 11106  ax-rnegex 11107  ax-rrecex 11108  ax-cnre 11109  ax-pre-lttri 11110  ax-pre-lttrn 11111  ax-pre-ltadd 11112  ax-pre-mulgt0 11113
This theorem depends on definitions:  df-bi 208  df-an 397  df-or 854  df-3or 1093  df-3an 1094  df-tru 1550  df-fal 1560  df-ex 1787  df-nf 1791  df-sb 2074  df-mo 2543  df-eu 2573  df-clab 2719  df-cleq 2732  df-clel 2815  df-nfc 2889  df-ne 2936  df-nel 3040  df-ral 3055  df-rex 3065  df-reu 3346  df-rab 3393  df-v 3434  df-sbc 3731  df-csb 3839  df-dif 3893  df-un 3895  df-in 3897  df-ss 3907  df-pss 3910  df-nul 4269  df-if 4462  df-pw 4538  df-sn 4563  df-pr 4565  df-op 4569  df-uni 4846  df-int 4885  df-iun 4930  df-br 5080  df-opab 5142  df-mpt 5161  df-tr 5187  df-id 5520  df-eprel 5525  df-po 5533  df-so 5534  df-fr 5578  df-we 5580  df-xp 5631  df-rel 5632  df-cnv 5633  df-co 5634  df-dm 5635  df-rn 5636  df-res 5637  df-ima 5638  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 7320  df-ov 7366  df-oprab 7367  df-mpo 7368  df-om 7814  df-1st 7938  df-2nd 7939  df-frecs 8228  df-wrecs 8259  df-recs 8308  df-rdg 8346  df-1o 8402  df-er 8640  df-en 8891  df-dom 8892  df-sdom 8893  df-fin 8894  df-card 9861  df-pnf 11179  df-mnf 11180  df-xr 11181  df-ltxr 11182  df-le 11183  df-sub 11377  df-neg 11378  df-nn 12173  df-n0 12436  df-z 12523  df-uz 12787  df-fz 13460  df-fzo 13607  df-hash 14291  df-word 14474  df-substr 14602  df-pfx 14632  df-reverse 14719
This theorem is referenced by:  swrdwlk  35362
  Copyright terms: Public domain W3C validator