MPE Home 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