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 35330
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 13563 . . . . . 6 (𝐹 ∈ (0...𝐿) → (𝐿𝐹) ∈ (0...𝐿))
2 pfxcl 14613 . . . . . . . . 9 (𝑊 ∈ Word 𝑉 → (𝑊 prefix 𝐿) ∈ Word 𝑉)
3 revcl 14696 . . . . . . . . 9 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
42, 3syl 17 . . . . . . . 8 (𝑊 ∈ Word 𝑉 → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
543ad2ant1 1134 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉)
6 simp3 1139 . . . . . . . 8 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (𝐿𝐹) ∈ (0...𝐿))
7 revlen 14697 . . . . . . . . . . . . 13 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
82, 7syl 17 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
98adantr 480 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = (♯‘(𝑊 prefix 𝐿)))
10 pfxlen 14619 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(𝑊 prefix 𝐿)) = 𝐿)
119, 10eqtrd 2772 . . . . . . . . . 10 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
12113adant3 1133 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
1312oveq2d 7384 . . . . . . . 8 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (0...(♯‘(reverse‘(𝑊 prefix 𝐿)))) = (0...𝐿))
146, 13eleqtrrd 2840 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿)))))
155, 14jca 511 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ (𝐿𝐹) ∈ (0...𝐿)) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
161, 15syl3an3 1166 . . . . 5 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊)) ∧ 𝐹 ∈ (0...𝐿)) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
17163com23 1127 . . . 4 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((reverse‘(𝑊 prefix 𝐿)) ∈ Word 𝑉 ∧ (𝐿𝐹) ∈ (0...(♯‘(reverse‘(𝑊 prefix 𝐿))))))
18 revpfxsfxrev 35329 . . . 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 14702 . . . . . 6 ((𝑊 prefix 𝐿) ∈ Word 𝑉 → (reverse‘(reverse‘(𝑊 prefix 𝐿))) = (𝑊 prefix 𝐿))
212, 20syl 17 . . . . 5 (𝑊 ∈ Word 𝑉 → (reverse‘(reverse‘(𝑊 prefix 𝐿))) = (𝑊 prefix 𝐿))
2221oveq1d 7383 . . . 4 (𝑊 ∈ Word 𝑉 → ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
23223ad2ant1 1134 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((reverse‘(reverse‘(𝑊 prefix 𝐿))) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩))
2411oveq1d 7383 . . . . . . 7 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = (𝐿 − (𝐿𝐹)))
25243adant2 1132 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = (𝐿 − (𝐿𝐹)))
26 elfzel2 13450 . . . . . . . . 9 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ ℤ)
2726zcnd 12609 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ ℂ)
28 elfzelz 13452 . . . . . . . . 9 (𝐹 ∈ (0...𝐿) → 𝐹 ∈ ℤ)
2928zcnd 12609 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐹 ∈ ℂ)
3027, 29nncand 11509 . . . . . . 7 (𝐹 ∈ (0...𝐿) → (𝐿 − (𝐿𝐹)) = 𝐹)
31303ad2ant2 1135 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝐿 − (𝐿𝐹)) = 𝐹)
3225, 31eqtrd 2772 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)) = 𝐹)
33113adant2 1132 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (♯‘(reverse‘(𝑊 prefix 𝐿))) = 𝐿)
3432, 33opeq12d 4839 . . . 4 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩ = ⟨𝐹, 𝐿⟩)
3534oveq2d 7384 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨((♯‘(reverse‘(𝑊 prefix 𝐿))) − (𝐿𝐹)), (♯‘(reverse‘(𝑊 prefix 𝐿)))⟩) = ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩))
3619, 23, 353eqtrd 2776 . 2 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))) = ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩))
37 elfzuz3 13449 . . . . . . . 8 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ (ℤ𝐹))
38 eluzfz2 13460 . . . . . . . 8 (𝐿 ∈ (ℤ𝐹) → 𝐿 ∈ (𝐹...𝐿))
3937, 38syl 17 . . . . . . 7 (𝐹 ∈ (0...𝐿) → 𝐿 ∈ (𝐹...𝐿))
4039ancli 548 . . . . . 6 (𝐹 ∈ (0...𝐿) → (𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)))
41403ad2ant2 1135 . . . . 5 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)))
42 swrdpfx 14642 . . . . 5 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (𝐹...𝐿)) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
4341, 42syl5 34 . . . 4 ((𝑊 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
44433adant2 1132 . . 3 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩)))
4544pm2.43i 52 . 2 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → ((𝑊 prefix 𝐿) substr ⟨𝐹, 𝐿⟩) = (𝑊 substr ⟨𝐹, 𝐿⟩))
4636, 45eqtr2d 2773 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑊))) → (𝑊 substr ⟨𝐹, 𝐿⟩) = (reverse‘((reverse‘(𝑊 prefix 𝐿)) prefix (𝐿𝐹))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  w3a 1087   = wceq 1542  wcel 2114  cop 4588  cfv 6500  (class class class)co 7368  0cc0 11038  cmin 11376  cuz 12763  ...cfz 13435  chash 14265  Word cword 14448   substr csubstr 14576   prefix cpfx 14606  reversecreverse 14693
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2185  ax-ext 2709  ax-rep 5226  ax-sep 5243  ax-nul 5253  ax-pow 5312  ax-pr 5379  ax-un 7690  ax-cnex 11094  ax-resscn 11095  ax-1cn 11096  ax-icn 11097  ax-addcl 11098  ax-addrcl 11099  ax-mulcl 11100  ax-mulrcl 11101  ax-mulcom 11102  ax-addass 11103  ax-mulass 11104  ax-distr 11105  ax-i2m1 11106  ax-1ne0 11107  ax-1rid 11108  ax-rnegex 11109  ax-rrecex 11110  ax-cnre 11111  ax-pre-lttri 11112  ax-pre-lttrn 11113  ax-pre-ltadd 11114  ax-pre-mulgt0 11115
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2540  df-eu 2570  df-clab 2716  df-cleq 2729  df-clel 2812  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3063  df-reu 3353  df-rab 3402  df-v 3444  df-sbc 3743  df-csb 3852  df-dif 3906  df-un 3908  df-in 3910  df-ss 3920  df-pss 3923  df-nul 4288  df-if 4482  df-pw 4558  df-sn 4583  df-pr 4585  df-op 4589  df-uni 4866  df-int 4905  df-iun 4950  df-br 5101  df-opab 5163  df-mpt 5182  df-tr 5208  df-id 5527  df-eprel 5532  df-po 5540  df-so 5541  df-fr 5585  df-we 5587  df-xp 5638  df-rel 5639  df-cnv 5640  df-co 5641  df-dm 5642  df-rn 5643  df-res 5644  df-ima 5645  df-pred 6267  df-ord 6328  df-on 6329  df-lim 6330  df-suc 6331  df-iota 6456  df-fun 6502  df-fn 6503  df-f 6504  df-f1 6505  df-fo 6506  df-f1o 6507  df-fv 6508  df-riota 7325  df-ov 7371  df-oprab 7372  df-mpo 7373  df-om 7819  df-1st 7943  df-2nd 7944  df-frecs 8233  df-wrecs 8264  df-recs 8313  df-rdg 8351  df-1o 8407  df-er 8645  df-en 8896  df-dom 8897  df-sdom 8898  df-fin 8899  df-card 9863  df-pnf 11180  df-mnf 11181  df-xr 11182  df-ltxr 11183  df-le 11184  df-sub 11378  df-neg 11379  df-nn 12158  df-n0 12414  df-z 12501  df-uz 12764  df-fz 13436  df-fzo 13583  df-hash 14266  df-word 14449  df-substr 14577  df-pfx 14607  df-reverse 14694
This theorem is referenced by:  swrdwlk  35340
  Copyright terms: Public domain W3C validator