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

Theorem ccatrn 14222
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 14214 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
2 lencl 14164 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℕ0)
3 nn0uz 12549 . . . . . . . . . . . 12 0 = (ℤ‘0)
42, 3eleqtrdi 2849 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ (ℤ‘0))
54adantr 480 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (ℤ‘0))
62nn0zd 12353 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℤ)
76uzidd 12527 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ (ℤ‘(♯‘𝑆)))
8 lencl 14164 . . . . . . . . . . 11 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℕ0)
9 uzaddcl 12573 . . . . . . . . . . 11 (((♯‘𝑆) ∈ (ℤ‘(♯‘𝑆)) ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)))
107, 8, 9syl2an 595 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)))
11 elfzuzb 13179 . . . . . . . . . 10 ((♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))) ↔ ((♯‘𝑆) ∈ (ℤ‘0) ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆))))
125, 10, 11sylanbrc 582 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))))
13 fzosplit 13348 . . . . . . . . 9 ((♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇))) → (0..^((♯‘𝑆) + (♯‘𝑇))) = ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1412, 13syl 17 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^((♯‘𝑆) + (♯‘𝑇))) = ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1514eleq2d 2824 . . . . . . 7 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ 𝑥 ∈ ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))))
16 elun 4079 . . . . . . 7 (𝑥 ∈ ((0..^(♯‘𝑆)) ∪ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) ↔ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))))
1715, 16bitrdi 286 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))))
18 ccatval1 14209 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
19183expa 1116 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
20 ssun1 4102 . . . . . . . . . 10 ran 𝑆 ⊆ (ran 𝑆 ∪ ran 𝑇)
21 wrdfn 14159 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵𝑆 Fn (0..^(♯‘𝑆)))
2221adantr 480 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(♯‘𝑆)))
23 fnfvelrn 6940 . . . . . . . . . . 11 ((𝑆 Fn (0..^(♯‘𝑆)) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2422, 23sylan 579 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2520, 24sselid 3915 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
2619, 25eqeltrd 2839 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
27 ccatval2 14211 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (♯‘𝑆))))
28273expa 1116 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (♯‘𝑆))))
29 ssun2 4103 . . . . . . . . . 10 ran 𝑇 ⊆ (ran 𝑆 ∪ ran 𝑇)
30 wrdfn 14159 . . . . . . . . . . . 12 (𝑇 ∈ Word 𝐵𝑇 Fn (0..^(♯‘𝑇)))
3130adantl 481 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 Fn (0..^(♯‘𝑇)))
32 elfzouz 13320 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ (ℤ‘(♯‘𝑆)))
33 uznn0sub 12546 . . . . . . . . . . . . . . 15 (𝑥 ∈ (ℤ‘(♯‘𝑆)) → (𝑥 − (♯‘𝑆)) ∈ ℕ0)
3432, 33syl 17 . . . . . . . . . . . . . 14 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → (𝑥 − (♯‘𝑆)) ∈ ℕ0)
3534, 3eleqtrdi 2849 . . . . . . . . . . . . 13 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → (𝑥 − (♯‘𝑆)) ∈ (ℤ‘0))
3635adantl 481 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ (ℤ‘0))
378nn0zd 12353 . . . . . . . . . . . . 13 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℤ)
3837ad2antlr 723 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑇) ∈ ℤ)
39 elfzolt2 13325 . . . . . . . . . . . . . 14 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 < ((♯‘𝑆) + (♯‘𝑇)))
4039adantl 481 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 < ((♯‘𝑆) + (♯‘𝑇)))
41 elfzoelz 13316 . . . . . . . . . . . . . . . 16 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℤ)
4241zred 12355 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℝ)
4342adantl 481 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 ∈ ℝ)
442nn0red 12224 . . . . . . . . . . . . . . 15 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℝ)
4544ad2antrr 722 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℝ)
468nn0red 12224 . . . . . . . . . . . . . . 15 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℝ)
4746ad2antlr 723 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑇) ∈ ℝ)
4843, 45, 47ltsubadd2d 11503 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑥 − (♯‘𝑆)) < (♯‘𝑇) ↔ 𝑥 < ((♯‘𝑆) + (♯‘𝑇))))
4940, 48mpbird 256 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) < (♯‘𝑇))
50 elfzo2 13319 . . . . . . . . . . . 12 ((𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇)) ↔ ((𝑥 − (♯‘𝑆)) ∈ (ℤ‘0) ∧ (♯‘𝑇) ∈ ℤ ∧ (𝑥 − (♯‘𝑆)) < (♯‘𝑇)))
5136, 38, 49, 50syl3anbrc 1341 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇)))
52 fnfvelrn 6940 . . . . . . . . . . 11 ((𝑇 Fn (0..^(♯‘𝑇)) ∧ (𝑥 − (♯‘𝑆)) ∈ (0..^(♯‘𝑇))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ ran 𝑇)
5331, 51, 52syl2an2r 681 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ ran 𝑇)
5429, 53sselid 3915 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ (ran 𝑆 ∪ ran 𝑇))
5528, 54eqeltrd 2839 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
5626, 55jaodan 954 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ (𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇))))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
5756ex 412 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑥 ∈ (0..^(♯‘𝑆)) ∨ 𝑥 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
5817, 57sylbid 239 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
5958ralrimiv 3106 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
60 ffnfv 6974 . . . 4 ((𝑆 ++ 𝑇):(0..^((♯‘𝑆) + (♯‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) ↔ ((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
611, 59, 60sylanbrc 582 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇):(0..^((♯‘𝑆) + (♯‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇))
6261frnd 6592 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
63 fzoss2 13343 . . . . . . . . . 10 (((♯‘𝑆) + (♯‘𝑇)) ∈ (ℤ‘(♯‘𝑆)) → (0..^(♯‘𝑆)) ⊆ (0..^((♯‘𝑆) + (♯‘𝑇))))
6410, 63syl 17 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^(♯‘𝑆)) ⊆ (0..^((♯‘𝑆) + (♯‘𝑇))))
6564sselda 3917 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))))
66 fnfvelrn 6940 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
671, 65, 66syl2an2r 681 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
6819, 67eqeltrrd 2840 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑆))) → (𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
6968ralrimiva 3107 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(♯‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
70 ffnfv 6974 . . . . 5 (𝑆:(0..^(♯‘𝑆))⟶ran (𝑆 ++ 𝑇) ↔ (𝑆 Fn (0..^(♯‘𝑆)) ∧ ∀𝑥 ∈ (0..^(♯‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇)))
7122, 69, 70sylanbrc 582 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆:(0..^(♯‘𝑆))⟶ran (𝑆 ++ 𝑇))
7271frnd 6592 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
73 ccatval3 14212 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) = (𝑇𝑥))
74733expa 1116 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) = (𝑇𝑥))
75 elfzouz 13320 . . . . . . . . . 10 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ (ℤ‘0))
762adantr 480 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℕ0)
77 uzaddcl 12573 . . . . . . . . . 10 ((𝑥 ∈ (ℤ‘0) ∧ (♯‘𝑆) ∈ ℕ0) → (𝑥 + (♯‘𝑆)) ∈ (ℤ‘0))
7875, 76, 77syl2anr 596 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) ∈ (ℤ‘0))
79 nn0addcl 12198 . . . . . . . . . . . 12 (((♯‘𝑆) ∈ ℕ0 ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
802, 8, 79syl2an 595 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
8180nn0zd 12353 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
8281adantr 480 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
83 elfzonn0 13360 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℕ0)
8483nn0cnd 12225 . . . . . . . . . . 11 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℂ)
852nn0cnd 12225 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℂ)
8685adantr 480 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℂ)
87 addcom 11091 . . . . . . . . . . 11 ((𝑥 ∈ ℂ ∧ (♯‘𝑆) ∈ ℂ) → (𝑥 + (♯‘𝑆)) = ((♯‘𝑆) + 𝑥))
8884, 86, 87syl2anr 596 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) = ((♯‘𝑆) + 𝑥))
8983nn0red 12224 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 ∈ ℝ)
9089adantl 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 ∈ ℝ)
9146ad2antlr 723 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (♯‘𝑇) ∈ ℝ)
9244ad2antrr 722 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (♯‘𝑆) ∈ ℝ)
93 elfzolt2 13325 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(♯‘𝑇)) → 𝑥 < (♯‘𝑇))
9493adantl 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → 𝑥 < (♯‘𝑇))
9590, 91, 92, 94ltadd2dd 11064 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((♯‘𝑆) + 𝑥) < ((♯‘𝑆) + (♯‘𝑇)))
9688, 95eqbrtrd 5092 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) < ((♯‘𝑆) + (♯‘𝑇)))
97 elfzo2 13319 . . . . . . . . 9 ((𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↔ ((𝑥 + (♯‘𝑆)) ∈ (ℤ‘0) ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ ∧ (𝑥 + (♯‘𝑆)) < ((♯‘𝑆) + (♯‘𝑇))))
9878, 82, 96, 97syl3anbrc 1341 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇))))
99 fnfvelrn 6940 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ (𝑥 + (♯‘𝑆)) ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
1001, 98, 99syl2an2r 681 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (♯‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10174, 100eqeltrrd 2840 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(♯‘𝑇))) → (𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
102101ralrimiva 3107 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(♯‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
103 ffnfv 6974 . . . . 5 (𝑇:(0..^(♯‘𝑇))⟶ran (𝑆 ++ 𝑇) ↔ (𝑇 Fn (0..^(♯‘𝑇)) ∧ ∀𝑥 ∈ (0..^(♯‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇)))
10431, 102, 103sylanbrc 582 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇:(0..^(♯‘𝑇))⟶ran (𝑆 ++ 𝑇))
105104frnd 6592 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
10672, 105unssd 4116 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (ran 𝑆 ∪ ran 𝑇) ⊆ ran (𝑆 ++ 𝑇))
10762, 106eqssd 3934 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  wo 843   = wceq 1539  wcel 2108  wral 3063  cun 3881  wss 3883   class class class wbr 5070  ran crn 5581   Fn wfn 6413  wf 6414  cfv 6418  (class class class)co 7255  cc 10800  cr 10801  0cc0 10802   + caddc 10805   < clt 10940  cmin 11135  0cn0 12163  cz 12249  cuz 12511  ...cfz 13168  ..^cfzo 13311  chash 13972  Word cword 14145   ++ cconcat 14201
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1799  ax-4 1813  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2110  ax-9 2118  ax-10 2139  ax-11 2156  ax-12 2173  ax-ext 2709  ax-rep 5205  ax-sep 5218  ax-nul 5225  ax-pow 5283  ax-pr 5347  ax-un 7566  ax-cnex 10858  ax-resscn 10859  ax-1cn 10860  ax-icn 10861  ax-addcl 10862  ax-addrcl 10863  ax-mulcl 10864  ax-mulrcl 10865  ax-mulcom 10866  ax-addass 10867  ax-mulass 10868  ax-distr 10869  ax-i2m1 10870  ax-1ne0 10871  ax-1rid 10872  ax-rnegex 10873  ax-rrecex 10874  ax-cnre 10875  ax-pre-lttri 10876  ax-pre-lttrn 10877  ax-pre-ltadd 10878  ax-pre-mulgt0 10879
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3or 1086  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1784  df-nf 1788  df-sb 2069  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2817  df-nfc 2888  df-ne 2943  df-nel 3049  df-ral 3068  df-rex 3069  df-reu 3070  df-rab 3072  df-v 3424  df-sbc 3712  df-csb 3829  df-dif 3886  df-un 3888  df-in 3890  df-ss 3900  df-pss 3902  df-nul 4254  df-if 4457  df-pw 4532  df-sn 4559  df-pr 4561  df-tp 4563  df-op 4565  df-uni 4837  df-int 4877  df-iun 4923  df-br 5071  df-opab 5133  df-mpt 5154  df-tr 5188  df-id 5480  df-eprel 5486  df-po 5494  df-so 5495  df-fr 5535  df-we 5537  df-xp 5586  df-rel 5587  df-cnv 5588  df-co 5589  df-dm 5590  df-rn 5591  df-res 5592  df-ima 5593  df-pred 6191  df-ord 6254  df-on 6255  df-lim 6256  df-suc 6257  df-iota 6376  df-fun 6420  df-fn 6421  df-f 6422  df-f1 6423  df-fo 6424  df-f1o 6425  df-fv 6426  df-riota 7212  df-ov 7258  df-oprab 7259  df-mpo 7260  df-om 7688  df-1st 7804  df-2nd 7805  df-frecs 8068  df-wrecs 8099  df-recs 8173  df-rdg 8212  df-1o 8267  df-er 8456  df-en 8692  df-dom 8693  df-sdom 8694  df-fin 8695  df-card 9628  df-pnf 10942  df-mnf 10943  df-xr 10944  df-ltxr 10945  df-le 10946  df-sub 11137  df-neg 11138  df-nn 11904  df-n0 12164  df-z 12250  df-uz 12512  df-fz 13169  df-fzo 13312  df-hash 13973  df-word 14146  df-concat 14202
This theorem is referenced by:  cycpmco2f1  31293  cycpmco2rn  31294  mrsubvrs  33384
  Copyright terms: Public domain W3C validator