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

Theorem splfv2a 14111
 Description: Symbols within the replacement region of a splice, expressed using the coordinates of the replacement region. (Contributed by Stefan O'Rear, 23-Aug-2015.) (Proof shortened by AV, 15-Oct-2022.)
Hypotheses
Ref Expression
spllen.s (𝜑𝑆 ∈ Word 𝐴)
spllen.f (𝜑𝐹 ∈ (0...𝑇))
spllen.t (𝜑𝑇 ∈ (0...(♯‘𝑆)))
spllen.r (𝜑𝑅 ∈ Word 𝐴)
splfv2a.x (𝜑𝑋 ∈ (0..^(♯‘𝑅)))
Assertion
Ref Expression
splfv2a (𝜑 → ((𝑆 splice ⟨𝐹, 𝑇, 𝑅⟩)‘(𝐹 + 𝑋)) = (𝑅𝑋))

Proof of Theorem splfv2a
StepHypRef Expression
1 spllen.s . . . 4 (𝜑𝑆 ∈ Word 𝐴)
2 spllen.f . . . 4 (𝜑𝐹 ∈ (0...𝑇))
3 spllen.t . . . 4 (𝜑𝑇 ∈ (0...(♯‘𝑆)))
4 spllen.r . . . 4 (𝜑𝑅 ∈ Word 𝐴)
5 splval 14106 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝐹 ∈ (0...𝑇) ∧ 𝑇 ∈ (0...(♯‘𝑆)) ∧ 𝑅 ∈ Word 𝐴)) → (𝑆 splice ⟨𝐹, 𝑇, 𝑅⟩) = (((𝑆 prefix 𝐹) ++ 𝑅) ++ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩)))
61, 2, 3, 4, 5syl13anc 1369 . . 3 (𝜑 → (𝑆 splice ⟨𝐹, 𝑇, 𝑅⟩) = (((𝑆 prefix 𝐹) ++ 𝑅) ++ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩)))
7 elfznn0 12997 . . . . . . 7 (𝐹 ∈ (0...𝑇) → 𝐹 ∈ ℕ0)
82, 7syl 17 . . . . . 6 (𝜑𝐹 ∈ ℕ0)
98nn0cnd 11947 . . . . 5 (𝜑𝐹 ∈ ℂ)
10 splfv2a.x . . . . . . 7 (𝜑𝑋 ∈ (0..^(♯‘𝑅)))
11 elfzonn0 13079 . . . . . . 7 (𝑋 ∈ (0..^(♯‘𝑅)) → 𝑋 ∈ ℕ0)
1210, 11syl 17 . . . . . 6 (𝜑𝑋 ∈ ℕ0)
1312nn0cnd 11947 . . . . 5 (𝜑𝑋 ∈ ℂ)
149, 13addcomd 10833 . . . 4 (𝜑 → (𝐹 + 𝑋) = (𝑋 + 𝐹))
15 nn0uz 12270 . . . . . . . 8 0 = (ℤ‘0)
168, 15eleqtrdi 2900 . . . . . . 7 (𝜑𝐹 ∈ (ℤ‘0))
17 elfzuz3 12901 . . . . . . . . 9 (𝑇 ∈ (0...(♯‘𝑆)) → (♯‘𝑆) ∈ (ℤ𝑇))
183, 17syl 17 . . . . . . . 8 (𝜑 → (♯‘𝑆) ∈ (ℤ𝑇))
19 elfzuz3 12901 . . . . . . . . 9 (𝐹 ∈ (0...𝑇) → 𝑇 ∈ (ℤ𝐹))
202, 19syl 17 . . . . . . . 8 (𝜑𝑇 ∈ (ℤ𝐹))
21 uztrn 12251 . . . . . . . 8 (((♯‘𝑆) ∈ (ℤ𝑇) ∧ 𝑇 ∈ (ℤ𝐹)) → (♯‘𝑆) ∈ (ℤ𝐹))
2218, 20, 21syl2anc 587 . . . . . . 7 (𝜑 → (♯‘𝑆) ∈ (ℤ𝐹))
23 elfzuzb 12898 . . . . . . 7 (𝐹 ∈ (0...(♯‘𝑆)) ↔ (𝐹 ∈ (ℤ‘0) ∧ (♯‘𝑆) ∈ (ℤ𝐹)))
2416, 22, 23sylanbrc 586 . . . . . 6 (𝜑𝐹 ∈ (0...(♯‘𝑆)))
25 pfxlen 14038 . . . . . 6 ((𝑆 ∈ Word 𝐴𝐹 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 prefix 𝐹)) = 𝐹)
261, 24, 25syl2anc 587 . . . . 5 (𝜑 → (♯‘(𝑆 prefix 𝐹)) = 𝐹)
2726oveq2d 7151 . . . 4 (𝜑 → (𝑋 + (♯‘(𝑆 prefix 𝐹))) = (𝑋 + 𝐹))
2814, 27eqtr4d 2836 . . 3 (𝜑 → (𝐹 + 𝑋) = (𝑋 + (♯‘(𝑆 prefix 𝐹))))
296, 28fveq12d 6652 . 2 (𝜑 → ((𝑆 splice ⟨𝐹, 𝑇, 𝑅⟩)‘(𝐹 + 𝑋)) = ((((𝑆 prefix 𝐹) ++ 𝑅) ++ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩))‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))))
30 pfxcl 14032 . . . . 5 (𝑆 ∈ Word 𝐴 → (𝑆 prefix 𝐹) ∈ Word 𝐴)
311, 30syl 17 . . . 4 (𝜑 → (𝑆 prefix 𝐹) ∈ Word 𝐴)
32 ccatcl 13919 . . . 4 (((𝑆 prefix 𝐹) ∈ Word 𝐴𝑅 ∈ Word 𝐴) → ((𝑆 prefix 𝐹) ++ 𝑅) ∈ Word 𝐴)
3331, 4, 32syl2anc 587 . . 3 (𝜑 → ((𝑆 prefix 𝐹) ++ 𝑅) ∈ Word 𝐴)
34 swrdcl 14000 . . . 4 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩) ∈ Word 𝐴)
351, 34syl 17 . . 3 (𝜑 → (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩) ∈ Word 𝐴)
36 0nn0 11902 . . . . . . . 8 0 ∈ ℕ0
37 nn0addcl 11922 . . . . . . . 8 ((0 ∈ ℕ0𝐹 ∈ ℕ0) → (0 + 𝐹) ∈ ℕ0)
3836, 8, 37sylancr 590 . . . . . . 7 (𝜑 → (0 + 𝐹) ∈ ℕ0)
39 fzoss1 13061 . . . . . . . 8 ((0 + 𝐹) ∈ (ℤ‘0) → ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)) ⊆ (0..^((♯‘𝑅) + 𝐹)))
4039, 15eleq2s 2908 . . . . . . 7 ((0 + 𝐹) ∈ ℕ0 → ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)) ⊆ (0..^((♯‘𝑅) + 𝐹)))
4138, 40syl 17 . . . . . 6 (𝜑 → ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)) ⊆ (0..^((♯‘𝑅) + 𝐹)))
42 ccatlen 13920 . . . . . . . . 9 (((𝑆 prefix 𝐹) ∈ Word 𝐴𝑅 ∈ Word 𝐴) → (♯‘((𝑆 prefix 𝐹) ++ 𝑅)) = ((♯‘(𝑆 prefix 𝐹)) + (♯‘𝑅)))
4331, 4, 42syl2anc 587 . . . . . . . 8 (𝜑 → (♯‘((𝑆 prefix 𝐹) ++ 𝑅)) = ((♯‘(𝑆 prefix 𝐹)) + (♯‘𝑅)))
4426oveq1d 7150 . . . . . . . 8 (𝜑 → ((♯‘(𝑆 prefix 𝐹)) + (♯‘𝑅)) = (𝐹 + (♯‘𝑅)))
45 lencl 13878 . . . . . . . . . . 11 (𝑅 ∈ Word 𝐴 → (♯‘𝑅) ∈ ℕ0)
464, 45syl 17 . . . . . . . . . 10 (𝜑 → (♯‘𝑅) ∈ ℕ0)
4746nn0cnd 11947 . . . . . . . . 9 (𝜑 → (♯‘𝑅) ∈ ℂ)
489, 47addcomd 10833 . . . . . . . 8 (𝜑 → (𝐹 + (♯‘𝑅)) = ((♯‘𝑅) + 𝐹))
4943, 44, 483eqtrd 2837 . . . . . . 7 (𝜑 → (♯‘((𝑆 prefix 𝐹) ++ 𝑅)) = ((♯‘𝑅) + 𝐹))
5049oveq2d 7151 . . . . . 6 (𝜑 → (0..^(♯‘((𝑆 prefix 𝐹) ++ 𝑅))) = (0..^((♯‘𝑅) + 𝐹)))
5141, 50sseqtrrd 3956 . . . . 5 (𝜑 → ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)) ⊆ (0..^(♯‘((𝑆 prefix 𝐹) ++ 𝑅))))
528nn0zd 12075 . . . . . 6 (𝜑𝐹 ∈ ℤ)
53 fzoaddel 13087 . . . . . 6 ((𝑋 ∈ (0..^(♯‘𝑅)) ∧ 𝐹 ∈ ℤ) → (𝑋 + 𝐹) ∈ ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)))
5410, 52, 53syl2anc 587 . . . . 5 (𝜑 → (𝑋 + 𝐹) ∈ ((0 + 𝐹)..^((♯‘𝑅) + 𝐹)))
5551, 54sseldd 3916 . . . 4 (𝜑 → (𝑋 + 𝐹) ∈ (0..^(♯‘((𝑆 prefix 𝐹) ++ 𝑅))))
5627, 55eqeltrd 2890 . . 3 (𝜑 → (𝑋 + (♯‘(𝑆 prefix 𝐹))) ∈ (0..^(♯‘((𝑆 prefix 𝐹) ++ 𝑅))))
57 ccatval1 13923 . . 3 ((((𝑆 prefix 𝐹) ++ 𝑅) ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩) ∈ Word 𝐴 ∧ (𝑋 + (♯‘(𝑆 prefix 𝐹))) ∈ (0..^(♯‘((𝑆 prefix 𝐹) ++ 𝑅)))) → ((((𝑆 prefix 𝐹) ++ 𝑅) ++ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩))‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))) = (((𝑆 prefix 𝐹) ++ 𝑅)‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))))
5833, 35, 56, 57syl3anc 1368 . 2 (𝜑 → ((((𝑆 prefix 𝐹) ++ 𝑅) ++ (𝑆 substr ⟨𝑇, (♯‘𝑆)⟩))‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))) = (((𝑆 prefix 𝐹) ++ 𝑅)‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))))
59 ccatval3 13926 . . 3 (((𝑆 prefix 𝐹) ∈ Word 𝐴𝑅 ∈ Word 𝐴𝑋 ∈ (0..^(♯‘𝑅))) → (((𝑆 prefix 𝐹) ++ 𝑅)‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))) = (𝑅𝑋))
6031, 4, 10, 59syl3anc 1368 . 2 (𝜑 → (((𝑆 prefix 𝐹) ++ 𝑅)‘(𝑋 + (♯‘(𝑆 prefix 𝐹)))) = (𝑅𝑋))
6129, 58, 603eqtrd 2837 1 (𝜑 → ((𝑆 splice ⟨𝐹, 𝑇, 𝑅⟩)‘(𝐹 + 𝑋)) = (𝑅𝑋))
 Colors of variables: wff setvar class Syntax hints:   → wi 4   = wceq 1538   ∈ wcel 2111   ⊆ wss 3881  ⟨cop 4531  ⟨cotp 4533  ‘cfv 6324  (class class class)co 7135  0cc0 10528   + caddc 10531  ℕ0cn0 11887  ℤcz 11971  ℤ≥cuz 12233  ...cfz 12887  ..^cfzo 13030  ♯chash 13688  Word cword 13859   ++ cconcat 13915   substr csubstr 13995   prefix cpfx 14025   splice csplice 14104 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 2770  ax-rep 5154  ax-sep 5167  ax-nul 5174  ax-pow 5231  ax-pr 5295  ax-un 7443  ax-cnex 10584  ax-resscn 10585  ax-1cn 10586  ax-icn 10587  ax-addcl 10588  ax-addrcl 10589  ax-mulcl 10590  ax-mulrcl 10591  ax-mulcom 10592  ax-addass 10593  ax-mulass 10594  ax-distr 10595  ax-i2m1 10596  ax-1ne0 10597  ax-1rid 10598  ax-rnegex 10599  ax-rrecex 10600  ax-cnre 10601  ax-pre-lttri 10602  ax-pre-lttrn 10603  ax-pre-ltadd 10604  ax-pre-mulgt0 10605 This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3or 1085  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2598  df-eu 2629  df-clab 2777  df-cleq 2791  df-clel 2870  df-nfc 2938  df-ne 2988  df-nel 3092  df-ral 3111  df-rex 3112  df-reu 3113  df-rab 3115  df-v 3443  df-sbc 3721  df-csb 3829  df-dif 3884  df-un 3886  df-in 3888  df-ss 3898  df-pss 3900  df-nul 4244  df-if 4426  df-pw 4499  df-sn 4526  df-pr 4528  df-tp 4530  df-op 4532  df-ot 4534  df-uni 4801  df-int 4839  df-iun 4883  df-br 5031  df-opab 5093  df-mpt 5111  df-tr 5137  df-id 5425  df-eprel 5430  df-po 5438  df-so 5439  df-fr 5478  df-we 5480  df-xp 5525  df-rel 5526  df-cnv 5527  df-co 5528  df-dm 5529  df-rn 5530  df-res 5531  df-ima 5532  df-pred 6116  df-ord 6162  df-on 6163  df-lim 6164  df-suc 6165  df-iota 6283  df-fun 6326  df-fn 6327  df-f 6328  df-f1 6329  df-fo 6330  df-f1o 6331  df-fv 6332  df-riota 7093  df-ov 7138  df-oprab 7139  df-mpo 7140  df-om 7563  df-1st 7673  df-2nd 7674  df-wrecs 7932  df-recs 7993  df-rdg 8031  df-1o 8087  df-oadd 8091  df-er 8274  df-en 8495  df-dom 8496  df-sdom 8497  df-fin 8498  df-card 9354  df-pnf 10668  df-mnf 10669  df-xr 10670  df-ltxr 10671  df-le 10672  df-sub 10863  df-neg 10864  df-nn 11628  df-n0 11888  df-z 11972  df-uz 12234  df-fz 12888  df-fzo 13031  df-hash 13689  df-word 13860  df-concat 13916  df-substr 13996  df-pfx 14026  df-splice 14105 This theorem is referenced by:  psgnunilem2  18618
 Copyright terms: Public domain W3C validator