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

Theorem ccatrn 14623
Description: The range of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.)
Assertion
Ref Expression
ccatrn ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))

Proof of Theorem ccatrn
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 ccatvalfn 14614 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
2 lencl 14566 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℕ0)
3 nn0uz 12896 . . . . . . . . . . . 12 0 = (ℤ‘0)
42, 3eleqtrdi 2879 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ (ℤ‘0))
54adantr 485 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (ℤ‘0))
62nn0zd 12612 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℤ)
76uzidd 12874 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ (ℤ‘(♯‘𝑆)))
8 lencl 14566 . . . . . . . . . . 11 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℕ0)
9 uzaddcl 12924 . . . . . . . . . . 11 (((♯‘𝑆) ∈ (ℤ‘(♯‘𝑆)) ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)))
107, 8, 9syl2an 607 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)))
11 elfzuzb 13542 . . . . . . . . . 10 ((♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))) ↔ ((♯‘𝑆) ∈ (ℤ‘0) ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆))))
125, 10, 11sylanbrc 594 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))))
13 fzosplit 13717 . . . . . . . . 9 ((♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))) → (0..^((♯‘𝑆) + (♯‘𝑇))) = ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1412, 13syl 18 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^((♯‘𝑆) + (♯‘𝑇))) = ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1514eleq2d 2855 . . . . . . 7 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ 𝑥 ∈ ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))))
16 elun 4115 . . . . . . 7 (𝑥 ∈ ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) ↔ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1715, 16bitrdi 290 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))))
18 ccatval1 14610 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
19183expa 1134 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
20 ssun1 4139 . . . . . . . . . 10 ran 𝑆 ⊆ (ran 𝑆 ∪ ran 𝑇)
21 wrdfn 14561 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵𝑆 Fn (0..^(♯‘𝑆)))
2221adantr 485 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(♯‘𝑆)))
23 fnfvelrn 7073 . . . . . . . . . . 11 ((𝑆 Fn (0..^(♯‘𝑆)) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2422, 23sylan 591 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2520, 24sselid 3943 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
2619, 25eqeltrd 2869 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
27 ccatval2 14611 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (♯‘𝑆))))
28273expa 1134 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (♯‘𝑆))))
29 ssun2 4140 . . . . . . . . . 10 ran 𝑇 ⊆ (ran 𝑆 ∪ ran 𝑇)
30 wrdfn 14561 . . . . . . . . . . . 12 (𝑇 ∈ Word 𝐵𝑇 Fn (0..^(♯‘𝑇)))
3130adantl 486 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 Fn (0..^(♯‘𝑇)))
32 elfzouz 13688 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ (ℤ‘(♯‘𝑆)))
33 uznn0sub 12893 . . . . . . . . . . . . . . 15 (𝑥 ∈ (ℤ‘(♯‘𝑆)) → (𝑥 − (♯‘𝑆)) ∈ ℕ0)
3432, 33syl 18 . . . . . . . . . . . . . 14 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → (𝑥 − (♯‘𝑆)) ∈ ℕ0)
3534, 3eleqtrdi 2879 . . . . . . . . . . . . 13 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → (𝑥 − (♯‘𝑆)) ∈ (ℤ‘0))
3635adantl 486 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ (ℤ‘0))
378nn0zd 12612 . . . . . . . . . . . . 13 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℤ)
3837ad2antlr 739 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑇) ∈ ℤ)
39 elfzolt2 13693 . . . . . . . . . . . . . 14 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 < ((♯‘𝑆) + (♯‘𝑇)))
4039adantl 486 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 < ((♯‘𝑆) + (♯‘𝑇)))
41 elfzoelz 13683 . . . . . . . . . . . . . . . 16 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℤ)
4241zred 12696 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℝ)
4342adantl 486 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 ∈ ℝ)
442nn0red 12562 . . . . . . . . . . . . . . 15 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℝ)
4544ad2antrr 738 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℝ)
468nn0red 12562 . . . . . . . . . . . . . . 15 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℝ)
4746ad2antlr 739 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑇) ∈ ℝ)
4843, 45, 47ltsubadd2d 11808 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑥 − (♯‘𝑆)) < (♯‘𝑇) ↔ 𝑥 < ((♯‘𝑆) + (♯‘𝑇))))
4940, 48mpbird 260 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) < (♯‘𝑇))
50 elfzo2 13686 . . . . . . . . . . . 12 ((𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇)) ↔ ((𝑥 − (♯‘𝑆)) ∈ (ℤ‘0) ∧ (♯‘𝑇) ∈ ℤ ∧ (𝑥 − (♯‘𝑆)) < (♯‘𝑇)))
5136, 38, 49, 50syl3anbrc 1360 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇)))
52 fnfvelrn 7073 . . . . . . . . . . 11 ((𝑇 Fn (0..^(♯‘𝑇)) ∧ (𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ ran 𝑇)
5331, 51, 52syl2an2r 697 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ ran 𝑇)
5429, 53sselid 3943 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ (ran 𝑆 ∪ ran 𝑇))
5528, 54eqeltrd 2869 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
5626, 55jaodan 972 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
5756ex 417 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
5817, 57sylbid 243 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
5958ralrimiv 3162 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
60 ffnfv 7112 . . . 4 ((𝑆 ++ 𝑇):(0..^((♯‘𝑆) + (♯‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) ↔ ((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
611, 59, 60sylanbrc 594 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇):(0..^((♯‘𝑆) + (♯‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇))
6261frnd 6712 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
63 fzoss2 13712 . . . . . . . . . 10 (((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)) → (0..^(♯‘𝑆)) ⊆ (0..^((♯‘𝑆) + (♯‘𝑇))))
6410, 63syl 18 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^(♯‘𝑆)) ⊆ (0..^((♯‘𝑆) + (♯‘𝑇))))
6564sselda 3945 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))))
66 fnfvelrn 7073 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
671, 65, 66syl2an2r 697 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
6819, 67eqeltrrd 2870 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
6968ralrimiva 3163 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(♯‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
70 ffnfv 7112 . . . . 5 (𝑆:(0..^(♯‘𝑆))⟶ran (𝑆 ++ 𝑇) ↔ (𝑆 Fn (0..^(♯‘𝑆)) ∧ ∀𝑥 ∈ (0..^(♯‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇)))
7122, 69, 70sylanbrc 594 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆:(0..^(♯‘𝑆))⟶ran (𝑆 ++ 𝑇))
7271frnd 6712 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
73 ccatval3 14612 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) = (𝑇𝑥))
74733expa 1134 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) = (𝑇𝑥))
75 elfzouz 13688 . . . . . . . . . 10 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ (ℤ‘0))
762adantr 485 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℕ0)
77 uzaddcl 12924 . . . . . . . . . 10 ((𝑥 ∈ (ℤ‘0) ∧ (♯‘𝑆) ∈ ℕ0) → (𝑥 + (♯‘𝑆)) ∈ (ℤ‘0))
7875, 76, 77syl2anr 608 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) ∈ (ℤ‘0))
79 nn0addcl 12535 . . . . . . . . . . . 12 (((♯‘𝑆) ∈ ℕ0 ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
802, 8, 79syl2an 607 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
8180nn0zd 12612 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
8281adantr 485 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
83 elfzonn0 13732 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℕ0)
8483nn0cnd 12563 . . . . . . . . . . 11 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℂ)
852nn0cnd 12563 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℂ)
8685adantr 485 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℂ)
87 addcom 11392 . . . . . . . . . . 11 ((𝑥 ∈ ℂ ∧ (♯‘𝑆) ∈ ℂ) → (𝑥 + (♯‘𝑆)) = ((♯‘𝑆) + 𝑥))
8884, 86, 87syl2anr 608 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) = ((♯‘𝑆) + 𝑥))
8983nn0red 12562 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℝ)
9089adantl 486 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ ℝ)
9146ad2antlr 739 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (♯‘𝑇) ∈ ℝ)
9244ad2antrr 738 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (♯‘𝑆) ∈ ℝ)
93 elfzolt2 13693 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 < (♯‘𝑇))
9493adantl 486 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 < (♯‘𝑇))
9590, 91, 92, 94ltadd2dd 11365 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((♯‘𝑆) + 𝑥) < ((♯‘𝑆) + (♯‘𝑇)))
9688, 95eqbrtrd 5134 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) < ((♯‘𝑆) + (♯‘𝑇)))
97 elfzo2 13686 . . . . . . . . 9 ((𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ ((𝑥 + (♯‘𝑆)) ∈ (ℤ‘0) ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ ∧ (𝑥 + (♯‘𝑆)) < ((♯‘𝑆) + (♯‘𝑇))))
9878, 82, 96, 97syl3anbrc 1360 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇))))
99 fnfvelrn 7073 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ (𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
1001, 98, 99syl2an2r 697 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10174, 100eqeltrrd 2870 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
102101ralrimiva 3163 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(♯‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
103 ffnfv 7112 . . . . 5 (𝑇:(0..^(♯‘𝑇))⟶ran (𝑆 ++ 𝑇) ↔ (𝑇 Fn (0..^(♯‘𝑇)) ∧ ∀𝑥 ∈ (0..^(♯‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇)))
10431, 102, 103sylanbrc 594 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇:(0..^(♯‘𝑇))⟶ran (𝑆 ++ 𝑇))
105104frnd 6712 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
10672, 105unssd 4153 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (ran 𝑆 ∪ ran 𝑇) ⊆ ran (𝑆 ++ 𝑇))
10762, 106eqssd 3962 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 400  wo 860   = wceq 1567  wcel 2149  wral 3085  cun 3911  wss 3913   class class class wbr 5110  ran crn 5660   Fn wfn 6528  wf 6529  cfv 6533  (class class class)co 7408  cc 11094  cr 11095  0cc0 11096   + caddc 11099   < clt 11239  cmin 11437  0cn0 12500  cz 12587  cuz 12858  ...cfz 13531  ..^cfzo 13678  chash 14362  Word cword 14546   ++ cconcat 14603
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1822  ax-4 1836  ax-5 1937  ax-6 1994  ax-7 2035  ax-8 2151  ax-9 2159  ax-10 2182  ax-11 2198  ax-12 2219  ax-ext 2741  ax-rep 5239  ax-sep 5258  ax-nul 5268  ax-pow 5334  ax-pr 5402  ax-un 7730  ax-cnex 11152  ax-resscn 11153  ax-1cn 11154  ax-icn 11155  ax-addcl 11156  ax-addrcl 11157  ax-mulcl 11158  ax-mulrcl 11159  ax-mulcom 11160  ax-addass 11161  ax-mulass 11162  ax-distr 11163  ax-i2m1 11164  ax-1ne0 11165  ax-1rid 11166  ax-rnegex 11167  ax-rrecex 11168  ax-cnre 11169  ax-pre-lttri 11170  ax-pre-lttrn 11171  ax-pre-ltadd 11172  ax-pre-mulgt0 11173
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1102  df-3an 1103  df-tru 1570  df-fal 1580  df-ex 1807  df-nf 1811  df-sb 2098  df-mo 2573  df-eu 2603  df-clab 2748  df-cleq 2761  df-clel 2844  df-nfc 2918  df-ne 2965  df-nel 3071  df-ral 3086  df-rex 3096  df-reu 3377  df-rab 3424  df-v 3465  df-sbc 3754  df-csb 3862  df-dif 3916  df-un 3918  df-in 3920  df-ss 3930  df-pss 3933  df-nul 4295  df-if 4490  df-pw 4566  df-sn 4592  df-pr 4594  df-op 4598  df-uni 4874  df-int 4914  df-iun 4959  df-br 5111  df-opab 5175  df-mpt 5194  df-tr 5220  df-id 5554  df-eprel 5559  df-po 5567  df-so 5568  df-fr 5612  df-we 5614  df-xp 5665  df-rel 5666  df-cnv 5667  df-co 5668  df-dm 5669  df-rn 5670  df-res 5671  df-ima 5672  df-pred 6299  df-ord 6360  df-on 6361  df-lim 6362  df-suc 6363  df-iota 6489  df-fun 6535  df-fn 6536  df-f 6537  df-f1 6538  df-fo 6539  df-f1o 6540  df-fv 6541  df-riota 7365  df-ov 7411  df-oprab 7412  df-mpo 7413  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 11241  df-mnf 11242  df-xr 11243  df-ltxr 11244  df-le 11245  df-sub 11439  df-neg 11440  df-nn 12230  df-n0 12501  df-z 12588  df-uz 12859  df-fz 13532  df-fzo 13679  df-hash 14363  df-word 14547  df-concat 14604
This theorem is referenced by:  s2rn  14996  s3rn  14997  s7rn  14998  cycpmco2f1  33381  cycpmco2rn  33382  unitprodclb  33642  mrsubvrs  35909
  Copyright terms: Public domain W3C validator