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

Theorem ccatrn 13225
 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 13218 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
2 lencl 13179 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℕ0)
32adantr 480 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℕ0)
4 nn0uz 11598 . . . . . . . . . . 11 0 = (ℤ‘0)
53, 4syl6eleq 2698 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘0))
63nn0zd 11356 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℤ)
7 uzid 11578 . . . . . . . . . . . 12 ((#‘𝑆) ∈ ℤ → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
86, 7syl 17 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
9 lencl 13179 . . . . . . . . . . . 12 (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈ ℕ0)
109adantl 481 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℕ0)
11 uzaddcl 11620 . . . . . . . . . . 11 (((#‘𝑆) ∈ (ℤ‘(#‘𝑆)) ∧ (#‘𝑇) ∈ ℕ0) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
128, 10, 11syl2anc 691 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
13 elfzuzb 12207 . . . . . . . . . 10 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) ↔ ((#‘𝑆) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆))))
145, 12, 13sylanbrc 695 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))))
15 fzosplit 12370 . . . . . . . . 9 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1614, 15syl 17 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1716eleq2d 2673 . . . . . . 7 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ 𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
18 elun 3715 . . . . . . 7 (𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1917, 18syl6bb 275 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
20 ccatval1 13214 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
21203expa 1257 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
22 ssun1 3738 . . . . . . . . . 10 ran 𝑆 ⊆ (ran 𝑆 ∪ ran 𝑇)
23 simpl 472 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 ∈ Word 𝐵)
24 wrdf 13165 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵𝑆:(0..^(#‘𝑆))⟶𝐵)
25 ffn 5958 . . . . . . . . . . . 12 (𝑆:(0..^(#‘𝑆))⟶𝐵𝑆 Fn (0..^(#‘𝑆)))
2623, 24, 253syl 18 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(#‘𝑆)))
27 fnfvelrn 6264 . . . . . . . . . . 11 ((𝑆 Fn (0..^(#‘𝑆)) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2826, 27sylan 487 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2922, 28sseldi 3566 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
3021, 29eqeltrd 2688 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
31 ccatval2 13215 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
32313expa 1257 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
33 ssun2 3739 . . . . . . . . . 10 ran 𝑇 ⊆ (ran 𝑆 ∪ ran 𝑇)
34 simpr 476 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 ∈ Word 𝐵)
35 wrdf 13165 . . . . . . . . . . . . 13 (𝑇 ∈ Word 𝐵𝑇:(0..^(#‘𝑇))⟶𝐵)
36 ffn 5958 . . . . . . . . . . . . 13 (𝑇:(0..^(#‘𝑇))⟶𝐵𝑇 Fn (0..^(#‘𝑇)))
3734, 35, 363syl 18 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 Fn (0..^(#‘𝑇)))
3837adantr 480 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑇 Fn (0..^(#‘𝑇)))
39 elfzouz 12343 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
4039adantl 481 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
41 uznn0sub 11595 . . . . . . . . . . . . . 14 (𝑥 ∈ (ℤ‘(#‘𝑆)) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4240, 41syl 17 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4342, 4syl6eleq 2698 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (ℤ‘0))
4410nn0zd 11356 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℤ)
4544adantr 480 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℤ)
46 elfzolt2 12348 . . . . . . . . . . . . . 14 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
4746adantl 481 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
48 elfzoelz 12339 . . . . . . . . . . . . . . . 16 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ ℤ)
4948adantl 481 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℤ)
5049zred 11358 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℝ)
516adantr 480 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℤ)
5251zred 11358 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℝ)
5345zred 11358 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℝ)
5450, 52, 53ltsubadd2d 10504 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑥 − (#‘𝑆)) < (#‘𝑇) ↔ 𝑥 < ((#‘𝑆) + (#‘𝑇))))
5547, 54mpbird 246 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) < (#‘𝑇))
56 elfzo2 12342 . . . . . . . . . . . 12 ((𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)) ↔ ((𝑥 − (#‘𝑆)) ∈ (ℤ‘0) ∧ (#‘𝑇) ∈ ℤ ∧ (𝑥 − (#‘𝑆)) < (#‘𝑇)))
5743, 45, 55, 56syl3anbrc 1239 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)))
58 fnfvelrn 6264 . . . . . . . . . . 11 ((𝑇 Fn (0..^(#‘𝑇)) ∧ (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
5938, 57, 58syl2anc 691 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
6033, 59sseldi 3566 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ (ran 𝑆 ∪ ran 𝑇))
6132, 60eqeltrd 2688 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6230, 61jaodan 822 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6362ex 449 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6419, 63sylbid 229 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6564ralrimiv 2948 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
66 ffnfv 6295 . . . 4 ((𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) ↔ ((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
671, 65, 66sylanbrc 695 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇))
68 frn 5966 . . 3 ((𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
6967, 68syl 17 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
701adantr 480 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
71 fzoss2 12365 . . . . . . . . . 10 (((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7212, 71syl 17 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7372sselda 3568 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))))
74 fnfvelrn 6264 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7570, 73, 74syl2anc 691 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7621, 75eqeltrrd 2689 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
7776ralrimiva 2949 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
78 ffnfv 6295 . . . . 5 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) ↔ (𝑆 Fn (0..^(#‘𝑆)) ∧ ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇)))
7926, 77, 78sylanbrc 695 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇))
80 frn 5966 . . . 4 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
8179, 80syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
82 ccatval3 13216 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
83823expa 1257 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
841adantr 480 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
85 elfzouz 12343 . . . . . . . . . . . . 13 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 ∈ (ℤ‘0))
8685adantl 481 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ (ℤ‘0))
8786, 4syl6eleqr 2699 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℕ0)
883adantr 480 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℕ0)
8987, 88nn0addcld 11232 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ ℕ0)
9089, 4syl6eleq 2698 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (ℤ‘0))
913, 10nn0addcld 11232 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℕ0)
9291nn0zd 11356 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9392adantr 480 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9487nn0cnd 11230 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℂ)
9588nn0cnd 11230 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℂ)
9694, 95addcomd 10117 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) = ((#‘𝑆) + 𝑥))
9787nn0red 11229 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℝ)
9810adantr 480 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℕ0)
9998nn0red 11229 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℝ)
10088nn0red 11229 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℝ)
101 elfzolt2 12348 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 < (#‘𝑇))
102101adantl 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 < (#‘𝑇))
10397, 99, 100, 102ltadd2dd 10075 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + 𝑥) < ((#‘𝑆) + (#‘𝑇)))
10496, 103eqbrtrd 4605 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇)))
105 elfzo2 12342 . . . . . . . . 9 ((𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ ((𝑥 + (#‘𝑆)) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ ℤ ∧ (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇))))
10690, 93, 104, 105syl3anbrc 1239 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))))
107 fnfvelrn 6264 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10884, 106, 107syl2anc 691 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10983, 108eqeltrrd 2689 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
110109ralrimiva 2949 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
111 ffnfv 6295 . . . . 5 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) ↔ (𝑇 Fn (0..^(#‘𝑇)) ∧ ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇)))
11237, 110, 111sylanbrc 695 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇))
113 frn 5966 . . . 4 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
114112, 113syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
11581, 114unssd 3751 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (ran 𝑆 ∪ ran 𝑇) ⊆ ran (𝑆 ++ 𝑇))
11669, 115eqssd 3585 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ∨ wo 382   ∧ wa 383   = wceq 1475   ∈ wcel 1977  ∀wral 2896   ∪ cun 3538   ⊆ wss 3540   class class class wbr 4583  ran crn 5039   Fn wfn 5799  ⟶wf 5800  ‘cfv 5804  (class class class)co 6549  0cc0 9815   + caddc 9818   < clt 9953   − cmin 10145  ℕ0cn0 11169  ℤcz 11254  ℤ≥cuz 11563  ...cfz 12197  ..^cfzo 12334  #chash 12979  Word cword 13146   ++ cconcat 13148 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 This theorem is referenced by:  mrsubvrs  30673
 Copyright terms: Public domain W3C validator