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

Theorem ccatrn 13407
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 13399 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
2 lencl 13356 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℕ0)
32adantr 480 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℕ0)
4 nn0uz 11760 . . . . . . . . . . 11 0 = (ℤ‘0)
53, 4syl6eleq 2740 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘0))
63nn0zd 11518 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℤ)
7 uzid 11740 . . . . . . . . . . . 12 ((#‘𝑆) ∈ ℤ → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
86, 7syl 17 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
9 lencl 13356 . . . . . . . . . . . 12 (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈ ℕ0)
109adantl 481 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℕ0)
11 uzaddcl 11782 . . . . . . . . . . 11 (((#‘𝑆) ∈ (ℤ‘(#‘𝑆)) ∧ (#‘𝑇) ∈ ℕ0) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
128, 10, 11syl2anc 694 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
13 elfzuzb 12374 . . . . . . . . . 10 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) ↔ ((#‘𝑆) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆))))
145, 12, 13sylanbrc 699 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))))
15 fzosplit 12540 . . . . . . . . 9 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1614, 15syl 17 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1716eleq2d 2716 . . . . . . 7 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ 𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
18 elun 3786 . . . . . . 7 (𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1917, 18syl6bb 276 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
20 ccatval1 13395 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
21203expa 1284 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
22 ssun1 3809 . . . . . . . . . 10 ran 𝑆 ⊆ (ran 𝑆 ∪ ran 𝑇)
23 simpl 472 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 ∈ Word 𝐵)
24 wrdf 13342 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵𝑆:(0..^(#‘𝑆))⟶𝐵)
25 ffn 6083 . . . . . . . . . . . 12 (𝑆:(0..^(#‘𝑆))⟶𝐵𝑆 Fn (0..^(#‘𝑆)))
2623, 24, 253syl 18 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(#‘𝑆)))
27 fnfvelrn 6396 . . . . . . . . . . 11 ((𝑆 Fn (0..^(#‘𝑆)) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2826, 27sylan 487 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2922, 28sseldi 3634 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
3021, 29eqeltrd 2730 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
31 ccatval2 13396 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
32313expa 1284 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
33 ssun2 3810 . . . . . . . . . 10 ran 𝑇 ⊆ (ran 𝑆 ∪ ran 𝑇)
34 simpr 476 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 ∈ Word 𝐵)
35 wrdf 13342 . . . . . . . . . . . . 13 (𝑇 ∈ Word 𝐵𝑇:(0..^(#‘𝑇))⟶𝐵)
36 ffn 6083 . . . . . . . . . . . . 13 (𝑇:(0..^(#‘𝑇))⟶𝐵𝑇 Fn (0..^(#‘𝑇)))
3734, 35, 363syl 18 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 Fn (0..^(#‘𝑇)))
3837adantr 480 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑇 Fn (0..^(#‘𝑇)))
39 elfzouz 12513 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
4039adantl 481 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
41 uznn0sub 11757 . . . . . . . . . . . . . 14 (𝑥 ∈ (ℤ‘(#‘𝑆)) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4240, 41syl 17 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4342, 4syl6eleq 2740 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (ℤ‘0))
4410nn0zd 11518 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℤ)
4544adantr 480 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℤ)
46 elfzolt2 12518 . . . . . . . . . . . . . 14 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
4746adantl 481 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
48 elfzoelz 12509 . . . . . . . . . . . . . . . 16 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ ℤ)
4948adantl 481 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℤ)
5049zred 11520 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℝ)
516adantr 480 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℤ)
5251zred 11520 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℝ)
5345zred 11520 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℝ)
5450, 52, 53ltsubadd2d 10663 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑥 − (#‘𝑆)) < (#‘𝑇) ↔ 𝑥 < ((#‘𝑆) + (#‘𝑇))))
5547, 54mpbird 247 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) < (#‘𝑇))
56 elfzo2 12512 . . . . . . . . . . . 12 ((𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)) ↔ ((𝑥 − (#‘𝑆)) ∈ (ℤ‘0) ∧ (#‘𝑇) ∈ ℤ ∧ (𝑥 − (#‘𝑆)) < (#‘𝑇)))
5743, 45, 55, 56syl3anbrc 1265 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)))
58 fnfvelrn 6396 . . . . . . . . . . 11 ((𝑇 Fn (0..^(#‘𝑇)) ∧ (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
5938, 57, 58syl2anc 694 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
6033, 59sseldi 3634 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ (ran 𝑆 ∪ ran 𝑇))
6132, 60eqeltrd 2730 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6230, 61jaodan 843 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6362ex 449 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6419, 63sylbid 230 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6564ralrimiv 2994 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
66 ffnfv 6428 . . . 4 ((𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) ↔ ((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
671, 65, 66sylanbrc 699 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇))
68 frn 6091 . . 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 12535 . . . . . . . . . 10 (((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7212, 71syl 17 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7372sselda 3636 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))))
74 fnfvelrn 6396 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7570, 73, 74syl2anc 694 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7621, 75eqeltrrd 2731 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
7776ralrimiva 2995 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
78 ffnfv 6428 . . . . 5 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) ↔ (𝑆 Fn (0..^(#‘𝑆)) ∧ ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇)))
7926, 77, 78sylanbrc 699 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇))
80 frn 6091 . . . 4 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
8179, 80syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
82 ccatval3 13397 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
83823expa 1284 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
841adantr 480 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
85 elfzouz 12513 . . . . . . . . . . . . 13 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 ∈ (ℤ‘0))
8685adantl 481 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ (ℤ‘0))
8786, 4syl6eleqr 2741 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℕ0)
883adantr 480 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℕ0)
8987, 88nn0addcld 11393 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ ℕ0)
9089, 4syl6eleq 2740 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (ℤ‘0))
913, 10nn0addcld 11393 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℕ0)
9291nn0zd 11518 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9392adantr 480 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9487nn0cnd 11391 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℂ)
9588nn0cnd 11391 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℂ)
9694, 95addcomd 10276 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) = ((#‘𝑆) + 𝑥))
9787nn0red 11390 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℝ)
9810adantr 480 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℕ0)
9998nn0red 11390 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℝ)
10088nn0red 11390 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℝ)
101 elfzolt2 12518 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 < (#‘𝑇))
102101adantl 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 < (#‘𝑇))
10397, 99, 100, 102ltadd2dd 10234 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + 𝑥) < ((#‘𝑆) + (#‘𝑇)))
10496, 103eqbrtrd 4707 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇)))
105 elfzo2 12512 . . . . . . . . 9 ((𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ ((𝑥 + (#‘𝑆)) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ ℤ ∧ (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇))))
10690, 93, 104, 105syl3anbrc 1265 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))))
107 fnfvelrn 6396 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10884, 106, 107syl2anc 694 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10983, 108eqeltrrd 2731 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
110109ralrimiva 2995 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
111 ffnfv 6428 . . . . 5 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) ↔ (𝑇 Fn (0..^(#‘𝑇)) ∧ ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇)))
11237, 110, 111sylanbrc 699 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇))
113 frn 6091 . . . 4 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
114112, 113syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
11581, 114unssd 3822 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (ran 𝑆 ∪ ran 𝑇) ⊆ ran (𝑆 ++ 𝑇))
11669, 115eqssd 3653 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wo 382  wa 383   = wceq 1523  wcel 2030  wral 2941  cun 3605  wss 3607   class class class wbr 4685  ran crn 5144   Fn wfn 5921  wf 5922  cfv 5926  (class class class)co 6690  0cc0 9974   + caddc 9977   < clt 10112  cmin 10304  0cn0 11330  cz 11415  cuz 11725  ...cfz 12364  ..^cfzo 12504  #chash 13157  Word cword 13323   ++ cconcat 13325
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-1st 7210  df-2nd 7211  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-oadd 7609  df-er 7787  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-card 8803  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-nn 11059  df-n0 11331  df-z 11416  df-uz 11726  df-fz 12365  df-fzo 12505  df-hash 13158  df-word 13331  df-concat 13333
This theorem is referenced by:  mrsubvrs  31545
  Copyright terms: Public domain W3C validator