ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  ccatpfx GIF version

Theorem ccatpfx 11495
Description: Concatenating a prefix with an adjacent subword makes a longer prefix. (Contributed by AV, 7-May-2020.)
Assertion
Ref Expression
ccatpfx ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑆 prefix 𝑍))

Proof of Theorem ccatpfx
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 elfznn0 10538 . . . . . . . 8 (𝑌 ∈ (0...𝑍) → 𝑌 ∈ ℕ0)
21ad2antrl 494 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ ℕ0)
3 pfxclg 11472 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ ℕ0) → (𝑆 prefix 𝑌) ∈ Word 𝐴)
42, 3syldan 282 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑆 prefix 𝑌) ∈ Word 𝐴)
5 simpl 109 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑆 ∈ Word 𝐴)
62nn0zd 9777 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ ℤ)
7 elfzelz 10445 . . . . . . . . 9 (𝑍 ∈ (0...(♯‘𝑆)) → 𝑍 ∈ ℤ)
87adantl 277 . . . . . . . 8 ((𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → 𝑍 ∈ ℤ)
98adantl 277 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑍 ∈ ℤ)
10 swrdclg 11444 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ ℤ ∧ 𝑍 ∈ ℤ) → (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴)
115, 6, 9, 10syl3anc 1278 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴)
12 ccatcl 11383 . . . . . 6 (((𝑆 prefix 𝑌) ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) ∈ Word 𝐴)
134, 11, 12syl2anc 415 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) ∈ Word 𝐴)
14 wrdfn 11341 . . . . 5 (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) ∈ Word 𝐴 → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) Fn (0..^(♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)))))
1513, 14syl 14 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) Fn (0..^(♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)))))
16 ccatlen 11385 . . . . . . . 8 (((𝑆 prefix 𝑌) ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴) → (♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))) = ((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩))))
174, 11, 16syl2anc 415 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))) = ((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩))))
18 fzass4 10485 . . . . . . . . . . 11 ((𝑌 ∈ (0...(♯‘𝑆)) ∧ 𝑍 ∈ (𝑌...(♯‘𝑆))) ↔ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))))
1918biimpri 133 . . . . . . . . . 10 ((𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → (𝑌 ∈ (0...(♯‘𝑆)) ∧ 𝑍 ∈ (𝑌...(♯‘𝑆))))
2019simpld 112 . . . . . . . . 9 ((𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → 𝑌 ∈ (0...(♯‘𝑆)))
21 pfxlen 11479 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 prefix 𝑌)) = 𝑌)
2220, 21sylan2 286 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (♯‘(𝑆 prefix 𝑌)) = 𝑌)
23 swrdlen 11446 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑍 − 𝑌))
24233expb 1235 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑍 − 𝑌))
2522, 24oveq12d 6106 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩))) = (𝑌 + (𝑍 − 𝑌)))
26 elfzelz 10445 . . . . . . . . . 10 (𝑌 ∈ (0...𝑍) → 𝑌 ∈ ℤ)
2726zcnd 9780 . . . . . . . . 9 (𝑌 ∈ (0...𝑍) → 𝑌 ∈ ℂ)
287zcnd 9780 . . . . . . . . 9 (𝑍 ∈ (0...(♯‘𝑆)) → 𝑍 ∈ ℂ)
29 pncan3 8541 . . . . . . . . 9 ((𝑌 ∈ ℂ ∧ 𝑍 ∈ ℂ) → (𝑌 + (𝑍 − 𝑌)) = 𝑍)
3027, 28, 29syl2an 289 . . . . . . . 8 ((𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → (𝑌 + (𝑍 − 𝑌)) = 𝑍)
3130adantl 277 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑌 + (𝑍 − 𝑌)) = 𝑍)
3217, 25, 313eqtrd 2275 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))) = 𝑍)
3332oveq2d 6104 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (0..^(♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)))) = (0..^𝑍))
3433fneq2d 5475 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) Fn (0..^(♯‘((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)))) ↔ ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) Fn (0..^𝑍)))
3515, 34mpbid 147 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) Fn (0..^𝑍))
36 pfxfn 11477 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ 𝑍 ∈ (0...(♯‘𝑆))) → (𝑆 prefix 𝑍) Fn (0..^𝑍))
3736adantrl 482 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑆 prefix 𝑍) Fn (0..^𝑍))
38 id 19 . . . . . 6 (𝑥 ∈ (0..^𝑍) → 𝑥 ∈ (0..^𝑍))
3926ad2antrl 494 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ ℤ)
40 fzospliti 10602 . . . . . 6 ((𝑥 ∈ (0..^𝑍) ∧ 𝑌 ∈ ℤ) → (𝑥 ∈ (0..^𝑌) ∨ 𝑥 ∈ (𝑌..^𝑍)))
4138, 39, 40syl2anr 290 . . . . 5 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑍)) → (𝑥 ∈ (0..^𝑌) ∨ 𝑥 ∈ (𝑌..^𝑍)))
424adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → (𝑆 prefix 𝑌) ∈ Word 𝐴)
4311adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴)
4422oveq2d 6104 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (0..^(♯‘(𝑆 prefix 𝑌))) = (0..^𝑌))
4544eleq2d 2308 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(♯‘(𝑆 prefix 𝑌))) ↔ 𝑥 ∈ (0..^𝑌)))
4645biimpar 297 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → 𝑥 ∈ (0..^(♯‘(𝑆 prefix 𝑌))))
47 ccatval1 11387 . . . . . . . 8 (((𝑆 prefix 𝑌) ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴 ∧ 𝑥 ∈ (0..^(♯‘(𝑆 prefix 𝑌)))) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = ((𝑆 prefix 𝑌)‘𝑥))
4842, 43, 46, 47syl3anc 1278 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = ((𝑆 prefix 𝑌)‘𝑥))
4920adantl 277 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ (0...(♯‘𝑆)))
50 id 19 . . . . . . . 8 (𝑥 ∈ (0..^𝑌) → 𝑥 ∈ (0..^𝑌))
51 pfxfv 11478 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...(♯‘𝑆)) ∧ 𝑥 ∈ (0..^𝑌)) → ((𝑆 prefix 𝑌)‘𝑥) = (𝑆‘𝑥))
525, 49, 50, 51syl2an3an 1339 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → ((𝑆 prefix 𝑌)‘𝑥) = (𝑆‘𝑥))
5348, 52eqtrd 2271 . . . . . 6 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑌)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = (𝑆‘𝑥))
544adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑆 prefix 𝑌) ∈ Word 𝐴)
5511adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴)
5625, 31eqtrd 2271 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩))) = 𝑍)
5722, 56oveq12d 6106 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((♯‘(𝑆 prefix 𝑌))..^((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩)))) = (𝑌..^𝑍))
5857eleq2d 2308 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ ((♯‘(𝑆 prefix 𝑌))..^((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩)))) ↔ 𝑥 ∈ (𝑌..^𝑍)))
5958biimpar 297 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → 𝑥 ∈ ((♯‘(𝑆 prefix 𝑌))..^((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩)))))
60 ccatval2 11388 . . . . . . . 8 (((𝑆 prefix 𝑌) ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝑌, 𝑍⟩) ∈ Word 𝐴 ∧ 𝑥 ∈ ((♯‘(𝑆 prefix 𝑌))..^((♯‘(𝑆 prefix 𝑌)) + (♯‘(𝑆 substr ⟨𝑌, 𝑍⟩))))) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = ((𝑆 substr ⟨𝑌, 𝑍⟩)‘(𝑥 − (♯‘(𝑆 prefix 𝑌)))))
6154, 55, 59, 60syl3anc 1278 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = ((𝑆 substr ⟨𝑌, 𝑍⟩)‘(𝑥 − (♯‘(𝑆 prefix 𝑌)))))
62 id 19 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))))
63623expb 1235 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))))
6422oveq2d 6104 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → (𝑥 − (♯‘(𝑆 prefix 𝑌))) = (𝑥 − 𝑌))
6564adantr 276 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑥 − (♯‘(𝑆 prefix 𝑌))) = (𝑥 − 𝑌))
66 id 19 . . . . . . . . . . 11 (𝑥 ∈ (𝑌..^𝑍) → 𝑥 ∈ (𝑌..^𝑍))
67 fzosubel 10629 . . . . . . . . . . 11 ((𝑥 ∈ (𝑌..^𝑍) ∧ 𝑌 ∈ ℤ) → (𝑥 − 𝑌) ∈ ((𝑌 − 𝑌)..^(𝑍 − 𝑌)))
6866, 39, 67syl2anr 290 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑥 − 𝑌) ∈ ((𝑌 − 𝑌)..^(𝑍 − 𝑌)))
6927subidd 8632 . . . . . . . . . . . . . 14 (𝑌 ∈ (0...𝑍) → (𝑌 − 𝑌) = 0)
7069oveq1d 6103 . . . . . . . . . . . . 13 (𝑌 ∈ (0...𝑍) → ((𝑌 − 𝑌)..^(𝑍 − 𝑌)) = (0..^(𝑍 − 𝑌)))
7170eleq2d 2308 . . . . . . . . . . . 12 (𝑌 ∈ (0...𝑍) → ((𝑥 − 𝑌) ∈ ((𝑌 − 𝑌)..^(𝑍 − 𝑌)) ↔ (𝑥 − 𝑌) ∈ (0..^(𝑍 − 𝑌))))
7271ad2antrl 494 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑥 − 𝑌) ∈ ((𝑌 − 𝑌)..^(𝑍 − 𝑌)) ↔ (𝑥 − 𝑌) ∈ (0..^(𝑍 − 𝑌))))
7372adantr 276 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → ((𝑥 − 𝑌) ∈ ((𝑌 − 𝑌)..^(𝑍 − 𝑌)) ↔ (𝑥 − 𝑌) ∈ (0..^(𝑍 − 𝑌))))
7468, 73mpbid 147 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑥 − 𝑌) ∈ (0..^(𝑍 − 𝑌)))
7565, 74eqeltrd 2315 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑥 − (♯‘(𝑆 prefix 𝑌))) ∈ (0..^(𝑍 − 𝑌)))
76 swrdfv 11447 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) ∧ (𝑥 − (♯‘(𝑆 prefix 𝑌))) ∈ (0..^(𝑍 − 𝑌))) → ((𝑆 substr ⟨𝑌, 𝑍⟩)‘(𝑥 − (♯‘(𝑆 prefix 𝑌)))) = (𝑆‘((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌)))
7763, 75, 76syl2an2r 603 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → ((𝑆 substr ⟨𝑌, 𝑍⟩)‘(𝑥 − (♯‘(𝑆 prefix 𝑌)))) = (𝑆‘((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌)))
7864oveq1d 6103 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌) = ((𝑥 − 𝑌) + 𝑌))
7978adantr 276 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → ((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌) = ((𝑥 − 𝑌) + 𝑌))
80 elfzoelz 10571 . . . . . . . . . . 11 (𝑥 ∈ (𝑌..^𝑍) → 𝑥 ∈ ℤ)
8180zcnd 9780 . . . . . . . . . 10 (𝑥 ∈ (𝑌..^𝑍) → 𝑥 ∈ ℂ)
8227ad2antrl 494 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ ℂ)
83 npcan 8542 . . . . . . . . . 10 ((𝑥 ∈ ℂ ∧ 𝑌 ∈ ℂ) → ((𝑥 − 𝑌) + 𝑌) = 𝑥)
8481, 82, 83syl2anr 290 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → ((𝑥 − 𝑌) + 𝑌) = 𝑥)
8579, 84eqtrd 2271 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → ((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌) = 𝑥)
8685fveq2d 5702 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (𝑆‘((𝑥 − (♯‘(𝑆 prefix 𝑌))) + 𝑌)) = (𝑆‘𝑥))
8761, 77, 863eqtrd 2275 . . . . . 6 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (𝑌..^𝑍)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = (𝑆‘𝑥))
8853, 87jaodan 809 . . . . 5 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ (𝑥 ∈ (0..^𝑌) ∨ 𝑥 ∈ (𝑌..^𝑍))) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = (𝑆‘𝑥))
8941, 88syldan 282 . . . 4 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑍)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = (𝑆‘𝑥))
90 pfxfv 11478 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ 𝑍 ∈ (0...(♯‘𝑆)) ∧ 𝑥 ∈ (0..^𝑍)) → ((𝑆 prefix 𝑍)‘𝑥) = (𝑆‘𝑥))
91903expa 1234 . . . . 5 (((𝑆 ∈ Word 𝐴 ∧ 𝑍 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^𝑍)) → ((𝑆 prefix 𝑍)‘𝑥) = (𝑆‘𝑥))
9291adantlrl 486 . . . 4 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑍)) → ((𝑆 prefix 𝑍)‘𝑥) = (𝑆‘𝑥))
9389, 92eqtr4d 2274 . . 3 (((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^𝑍)) → (((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩))‘𝑥) = ((𝑆 prefix 𝑍)‘𝑥))
9435, 37, 93eqfnfvd 5812 . 2 ((𝑆 ∈ Word 𝐴 ∧ (𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑆 prefix 𝑍))
95943impb 1230 1 ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑆 prefix 𝑍))
Colors of variables:    wff set class
This proof depends on syntax axioms:   → wi 4   ∧ wa 104   ↔ wb 105   ∨ wo 720   ∧ w3a 1009   = wceq 1402   ∈ wcel 2209  ⟨cop 3712   Fn wfn 5375  ‘cfv 5380  (class class class)co 6088  ℂcc 8183  0cc0 8185   + caddc 8188   − cmin 8504  ℕ0cn0 9574  ℤcz 9655  ...cfz 10428  ..^cfzo 10566  ♯chash 11236  Word cword 11326   ++ cconcat 11380   substr csubstr 11439   prefix cpfx 11466
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4248  ax-sep 4251  ax-nul 4261  ax-pow 4313  ax-pr 4348  ax-un 4580  ax-setind 4686  ax-iinf 4737  ax-cnex 8276  ax-resscn 8277  ax-1cn 8278  ax-1re 8279  ax-icn 8280  ax-addcl 8281  ax-addrcl 8282  ax-mulcl 8283  ax-addcom 8285  ax-addass 8287  ax-distr 8289  ax-i2m1 8290  ax-0lt1 8291  ax-0id 8293  ax-rnegex 8294  ax-cnre 8296  ax-pre-ltirr 8297  ax-pre-ltwlin 8298  ax-pre-lttrn 8299  ax-pre-apti 8300  ax-pre-ltadd 8301
This proof depends on definitions:  df-bi 117  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4132  df-opab 4194  df-mpt 4195  df-tr 4232  df-id 4440  df-iord 4513  df-on 4515  df-ilim 4516  df-suc 4518  df-iom 4740  df-xp 4782  df-rel 4783  df-cnv 4784  df-co 4785  df-dm 4786  df-rn 4787  df-res 4788  df-ima 4789  df-iota 5340  df-fun 5382  df-fn 5383  df-f 5384  df-f1 5385  df-fo 5386  df-f1o 5387  df-fv 5388  df-riota 6041  df-ov 6091  df-oprab 6092  df-mpo 6093  df-1st 6378  df-2nd 6379  df-recs 6580  df-frec 6666  df-1o 6691  df-er 6811  df-en 7027  df-dom 7028  df-fin 7029  df-pnf 8368  df-mnf 8369  df-xr 8370  df-ltxr 8371  df-le 8372  df-sub 8506  df-neg 8507  df-inn 9314  df-n0 9575  df-z 9656  df-uz 9938  df-fz 10429  df-fzo 10567  df-ihash 11237  df-word 11327  df-concat 11381  df-substr 11440  df-pfx 11467
This theorem is used by:  pfxcctswrd  11504  wrdeqs1cat  11514
  Copyright terms: Public domain W3C validator