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

Theorem pfxccatin12d 14159
 Description: The subword of a concatenation of two words within both of the concatenated words. (Contributed by AV, 31-May-2018.) (Revised by AV, 10-May-2020.)
Hypotheses
Ref Expression
swrdccatind.l (𝜑 → (♯‘𝐴) = 𝐿)
swrdccatind.w (𝜑 → (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉))
pfxccatin12d.m (𝜑𝑀 ∈ (0...𝐿))
pfxccatin12d.n (𝜑𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))
Assertion
Ref Expression
pfxccatin12d (𝜑 → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))))

Proof of Theorem pfxccatin12d
StepHypRef Expression
1 swrdccatind.w . . 3 (𝜑 → (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉))
2 pfxccatin12d.m . . . 4 (𝜑𝑀 ∈ (0...𝐿))
3 pfxccatin12d.n . . . 4 (𝜑𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))
4 swrdccatind.l . . . . . . 7 (𝜑 → (♯‘𝐴) = 𝐿)
54oveq2d 7171 . . . . . 6 (𝜑 → (0...(♯‘𝐴)) = (0...𝐿))
65eleq2d 2837 . . . . 5 (𝜑 → (𝑀 ∈ (0...(♯‘𝐴)) ↔ 𝑀 ∈ (0...𝐿)))
74oveq1d 7170 . . . . . . 7 (𝜑 → ((♯‘𝐴) + (♯‘𝐵)) = (𝐿 + (♯‘𝐵)))
84, 7oveq12d 7173 . . . . . 6 (𝜑 → ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) = (𝐿...(𝐿 + (♯‘𝐵))))
98eleq2d 2837 . . . . 5 (𝜑 → (𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) ↔ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))))
106, 9anbi12d 633 . . . 4 (𝜑 → ((𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) ↔ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))))
112, 3, 10mpbir2and 712 . . 3 (𝜑 → (𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))))
12 eqid 2758 . . . 4 (♯‘𝐴) = (♯‘𝐴)
1312pfxccatin12 14147 . . 3 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, (♯‘𝐴)⟩) ++ (𝐵 prefix (𝑁 − (♯‘𝐴))))))
141, 11, 13sylc 65 . 2 (𝜑 → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, (♯‘𝐴)⟩) ++ (𝐵 prefix (𝑁 − (♯‘𝐴)))))
154opeq2d 4773 . . . 4 (𝜑 → ⟨𝑀, (♯‘𝐴)⟩ = ⟨𝑀, 𝐿⟩)
1615oveq2d 7171 . . 3 (𝜑 → (𝐴 substr ⟨𝑀, (♯‘𝐴)⟩) = (𝐴 substr ⟨𝑀, 𝐿⟩))
174oveq2d 7171 . . . 4 (𝜑 → (𝑁 − (♯‘𝐴)) = (𝑁𝐿))
1817oveq2d 7171 . . 3 (𝜑 → (𝐵 prefix (𝑁 − (♯‘𝐴))) = (𝐵 prefix (𝑁𝐿)))
1916, 18oveq12d 7173 . 2 (𝜑 → ((𝐴 substr ⟨𝑀, (♯‘𝐴)⟩) ++ (𝐵 prefix (𝑁 − (♯‘𝐴)))) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))))
2014, 19eqtrd 2793 1 (𝜑 → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))))
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ∧ wa 399   = wceq 1538   ∈ wcel 2111  ⟨cop 4531  ‘cfv 6339  (class class class)co 7155  0cc0 10580   + caddc 10583   − cmin 10913  ...cfz 12944  ♯chash 13745  Word cword 13918   ++ cconcat 13974   substr csubstr 14054   prefix cpfx 14084 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 1911  ax-6 1970  ax-7 2015  ax-8 2113  ax-9 2121  ax-10 2142  ax-11 2158  ax-12 2175  ax-ext 2729  ax-rep 5159  ax-sep 5172  ax-nul 5179  ax-pow 5237  ax-pr 5301  ax-un 7464  ax-cnex 10636  ax-resscn 10637  ax-1cn 10638  ax-icn 10639  ax-addcl 10640  ax-addrcl 10641  ax-mulcl 10642  ax-mulrcl 10643  ax-mulcom 10644  ax-addass 10645  ax-mulass 10646  ax-distr 10647  ax-i2m1 10648  ax-1ne0 10649  ax-1rid 10650  ax-rnegex 10651  ax-rrecex 10652  ax-cnre 10653  ax-pre-lttri 10654  ax-pre-lttrn 10655  ax-pre-ltadd 10656  ax-pre-mulgt0 10657 This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3or 1085  df-3an 1086  df-tru 1541  df-fal 1551  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2557  df-eu 2588  df-clab 2736  df-cleq 2750  df-clel 2830  df-nfc 2901  df-ne 2952  df-nel 3056  df-ral 3075  df-rex 3076  df-reu 3077  df-rab 3079  df-v 3411  df-sbc 3699  df-csb 3808  df-dif 3863  df-un 3865  df-in 3867  df-ss 3877  df-pss 3879  df-nul 4228  df-if 4424  df-pw 4499  df-sn 4526  df-pr 4528  df-tp 4530  df-op 4532  df-uni 4802  df-int 4842  df-iun 4888  df-br 5036  df-opab 5098  df-mpt 5116  df-tr 5142  df-id 5433  df-eprel 5438  df-po 5446  df-so 5447  df-fr 5486  df-we 5488  df-xp 5533  df-rel 5534  df-cnv 5535  df-co 5536  df-dm 5537  df-rn 5538  df-res 5539  df-ima 5540  df-pred 6130  df-ord 6176  df-on 6177  df-lim 6178  df-suc 6179  df-iota 6298  df-fun 6341  df-fn 6342  df-f 6343  df-f1 6344  df-fo 6345  df-f1o 6346  df-fv 6347  df-riota 7113  df-ov 7158  df-oprab 7159  df-mpo 7160  df-om 7585  df-1st 7698  df-2nd 7699  df-wrecs 7962  df-recs 8023  df-rdg 8061  df-1o 8117  df-er 8304  df-en 8533  df-dom 8534  df-sdom 8535  df-fin 8536  df-card 9406  df-pnf 10720  df-mnf 10721  df-xr 10722  df-ltxr 10723  df-le 10724  df-sub 10915  df-neg 10916  df-nn 11680  df-n0 11940  df-z 12026  df-uz 12288  df-fz 12945  df-fzo 13088  df-hash 13746  df-word 13919  df-concat 13975  df-substr 14055  df-pfx 14085 This theorem is referenced by: (None)
 Copyright terms: Public domain W3C validator