Metamath Proof Explorer


Theorem ccatrn

Description: The range of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015)

Ref Expression
Assertion ccatrn SWordBTWordBranS++T=ranSranT

Proof

Step Hyp Ref Expression
1 ccatvalfn SWordBTWordBS++TFn0..^S+T
2 lencl SWordBS0
3 nn0uz 0=0
4 2 3 eleqtrdi SWordBS0
5 4 adantr SWordBTWordBS0
6 2 nn0zd SWordBS
7 6 uzidd SWordBSS
8 lencl TWordBT0
9 uzaddcl SST0S+TS
10 7 8 9 syl2an SWordBTWordBS+TS
11 elfzuzb S0S+TS0S+TS
12 5 10 11 sylanbrc SWordBTWordBS0S+T
13 fzosplit S0S+T0..^S+T=0..^SS..^S+T
14 12 13 syl SWordBTWordB0..^S+T=0..^SS..^S+T
15 14 eleq2d SWordBTWordBx0..^S+Tx0..^SS..^S+T
16 elun x0..^SS..^S+Tx0..^SxS..^S+T
17 15 16 bitrdi SWordBTWordBx0..^S+Tx0..^SxS..^S+T
18 ccatval1 SWordBTWordBx0..^SS++Tx=Sx
19 18 3expa SWordBTWordBx0..^SS++Tx=Sx
20 ssun1 ranSranSranT
21 wrdfn SWordBSFn0..^S
22 21 adantr SWordBTWordBSFn0..^S
23 fnfvelrn SFn0..^Sx0..^SSxranS
24 22 23 sylan SWordBTWordBx0..^SSxranS
25 20 24 sselid SWordBTWordBx0..^SSxranSranT
26 19 25 eqeltrd SWordBTWordBx0..^SS++TxranSranT
27 ccatval2 SWordBTWordBxS..^S+TS++Tx=TxS
28 27 3expa SWordBTWordBxS..^S+TS++Tx=TxS
29 ssun2 ranTranSranT
30 wrdfn TWordBTFn0..^T
31 30 adantl SWordBTWordBTFn0..^T
32 elfzouz xS..^S+TxS
33 uznn0sub xSxS0
34 32 33 syl xS..^S+TxS0
35 34 3 eleqtrdi xS..^S+TxS0
36 35 adantl SWordBTWordBxS..^S+TxS0
37 8 nn0zd TWordBT
38 37 ad2antlr SWordBTWordBxS..^S+TT
39 elfzolt2 xS..^S+Tx<S+T
40 39 adantl SWordBTWordBxS..^S+Tx<S+T
41 elfzoelz xS..^S+Tx
42 41 zred xS..^S+Tx
43 42 adantl SWordBTWordBxS..^S+Tx
44 2 nn0red SWordBS
45 44 ad2antrr SWordBTWordBxS..^S+TS
46 8 nn0red TWordBT
47 46 ad2antlr SWordBTWordBxS..^S+TT
48 43 45 47 ltsubadd2d SWordBTWordBxS..^S+TxS<Tx<S+T
49 40 48 mpbird SWordBTWordBxS..^S+TxS<T
50 elfzo2 xS0..^TxS0TxS<T
51 36 38 49 50 syl3anbrc SWordBTWordBxS..^S+TxS0..^T
52 fnfvelrn TFn0..^TxS0..^TTxSranT
53 31 51 52 syl2an2r SWordBTWordBxS..^S+TTxSranT
54 29 53 sselid SWordBTWordBxS..^S+TTxSranSranT
55 28 54 eqeltrd SWordBTWordBxS..^S+TS++TxranSranT
56 26 55 jaodan SWordBTWordBx0..^SxS..^S+TS++TxranSranT
57 56 ex SWordBTWordBx0..^SxS..^S+TS++TxranSranT
58 17 57 sylbid SWordBTWordBx0..^S+TS++TxranSranT
59 58 ralrimiv SWordBTWordBx0..^S+TS++TxranSranT
60 ffnfv S++T:0..^S+TranSranTS++TFn0..^S+Tx0..^S+TS++TxranSranT
61 1 59 60 sylanbrc SWordBTWordBS++T:0..^S+TranSranT
62 61 frnd SWordBTWordBranS++TranSranT
63 fzoss2 S+TS0..^S0..^S+T
64 10 63 syl SWordBTWordB0..^S0..^S+T
65 64 sselda SWordBTWordBx0..^Sx0..^S+T
66 fnfvelrn S++TFn0..^S+Tx0..^S+TS++TxranS++T
67 1 65 66 syl2an2r SWordBTWordBx0..^SS++TxranS++T
68 19 67 eqeltrrd SWordBTWordBx0..^SSxranS++T
69 68 ralrimiva SWordBTWordBx0..^SSxranS++T
70 ffnfv S:0..^SranS++TSFn0..^Sx0..^SSxranS++T
71 22 69 70 sylanbrc SWordBTWordBS:0..^SranS++T
72 71 frnd SWordBTWordBranSranS++T
73 ccatval3 SWordBTWordBx0..^TS++Tx+S=Tx
74 73 3expa SWordBTWordBx0..^TS++Tx+S=Tx
75 elfzouz x0..^Tx0
76 2 adantr SWordBTWordBS0
77 uzaddcl x0S0x+S0
78 75 76 77 syl2anr SWordBTWordBx0..^Tx+S0
79 nn0addcl S0T0S+T0
80 2 8 79 syl2an SWordBTWordBS+T0
81 80 nn0zd SWordBTWordBS+T
82 81 adantr SWordBTWordBx0..^TS+T
83 elfzonn0 x0..^Tx0
84 83 nn0cnd x0..^Tx
85 2 nn0cnd SWordBS
86 85 adantr SWordBTWordBS
87 addcom xSx+S=S+x
88 84 86 87 syl2anr SWordBTWordBx0..^Tx+S=S+x
89 83 nn0red x0..^Tx
90 89 adantl SWordBTWordBx0..^Tx
91 46 ad2antlr SWordBTWordBx0..^TT
92 44 ad2antrr SWordBTWordBx0..^TS
93 elfzolt2 x0..^Tx<T
94 93 adantl SWordBTWordBx0..^Tx<T
95 90 91 92 94 ltadd2dd SWordBTWordBx0..^TS+x<S+T
96 88 95 eqbrtrd SWordBTWordBx0..^Tx+S<S+T
97 elfzo2 x+S0..^S+Tx+S0S+Tx+S<S+T
98 78 82 96 97 syl3anbrc SWordBTWordBx0..^Tx+S0..^S+T
99 fnfvelrn S++TFn0..^S+Tx+S0..^S+TS++Tx+SranS++T
100 1 98 99 syl2an2r SWordBTWordBx0..^TS++Tx+SranS++T
101 74 100 eqeltrrd SWordBTWordBx0..^TTxranS++T
102 101 ralrimiva SWordBTWordBx0..^TTxranS++T
103 ffnfv T:0..^TranS++TTFn0..^Tx0..^TTxranS++T
104 31 102 103 sylanbrc SWordBTWordBT:0..^TranS++T
105 104 frnd SWordBTWordBranTranS++T
106 72 105 unssd SWordBTWordBranSranTranS++T
107 62 106 eqssd SWordBTWordBranS++T=ranSranT