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

Theorem ccatrn 13372
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 13365 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
2 lencl 13324 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℕ0)
32adantr 481 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℕ0)
4 nn0uz 11722 . . . . . . . . . . 11 0 = (ℤ‘0)
53, 4syl6eleq 2711 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘0))
63nn0zd 11480 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ ℤ)
7 uzid 11702 . . . . . . . . . . . 12 ((#‘𝑆) ∈ ℤ → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
86, 7syl 17 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (ℤ‘(#‘𝑆)))
9 lencl 13324 . . . . . . . . . . . 12 (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈ ℕ0)
109adantl 482 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℕ0)
11 uzaddcl 11744 . . . . . . . . . . 11 (((#‘𝑆) ∈ (ℤ‘(#‘𝑆)) ∧ (#‘𝑇) ∈ ℕ0) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
128, 10, 11syl2anc 693 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)))
13 elfzuzb 12336 . . . . . . . . . 10 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) ↔ ((#‘𝑆) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆))))
145, 12, 13sylanbrc 698 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))))
15 fzosplit 12501 . . . . . . . . 9 ((#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇))) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1614, 15syl 17 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^((#‘𝑆) + (#‘𝑇))) = ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1716eleq2d 2687 . . . . . . 7 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ 𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
18 elun 3753 . . . . . . 7 (𝑥 ∈ ((0..^(#‘𝑆)) ∪ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))))
1917, 18syl6bb 276 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))))
20 ccatval1 13361 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
21203expa 1265 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑆𝑥))
22 ssun1 3776 . . . . . . . . . 10 ran 𝑆 ⊆ (ran 𝑆 ∪ ran 𝑇)
23 simpl 473 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 ∈ Word 𝐵)
24 wrdf 13310 . . . . . . . . . . . 12 (𝑆 ∈ Word 𝐵𝑆:(0..^(#‘𝑆))⟶𝐵)
25 ffn 6045 . . . . . . . . . . . 12 (𝑆:(0..^(#‘𝑆))⟶𝐵𝑆 Fn (0..^(#‘𝑆)))
2623, 24, 253syl 18 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(#‘𝑆)))
27 fnfvelrn 6356 . . . . . . . . . . 11 ((𝑆 Fn (0..^(#‘𝑆)) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2826, 27sylan 488 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran 𝑆)
2922, 28sseldi 3601 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
3021, 29eqeltrd 2701 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
31 ccatval2 13362 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
32313expa 1265 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) = (𝑇‘(𝑥 − (#‘𝑆))))
33 ssun2 3777 . . . . . . . . . 10 ran 𝑇 ⊆ (ran 𝑆 ∪ ran 𝑇)
34 simpr 477 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 ∈ Word 𝐵)
35 wrdf 13310 . . . . . . . . . . . . 13 (𝑇 ∈ Word 𝐵𝑇:(0..^(#‘𝑇))⟶𝐵)
36 ffn 6045 . . . . . . . . . . . . 13 (𝑇:(0..^(#‘𝑇))⟶𝐵𝑇 Fn (0..^(#‘𝑇)))
3734, 35, 363syl 18 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇 Fn (0..^(#‘𝑇)))
3837adantr 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑇 Fn (0..^(#‘𝑇)))
39 elfzouz 12474 . . . . . . . . . . . . . . 15 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
4039adantl 482 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ (ℤ‘(#‘𝑆)))
41 uznn0sub 11719 . . . . . . . . . . . . . 14 (𝑥 ∈ (ℤ‘(#‘𝑆)) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4240, 41syl 17 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ ℕ0)
4342, 4syl6eleq 2711 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (ℤ‘0))
4410nn0zd 11480 . . . . . . . . . . . . 13 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (#‘𝑇) ∈ ℤ)
4544adantr 481 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℤ)
46 elfzolt2 12479 . . . . . . . . . . . . . 14 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
4746adantl 482 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 < ((#‘𝑆) + (#‘𝑇)))
48 elfzoelz 12470 . . . . . . . . . . . . . . . 16 (𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))) → 𝑥 ∈ ℤ)
4948adantl 482 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℤ)
5049zred 11482 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ ℝ)
516adantr 481 . . . . . . . . . . . . . . 15 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℤ)
5251zred 11482 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑆) ∈ ℝ)
5345zred 11482 . . . . . . . . . . . . . 14 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (#‘𝑇) ∈ ℝ)
5450, 52, 53ltsubadd2d 10625 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑥 − (#‘𝑆)) < (#‘𝑇) ↔ 𝑥 < ((#‘𝑆) + (#‘𝑇))))
5547, 54mpbird 247 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) < (#‘𝑇))
56 elfzo2 12473 . . . . . . . . . . . 12 ((𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)) ↔ ((𝑥 − (#‘𝑆)) ∈ (ℤ‘0) ∧ (#‘𝑇) ∈ ℤ ∧ (𝑥 − (#‘𝑆)) < (#‘𝑇)))
5743, 45, 55, 56syl3anbrc 1246 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)))
58 fnfvelrn 6356 . . . . . . . . . . 11 ((𝑇 Fn (0..^(#‘𝑇)) ∧ (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
5938, 57, 58syl2anc 693 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ ran 𝑇)
6033, 59sseldi 3601 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ (ran 𝑆 ∪ ran 𝑇))
6132, 60eqeltrd 2701 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6230, 61jaodan 826 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ (𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇))))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
6362ex 450 . . . . . 6 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑥 ∈ (0..^(#‘𝑆)) ∨ 𝑥 ∈ ((#‘𝑆)..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6419, 63sylbid 230 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
6564ralrimiv 2965 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇))
66 ffnfv 6388 . . . 4 ((𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) ↔ ((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ ∀𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))((𝑆 ++ 𝑇)‘𝑥) ∈ (ran 𝑆 ∪ ran 𝑇)))
671, 65, 66sylanbrc 698 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇))
68 frn 6053 . . 3 ((𝑆 ++ 𝑇):(0..^((#‘𝑆) + (#‘𝑇)))⟶(ran 𝑆 ∪ ran 𝑇) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
6967, 68syl 17 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) ⊆ (ran 𝑆 ∪ ran 𝑇))
701adantr 481 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
71 fzoss2 12496 . . . . . . . . . 10 (((#‘𝑆) + (#‘𝑇)) ∈ (ℤ‘(#‘𝑆)) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7212, 71syl 17 . . . . . . . . 9 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇))))
7372sselda 3603 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))))
74 fnfvelrn 6356 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7570, 73, 74syl2anc 693 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑥) ∈ ran (𝑆 ++ 𝑇))
7621, 75eqeltrrd 2702 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
7776ralrimiva 2966 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇))
78 ffnfv 6388 . . . . 5 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) ↔ (𝑆 Fn (0..^(#‘𝑆)) ∧ ∀𝑥 ∈ (0..^(#‘𝑆))(𝑆𝑥) ∈ ran (𝑆 ++ 𝑇)))
7926, 77, 78sylanbrc 698 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇))
80 frn 6053 . . . 4 (𝑆:(0..^(#‘𝑆))⟶ran (𝑆 ++ 𝑇) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
8179, 80syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑆 ⊆ ran (𝑆 ++ 𝑇))
82 ccatval3 13363 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
83823expa 1265 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) = (𝑇𝑥))
841adantr 481 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))))
85 elfzouz 12474 . . . . . . . . . . . . 13 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 ∈ (ℤ‘0))
8685adantl 482 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ (ℤ‘0))
8786, 4syl6eleqr 2712 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℕ0)
883adantr 481 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℕ0)
8987, 88nn0addcld 11355 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ ℕ0)
9089, 4syl6eleq 2711 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (ℤ‘0))
913, 10nn0addcld 11355 . . . . . . . . . . 11 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℕ0)
9291nn0zd 11480 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9392adantr 481 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + (#‘𝑇)) ∈ ℤ)
9487nn0cnd 11353 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℂ)
9588nn0cnd 11353 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℂ)
9694, 95addcomd 10238 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) = ((#‘𝑆) + 𝑥))
9787nn0red 11352 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 ∈ ℝ)
9810adantr 481 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℕ0)
9998nn0red 11352 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑇) ∈ ℝ)
10088nn0red 11352 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (#‘𝑆) ∈ ℝ)
101 elfzolt2 12479 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(#‘𝑇)) → 𝑥 < (#‘𝑇))
102101adantl 482 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → 𝑥 < (#‘𝑇))
10397, 99, 100, 102ltadd2dd 10196 . . . . . . . . . 10 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((#‘𝑆) + 𝑥) < ((#‘𝑆) + (#‘𝑇)))
10496, 103eqbrtrd 4675 . . . . . . . . 9 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇)))
105 elfzo2 12473 . . . . . . . . 9 ((𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↔ ((𝑥 + (#‘𝑆)) ∈ (ℤ‘0) ∧ ((#‘𝑆) + (#‘𝑇)) ∈ ℤ ∧ (𝑥 + (#‘𝑆)) < ((#‘𝑆) + (#‘𝑇))))
10690, 93, 104, 105syl3anbrc 1246 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇))))
107 fnfvelrn 6356 . . . . . . . 8 (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ (𝑥 + (#‘𝑆)) ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10884, 106, 107syl2anc 693 . . . . . . 7 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝑥 + (#‘𝑆))) ∈ ran (𝑆 ++ 𝑇))
10983, 108eqeltrrd 2702 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^(#‘𝑇))) → (𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
110109ralrimiva 2966 . . . . 5 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇))
111 ffnfv 6388 . . . . 5 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) ↔ (𝑇 Fn (0..^(#‘𝑇)) ∧ ∀𝑥 ∈ (0..^(#‘𝑇))(𝑇𝑥) ∈ ran (𝑆 ++ 𝑇)))
11237, 110, 111sylanbrc 698 . . . 4 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → 𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇))
113 frn 6053 . . . 4 (𝑇:(0..^(#‘𝑇))⟶ran (𝑆 ++ 𝑇) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
114112, 113syl 17 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran 𝑇 ⊆ ran (𝑆 ++ 𝑇))
11581, 114unssd 3789 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (ran 𝑆 ∪ ran 𝑇) ⊆ ran (𝑆 ++ 𝑇))
11669, 115eqssd 3620 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wo 383  wa 384   = wceq 1483  wcel 1990  wral 2912  cun 3572  wss 3574   class class class wbr 4653  ran crn 5115   Fn wfn 5883  wf 5884  cfv 5888  (class class class)co 6650  0cc0 9936   + caddc 9939   < clt 10074  cmin 10266  0cn0 11292  cz 11377  cuz 11687  ...cfz 12326  ..^cfzo 12465  #chash 13117  Word cword 13291   ++ cconcat 13293
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-oadd 7564  df-er 7742  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-card 8765  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-nn 11021  df-n0 11293  df-z 11378  df-uz 11688  df-fz 12327  df-fzo 12466  df-hash 13118  df-word 13299  df-concat 13301
This theorem is referenced by:  mrsubvrs  31419
  Copyright terms: Public domain W3C validator