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

Theorem swrdccatin12 13342
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 Alexander van der Vekens, 27-May-2018.)
Hypothesis
Ref Expression
swrdccatin12.l 𝐿 = (#‘𝐴)
Assertion
Ref Expression
swrdccatin12 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))))

Proof of Theorem swrdccatin12
Dummy variable 𝑘 is distinct from all other variables.
StepHypRef Expression
1 ccatcl 13212 . . . . 5 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝐴 ++ 𝐵) ∈ Word 𝑉)
21adantr 480 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐴 ++ 𝐵) ∈ Word 𝑉)
3 elfz0fzfz0 12313 . . . . 5 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → 𝑀 ∈ (0...𝑁))
43adantl 481 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑀 ∈ (0...𝑁))
5 elfzuz2 12217 . . . . . . . . 9 (𝑀 ∈ (0...𝐿) → 𝐿 ∈ (ℤ‘0))
65adantl 481 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → 𝐿 ∈ (ℤ‘0))
7 fzss1 12251 . . . . . . . 8 (𝐿 ∈ (ℤ‘0) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(𝐿 + (#‘𝐵))))
86, 7syl 17 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(𝐿 + (#‘𝐵))))
9 ccatlen 13213 . . . . . . . . . 10 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵)))
10 swrdccatin12.l . . . . . . . . . . . 12 𝐿 = (#‘𝐴)
1110eqcomi 2619 . . . . . . . . . . 11 (#‘𝐴) = 𝐿
1211oveq1i 6559 . . . . . . . . . 10 ((#‘𝐴) + (#‘𝐵)) = (𝐿 + (#‘𝐵))
139, 12syl6eq 2660 . . . . . . . . 9 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (#‘(𝐴 ++ 𝐵)) = (𝐿 + (#‘𝐵)))
1413adantr 480 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (#‘(𝐴 ++ 𝐵)) = (𝐿 + (#‘𝐵)))
1514oveq2d 6565 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (0...(#‘(𝐴 ++ 𝐵))) = (0...(𝐿 + (#‘𝐵))))
168, 15sseqtr4d 3605 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(#‘(𝐴 ++ 𝐵))))
1716sseld 3567 . . . . 5 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵)))))
1817impr 647 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵))))
19 swrdvalfn 13278 . . . 4 (((𝐴 ++ 𝐵) ∈ Word 𝑉𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) Fn (0..^(𝑁𝑀)))
202, 4, 18, 19syl3anc 1318 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) Fn (0..^(𝑁𝑀)))
21 swrdcl 13271 . . . . . . 7 (𝐴 ∈ Word 𝑉 → (𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉)
22 swrdcl 13271 . . . . . . 7 (𝐵 ∈ Word 𝑉 → (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉)
2321, 22anim12i 588 . . . . . 6 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉))
2423adantr 480 . . . . 5 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉))
25 ccatvalfn 13218 . . . . 5 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)) Fn (0..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))))
2624, 25syl 17 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)) Fn (0..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))))
27 simpll 786 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐴 ∈ Word 𝑉)
28 simprl 790 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑀 ∈ (0...𝐿))
29 lencl 13179 . . . . . . . . . . . 12 (𝐴 ∈ Word 𝑉 → (#‘𝐴) ∈ ℕ0)
30 elnn0uz 11601 . . . . . . . . . . . . . 14 ((#‘𝐴) ∈ ℕ0 ↔ (#‘𝐴) ∈ (ℤ‘0))
31 eluzfz2 12220 . . . . . . . . . . . . . 14 ((#‘𝐴) ∈ (ℤ‘0) → (#‘𝐴) ∈ (0...(#‘𝐴)))
3230, 31sylbi 206 . . . . . . . . . . . . 13 ((#‘𝐴) ∈ ℕ0 → (#‘𝐴) ∈ (0...(#‘𝐴)))
3310, 32syl5eqel 2692 . . . . . . . . . . . 12 ((#‘𝐴) ∈ ℕ0𝐿 ∈ (0...(#‘𝐴)))
3429, 33syl 17 . . . . . . . . . . 11 (𝐴 ∈ Word 𝑉𝐿 ∈ (0...(#‘𝐴)))
3534adantr 480 . . . . . . . . . 10 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → 𝐿 ∈ (0...(#‘𝐴)))
3635adantr 480 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐿 ∈ (0...(#‘𝐴)))
37 swrdlen 13275 . . . . . . . . 9 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴))) → (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
3827, 28, 36, 37syl3anc 1318 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
39 simpr 476 . . . . . . . . . 10 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → 𝐵 ∈ Word 𝑉)
4039adantr 480 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐵 ∈ Word 𝑉)
41 lencl 13179 . . . . . . . . . . . . 13 (𝐵 ∈ Word 𝑉 → (#‘𝐵) ∈ ℕ0)
4241nn0zd 11356 . . . . . . . . . . . 12 (𝐵 ∈ Word 𝑉 → (#‘𝐵) ∈ ℤ)
4342adantl 481 . . . . . . . . . . 11 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (#‘𝐵) ∈ ℤ)
44 simpr 476 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))
4543, 44anim12i 588 . . . . . . . . . 10 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘𝐵) ∈ ℤ ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))))
46 elfzmlbp 12319 . . . . . . . . . 10 (((#‘𝐵) ∈ ℤ ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → (𝑁𝐿) ∈ (0...(#‘𝐵)))
4745, 46syl 17 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝑁𝐿) ∈ (0...(#‘𝐵)))
48 swrd0len 13274 . . . . . . . . 9 ((𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(#‘𝐵))) → (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)) = (𝑁𝐿))
4940, 47, 48syl2anc 691 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)) = (𝑁𝐿))
5038, 49oveq12d 6567 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))) = ((𝐿𝑀) + (𝑁𝐿)))
51 elfz2nn0 12300 . . . . . . . . . . 11 (𝑀 ∈ (0...𝐿) ↔ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿))
52 elfzelz 12213 . . . . . . . . . . . . . 14 (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ ℤ)
53 nn0cn 11179 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℕ0𝐿 ∈ ℂ)
5453adantl 481 . . . . . . . . . . . . . . . . 17 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → 𝐿 ∈ ℂ)
5554adantl 481 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝐿 ∈ ℂ)
56 nn0cn 11179 . . . . . . . . . . . . . . . . 17 (𝑀 ∈ ℕ0𝑀 ∈ ℂ)
5756ad2antrl 760 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝑀 ∈ ℂ)
58 zcn 11259 . . . . . . . . . . . . . . . . 17 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
5958adantr 480 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → 𝑁 ∈ ℂ)
6055, 57, 593jca 1235 . . . . . . . . . . . . . . 15 ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0𝐿 ∈ ℕ0)) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))
6160ex 449 . . . . . . . . . . . . . 14 (𝑁 ∈ ℤ → ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
6252, 61syl 17 . . . . . . . . . . . . 13 (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
6362com12 32 . . . . . . . . . . . 12 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
64633adant3 1074 . . . . . . . . . . 11 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
6551, 64sylbi 206 . . . . . . . . . 10 (𝑀 ∈ (0...𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)))
6665imp 444 . . . . . . . . 9 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))
6766adantl 481 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))
68 npncan3 10198 . . . . . . . 8 ((𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ) → ((𝐿𝑀) + (𝑁𝐿)) = (𝑁𝑀))
6967, 68syl 17 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐿𝑀) + (𝑁𝐿)) = (𝑁𝑀))
7050, 69eqtr2d 2645 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝑁𝑀) = ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))
7170oveq2d 6565 . . . . 5 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (0..^(𝑁𝑀)) = (0..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))))
7271fneq2d 5896 . . . 4 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)) Fn (0..^(𝑁𝑀)) ↔ ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)) Fn (0..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))))
7326, 72mpbird 246 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)) Fn (0..^(𝑁𝑀)))
74 simprl 790 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))))
75 simpr 476 . . . . . . . 8 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀))) → 𝑘 ∈ (0..^(𝑁𝑀)))
7675anim2i 591 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝐿𝑀)) ∧ 𝑘 ∈ (0..^(𝑁𝑀))))
7776ancomd 466 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝑁𝑀)) ∧ 𝑘 ∈ (0..^(𝐿𝑀))))
7810swrdccatin12lem3 13341 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ 𝑘 ∈ (0..^(𝐿𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘)))
7974, 77, 78sylc 63 . . . . 5 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
8024ad2antrl 760 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉))
81 simpl 472 . . . . . . . 8 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ (0..^(𝐿𝑀)))
82 nn0fz0 12306 . . . . . . . . . . . . . . . 16 ((#‘𝐴) ∈ ℕ0 ↔ (#‘𝐴) ∈ (0...(#‘𝐴)))
8329, 82sylib 207 . . . . . . . . . . . . . . 15 (𝐴 ∈ Word 𝑉 → (#‘𝐴) ∈ (0...(#‘𝐴)))
8410, 83syl5eqel 2692 . . . . . . . . . . . . . 14 (𝐴 ∈ Word 𝑉𝐿 ∈ (0...(#‘𝐴)))
8584adantr 480 . . . . . . . . . . . . 13 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → 𝐿 ∈ (0...(#‘𝐴)))
8685adantr 480 . . . . . . . . . . . 12 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐿 ∈ (0...(#‘𝐴)))
8727, 28, 863jca 1235 . . . . . . . . . . 11 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐴 ∈ Word 𝑉𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴))))
8887ad2antrl 760 . . . . . . . . . 10 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝐴 ∈ Word 𝑉𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴))))
8988, 37syl 17 . . . . . . . . 9 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
9089oveq2d 6565 . . . . . . . 8 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩))) = (0..^(𝐿𝑀)))
9181, 90eleqtrrd 2691 . . . . . . 7 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩))))
92 df-3an 1033 . . . . . . 7 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))) ↔ (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉) ∧ 𝑘 ∈ (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
9380, 91, 92sylanbrc 695 . . . . . 6 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
94 ccatval1 13214 . . . . . 6 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ (0..^(#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
9593, 94syl 17 . . . . 5 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘) = ((𝐴 substr ⟨𝑀, 𝐿⟩)‘𝑘))
9679, 95eqtr4d 2647 . . . 4 ((𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘))
97 simprl 790 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))))
9875anim2i 591 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ 𝑘 ∈ (0..^(𝑁𝑀))))
9998ancomd 466 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))))
10010swrdccatin12lem2 13340 . . . . . 6 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐵 substr ⟨0, (𝑁𝐿)⟩)‘(𝑘 − (#‘(𝐴 substr ⟨𝑀, 𝐿⟩))))))
10197, 99, 100sylc 63 . . . . 5 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = ((𝐵 substr ⟨0, (𝑁𝐿)⟩)‘(𝑘 − (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
10224ad2antrl 760 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉))
103 elfzuz 12209 . . . . . . . . . . . . 13 (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ (ℤ𝐿))
104 eluzelz 11573 . . . . . . . . . . . . . 14 (𝑁 ∈ (ℤ𝐿) → 𝑁 ∈ ℤ)
105 simpll 786 . . . . . . . . . . . . . . . . . . 19 (((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) ∧ 𝑁 ∈ ℤ) → 𝐿 ∈ ℕ0)
106 simpr 476 . . . . . . . . . . . . . . . . . . . 20 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) → 𝑀 ∈ ℕ0)
107106adantr 480 . . . . . . . . . . . . . . . . . . 19 (((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) ∧ 𝑁 ∈ ℤ) → 𝑀 ∈ ℕ0)
108 simpr 476 . . . . . . . . . . . . . . . . . . 19 (((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℤ)
109105, 107, 1083jca 1235 . . . . . . . . . . . . . . . . . 18 (((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) ∧ 𝑁 ∈ ℤ) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
110109ex 449 . . . . . . . . . . . . . . . . 17 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
111110ancoms 468 . . . . . . . . . . . . . . . 16 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
1121113adant3 1074 . . . . . . . . . . . . . . 15 ((𝑀 ∈ ℕ0𝐿 ∈ ℕ0𝑀𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
11351, 112sylbi 206 . . . . . . . . . . . . . 14 (𝑀 ∈ (0...𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
114104, 113syl5com 31 . . . . . . . . . . . . 13 (𝑁 ∈ (ℤ𝐿) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
115103, 114syl 17 . . . . . . . . . . . 12 (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ)))
116115impcom 445 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
117116adantl 481 . . . . . . . . . 10 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
118117ad2antrl 760 . . . . . . . . 9 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ))
119 swrdccatin12lem1 13335 . . . . . . . . 9 ((𝐿 ∈ ℕ0𝑀 ∈ ℕ0𝑁 ∈ ℤ) → ((𝑘 ∈ (0..^(𝑁𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿𝑀))) → 𝑘 ∈ ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿)))))
120118, 99, 119sylc 63 . . . . . . . 8 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
12127, 28, 86, 37syl3anc 1318 . . . . . . . . . 10 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) = (𝐿𝑀))
12239adantl 481 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉)) → 𝐵 ∈ Word 𝑉)
12343adantl 481 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉)) → (#‘𝐵) ∈ ℤ)
124 simpl 472 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉)) → 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))
125123, 124, 46syl2anc 691 . . . . . . . . . . . . . . . 16 ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉)) → (𝑁𝐿) ∈ (0...(#‘𝐵)))
126122, 125jca 553 . . . . . . . . . . . . . . 15 ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉)) → (𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(#‘𝐵))))
127126ex 449 . . . . . . . . . . . . . 14 (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(#‘𝐵)))))
128127adantl 481 . . . . . . . . . . . . 13 ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(#‘𝐵)))))
129128impcom 445 . . . . . . . . . . . 12 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐵 ∈ Word 𝑉 ∧ (𝑁𝐿) ∈ (0...(#‘𝐵))))
130129, 48syl 17 . . . . . . . . . . 11 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)) = (𝑁𝐿))
131121, 130oveq12d 6567 . . . . . . . . . 10 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))) = ((𝐿𝑀) + (𝑁𝐿)))
132121, 131oveq12d 6567 . . . . . . . . 9 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))) = ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
133132ad2antrl 760 . . . . . . . 8 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))) = ((𝐿𝑀)..^((𝐿𝑀) + (𝑁𝐿))))
134120, 133eleqtrrd 2691 . . . . . . 7 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → 𝑘 ∈ ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩)))))
135 df-3an 1033 . . . . . . 7 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))) ↔ (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉) ∧ 𝑘 ∈ ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))))
136102, 134, 135sylanbrc 695 . . . . . 6 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))))
137 ccatval2 13215 . . . . . 6 (((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 ∧ (𝐵 substr ⟨0, (𝑁𝐿)⟩) ∈ Word 𝑉𝑘 ∈ ((#‘(𝐴 substr ⟨𝑀, 𝐿⟩))..^((#‘(𝐴 substr ⟨𝑀, 𝐿⟩)) + (#‘(𝐵 substr ⟨0, (𝑁𝐿)⟩))))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘) = ((𝐵 substr ⟨0, (𝑁𝐿)⟩)‘(𝑘 − (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
138136, 137syl 17 . . . . 5 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘) = ((𝐵 substr ⟨0, (𝑁𝐿)⟩)‘(𝑘 − (#‘(𝐴 substr ⟨𝑀, 𝐿⟩)))))
139101, 138eqtr4d 2647 . . . 4 ((¬ 𝑘 ∈ (0..^(𝐿𝑀)) ∧ (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀)))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘))
14096, 139pm2.61ian 827 . . 3 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁𝑀))) → (((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩)‘𝑘) = (((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))‘𝑘))
14120, 73, 140eqfnfvd 6222 . 2 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩)))
142141ex 449 1 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → ((𝐴 ++ 𝐵) substr ⟨𝑀, 𝑁⟩) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ (𝐵 substr ⟨0, (𝑁𝐿)⟩))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 383  w3a 1031   = wceq 1475  wcel 1977  wss 3540  cop 4131   class class class wbr 4583   Fn wfn 5799  cfv 5804  (class class class)co 6549  cc 9813  0cc0 9815   + caddc 9818  cle 9954  cmin 10145  0cn0 11169  cz 11254  cuz 11563  ...cfz 12197  ..^cfzo 12334  #chash 12979  Word cword 13146   ++ cconcat 13148   substr csubstr 13150
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-rep 4699  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892
This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-int 4411  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-1o 7447  df-oadd 7451  df-er 7629  df-en 7842  df-dom 7843  df-sdom 7844  df-fin 7845  df-card 8648  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-nn 10898  df-n0 11170  df-z 11255  df-uz 11564  df-fz 12198  df-fzo 12335  df-hash 12980  df-word 13154  df-concat 13156  df-substr 13158
This theorem is referenced by:  swrdccat3  13343  swrdccatin12d  13352
  Copyright terms: Public domain W3C validator