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

Theorem pfxccatin12 14766
Description: The subword of a concatenation of two words within both of the concatenated words. (Contributed by Alexander van der Vekens, 5-Apr-2018.) (Revised by AV, 9-May-2020.)
Hypothesis
Ref Expression
swrdccatin2.l 𝐿 = (♯‘𝐴)
Assertion
Ref Expression
pfxccatin12 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))))

Proof of Theorem pfxccatin12
Dummy variable 𝑘 is distinct from all other variables.
StepHypRef Expression
1 swrdccatin2.l . . . . 5 𝐿 = (♯‘𝐴)
21pfxccatin12lem2c 14763 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 ++ 𝐵) ∈ Word 𝑉𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))))
3 swrdvalfn 14685 . . . 4 (((𝐴 ++ 𝐵) ∈ Word 𝑉𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) Fn (0..^(𝑁𝑀)))
42, 3syl 18 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) Fn (0..^(𝑁𝑀)))
5 swrdcl 14679 . . . . . 6 (𝐴 ∈ Word 𝑉 → (𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉)
6 pfxcl 14711 . . . . . 6 (𝐵 ∈ Word 𝑉 → (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉)
7 ccatvalfn 14614 . . . . . 6 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))))
85, 6, 7syl2an 607 . . . . 5 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))))
98adantr 485 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))))
10 simpll 778 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → 𝐴 ∈ Word 𝑉)
11 simprl 782 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → 𝑀 ∈ (0...𝐿))
12 lencl 14566 . . . . . . . . . . . 12 (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ ℕ0)
13 nn0fz0 13649 . . . . . . . . . . . 12 ((♯‘𝐴) ∈ ℕ0 ↔ (♯‘𝐴) ∈ (0...(♯‘𝐴)))
1412, 13sylib 221 . . . . . . . . . . 11 (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ (0...(♯‘𝐴)))
151, 14eqeltrid 2867 . . . . . . . . . 10 (𝐴 ∈ Word 𝑉𝐿 ∈ (0...(♯‘𝐴)))
1615ad2antrr 738 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → 𝐿 ∈ (0...(♯‘𝐴)))
17 swrdlen 14681 . . . . . . . . 9 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝐴))) → (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
1810, 11, 16, 17syl3anc 1398 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
19 lencl 14566 . . . . . . . . . . . 12 (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈ ℕ0)
2019nn0zd 12611 . . . . . . . . . . 11 (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈ ℤ)
21 elfzmlbp 13663 . . . . . . . . . . 11 (((♯‘𝐵) ∈ ℤ ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → (𝑁𝐿) ∈ (0...(♯‘𝐵)))
2220, 21sylan 591 . . . . . . . . . 10 ((𝐵 ∈ Word 𝑉𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → (𝑁𝐿) ∈ (0...(♯‘𝐵)))
23 pfxlen 14717 . . . . . . . . . 10 ((𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(♯‘𝐵))) → (♯‘(𝐵 prefix (𝑁𝐿))) = (𝑁𝐿))
2422, 23syldan 602 . . . . . . . . 9 ((𝐵 ∈ Word 𝑉𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → (♯‘(𝐵 prefix (𝑁𝐿))) = (𝑁𝐿))
2524ad2ant2l 758 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (♯‘(𝐵 prefix (𝑁𝐿))) = (𝑁𝐿))
2618, 25oveq12d 7428 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))) = ((𝐿𝑀) + (𝑁𝐿)))
27 elfz2nn0 13642 . . . . . . . . . . 11 (𝑀 ∈ (0...𝐿) ↔ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿))
28 nn0cn 12509 . . . . . . . . . . . . . . . 16 (𝐿 ∈ ℕ0𝐿 ∈ ℂ)
2928ad2antll 741 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝐿 ∈ ℂ)
30 nn0cn 12509 . . . . . . . . . . . . . . . 16 (𝑀 ∈ ℕ0𝑀 ∈ ℂ)
3130ad2antrl 740 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝑀 ∈ ℂ)
32 zcn 12591 . . . . . . . . . . . . . . . 16 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
3332adantr 485 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝑁 ∈ ℂ)
3429, 31, 333jca 1146 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))
3534ex 417 . . . . . . . . . . . . 13 (𝑁 ∈ ℤ → ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
36 elfzelz 13547 . . . . . . . . . . . . 13 (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → 𝑁 ∈ ℤ)
3735, 36syl11 34 . . . . . . . . . . . 12 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
38373adant3 1150 . . . . . . . . . . 11 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
3927, 38sylbi 220 . . . . . . . . . 10 (𝑀 ∈ (0...𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
4039imp 411 . . . . . . . . 9 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))
41 npncan3 11491 . . . . . . . . 9 ((𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ) → ((𝐿𝑀) + (𝑁𝐿)) = (𝑁𝑀))
4240, 41syl 18 . . . . . . . 8 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → ((𝐿𝑀) + (𝑁𝐿)) = (𝑁𝑀))
4342adantl 486 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐿𝑀) + (𝑁𝐿)) = (𝑁𝑀))
4426, 43eqtr2d 2799 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (𝑁𝑀) = ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))
4544oveq2d 7426 . . . . 5 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (0..^(𝑁𝑀)) = (0..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))))
4645fneq2d 6629 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^(𝑁𝑀)) ↔ ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))))
479, 46mpbird 260 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))) Fn (0..^(𝑁𝑀)))
48 simprl 782 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))))
49 simpr 489 . . . . . . . 8 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀))) → 𝑘 ∈ (0..^(𝑁𝑀)))
5049anim2i 628 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝐿𝑀)) ∧ 𝑘 ∈ (0..^(𝑁𝑀))))
5150ancomd 466 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝑁𝑀)) ∧ 𝑘 ∈ (0..^(𝐿𝑀))))
521pfxccatin12lem3 14765 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ 𝑘 ∈ (0..^(𝐿𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘)))
5348, 51, 52sylc 66 . . . . 5 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
545, 6anim12i 624 . . . . . . . . 9 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉))
5554adantr 485 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉))
5655ad2antrl 740 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉))
57 simpl 487 . . . . . . . 8 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ (0..^(𝐿𝑀)))
5818oveq2d 7426 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))) = (0..^(𝐿𝑀)))
5958ad2antrl 740 . . . . . . . 8 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))) = (0..^(𝐿𝑀)))
6057, 59eleqtrrd 2866 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))))
61 df-3an 1105 . . . . . . 7 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))) ↔ (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉) ∧ 𝑘 ∈ (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
6256, 60, 61sylanbrc 594 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
63 ccatval1 14610 . . . . . 6 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ (0..^(♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
6462, 63syl 18 . . . . 5 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
6553, 64eqtr4d 2801 . . . 4 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘))
66 simprl 782 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))))
6749anim2i 628 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ 𝑘 ∈ (0..^(𝑁𝑀))))
6867ancomd 466 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))))
691pfxccatin12lem2 14764 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐵 prefix (𝑁𝐿))‘(𝑘 − (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))))))
7066, 68, 69sylc 66 . . . . 5 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐵 prefix (𝑁𝐿))‘(𝑘 − (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
7155ad2antrl 740 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉))
72 elfzuz 13543 . . . . . . . . . . . . 13 (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → 𝑁 ∈ (ℤ𝐿))
73 eluzelz 12867 . . . . . . . . . . . . . 14 (𝑁 ∈ (ℤ𝐿) → 𝑁 ∈ ℤ)
74 id 23 . . . . . . . . . . . . . . . . . 18 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
75743expia 1139 . . . . . . . . . . . . . . . . 17 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
7675ancoms 463 . . . . . . . . . . . . . . . 16 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
77763adant3 1150 . . . . . . . . . . . . . . 15 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
7827, 77sylbi 220 . . . . . . . . . . . . . 14 (𝑀 ∈ (0...𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
7973, 78syl5com 32 . . . . . . . . . . . . 13 (𝑁 ∈ (ℤ𝐿) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
8072, 79syl 18 . . . . . . . . . . . 12 (𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
8180impcom 412 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
8281adantl 486 . . . . . . . . . 10 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
8382ad2antrl 740 . . . . . . . . 9 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
84 pfxccatin12lem4 14759 . . . . . . . . 9 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))) → 𝑘 ∈ ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿)))))
8583, 68, 84sylc 66 . . . . . . . 8 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
8618, 26oveq12d 7428 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))) = ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
8786ad2antrl 740 . . . . . . . 8 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))) = ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
8885, 87eleqtrrd 2866 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿))))))
89 df-3an 1105 . . . . . . 7 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))) ↔ (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉) ∧ 𝑘 ∈ ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))))
9071, 88, 89sylanbrc 594 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))))
91 ccatval2 14611 . . . . . 6 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁𝐿)) ∈ Word 𝑉𝑘 ∈ ((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (♯‘(𝐵 prefix (𝑁𝐿)))))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘) = ((𝐵 prefix (𝑁𝐿))‘(𝑘 − (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
9290, 91syl 18 . . . . 5 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘) = ((𝐵 prefix (𝑁𝐿))‘(𝑘 − (♯‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
9370, 92eqtr4d 2801 . . . 4 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘))
9465, 93pm2.61ian 823 . . 3 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))‘𝑘))
954, 47, 94eqfnfvd 7028 . 2 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿))))
9695ex 417 1 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 prefix (𝑁𝐿)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 400  w3a 1103   = wceq 1570  wcel 2143  cop 4595   class class class wbr 5109   Fn wfn 6531  cfv 6536  (class class class)co 7410  cc 11093  0cc0 11095   + caddc 11098  cle 11239  cmin 11436  0cn0 12499  cz 12586  cuz 12857  ...cfz 13530  ..^cfzo 13678  chash 14362  Word cword 14546   ++ cconcat 14603   substr csubstr 14674   prefix cpfx 14704
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1825  ax-4 1839  ax-5 1940  ax-6 1997  ax-7 2038  ax-8 2145  ax-9 2153  ax-10 2176  ax-11 2192  ax-12 2213  ax-ext 2735  ax-rep 5238  ax-sep 5257  ax-nul 5269  ax-pow 5336  ax-pr 5404  ax-un 7732  ax-cnex 11151  ax-resscn 11152  ax-1cn 11153  ax-icn 11154  ax-addcl 11155  ax-addrcl 11156  ax-mulcl 11157  ax-mulrcl 11158  ax-mulcom 11159  ax-addass 11160  ax-mulass 11161  ax-distr 11162  ax-i2m1 11163  ax-1ne0 11164  ax-1rid 11165  ax-rnegex 11166  ax-rrecex 11167  ax-cnre 11168  ax-pre-lttri 11169  ax-pre-lttrn 11170  ax-pre-ltadd 11171  ax-pre-mulgt0 11172
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1810  df-nf 1814  df-sb 2097  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2838  df-nfc 2912  df-ne 2959  df-nel 3065  df-ral 3080  df-rex 3090  df-reu 3370  df-rab 3417  df-v 3457  df-sbc 3745  df-csb 3854  df-dif 3908  df-un 3910  df-in 3912  df-ss 3922  df-pss 3925  df-nul 4287  df-if 4488  df-pw 4564  df-sn 4590  df-pr 4592  df-op 4596  df-uni 4873  df-int 4913  df-iun 4958  df-br 5110  df-opab 5174  df-mpt 5193  df-tr 5219  df-id 5556  df-eprel 5561  df-po 5569  df-so 5570  df-fr 5614  df-we 5616  df-xp 5667  df-rel 5668  df-cnv 5669  df-co 5670  df-dm 5671  df-rn 5672  df-res 5673  df-ima 5674  df-pred 6302  df-ord 6363  df-on 6364  df-lim 6365  df-suc 6366  df-iota 6492  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-riota 7367  df-ov 7413  df-oprab 7414  df-mpo 7415  df-om 7859  df-1st 7982  df-2nd 7983  df-frecs 8274  df-wrecs 8305  df-recs 8354  df-rdg 8393  df-1o 8449  df-er 8690  df-en 8940  df-dom 8941  df-sdom 8942  df-fin 8943  df-card 9921  df-pnf 11240  df-mnf 11241  df-xr 11242  df-ltxr 11243  df-le 11244  df-sub 11438  df-neg 11439  df-nn 12229  df-n0 12500  df-z 12587  df-uz 12858  df-fz 13531  df-fzo 13679  df-hash 14363  df-word 14547  df-concat 14604  df-substr 14675  df-pfx 14705
This theorem is referenced by:  pfxccat3  14767  pfxccatpfx2  14770  pfxccatin12d  14778
  Copyright terms: Public domain W3C validator