Step |
Hyp |
Ref |
Expression |
1 |
|
1arithidom.u |
|- U = ( Unit ` R ) |
2 |
|
1arithidom.i |
|- P = ( RPrime ` R ) |
3 |
|
1arithidom.m |
|- M = ( mulGrp ` R ) |
4 |
|
1arithidom.t |
|- .x. = ( .r ` R ) |
5 |
|
1arithidom.j |
|- J = ( 0 ..^ ( # ` F ) ) |
6 |
|
1arithidom.r |
|- ( ph -> R e. IDomn ) |
7 |
|
1arithidom.f |
|- ( ph -> F e. Word P ) |
8 |
|
1arithidom.g |
|- ( ph -> G e. Word P ) |
9 |
|
1arithidom.1 |
|- ( ph -> ( M gsum F ) = ( M gsum G ) ) |
10 |
|
1arithidomlem.1 |
|- ( ph -> Q e. P ) |
11 |
|
1arithidomlem.2 |
|- ( ph -> A. g e. Word P ( E. k e. U ( M gsum F ) = ( k .x. ( M gsum g ) ) -> E. w E. u e. ( U ^m ( 0 ..^ ( # ` F ) ) ) ( w : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) /\ g = ( u oF .x. ( F o. w ) ) ) ) ) |
12 |
|
1arithidomlem.3 |
|- ( ph -> H e. Word P ) |
13 |
|
1arithidomlem.4 |
|- ( ph -> E. k e. U ( M gsum ( F ++ <" Q "> ) ) = ( k .x. ( M gsum H ) ) ) |
14 |
|
1arithidomlem.5 |
|- ( ph -> K e. ( 0 ..^ ( # ` H ) ) ) |
15 |
|
1arithidomlem.6 |
|- ( ph -> Q ( ||r ` R ) ( H ` K ) ) |
16 |
|
1arithidomlem.7 |
|- ( ph -> T e. U ) |
17 |
|
1arithidomlem.8 |
|- ( ph -> ( T .x. Q ) = ( H ` K ) ) |
18 |
|
1arithidomlem.9 |
|- ( ph -> S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
19 |
|
1arithidomlem.10 |
|- ( ph -> ( H o. S ) = ( ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) ++ <" ( H ` K ) "> ) ) |
20 |
|
1arithidomlem.11 |
|- ( ph -> N e. U ) |
21 |
|
1arithidomlem.12 |
|- ( ph -> ( M gsum ( F ++ <" Q "> ) ) = ( N .x. ( M gsum H ) ) ) |
22 |
|
1arithidomlem.13 |
|- ( ph -> D e. ( U ^m ( 0 ..^ ( # ` F ) ) ) ) |
23 |
|
1arithidomlem.14 |
|- ( ph -> C : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) ) |
24 |
|
1arithidomlem.15 |
|- ( ph -> ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) = ( D oF .x. ( F o. C ) ) ) |
25 |
|
ccatws1len |
|- ( F e. Word P -> ( # ` ( F ++ <" Q "> ) ) = ( ( # ` F ) + 1 ) ) |
26 |
7 25
|
syl |
|- ( ph -> ( # ` ( F ++ <" Q "> ) ) = ( ( # ` F ) + 1 ) ) |
27 |
24
|
dmeqd |
|- ( ph -> dom ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) = dom ( D oF .x. ( F o. C ) ) ) |
28 |
|
f1of |
|- ( S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) -> S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
29 |
|
iswrdi |
|- ( S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) -> S e. Word ( 0 ..^ ( # ` H ) ) ) |
30 |
18 28 29
|
3syl |
|- ( ph -> S e. Word ( 0 ..^ ( # ` H ) ) ) |
31 |
|
eqidd |
|- ( ph -> ( # ` H ) = ( # ` H ) ) |
32 |
31 12
|
wrdfd |
|- ( ph -> H : ( 0 ..^ ( # ` H ) ) --> P ) |
33 |
|
wrdco |
|- ( ( S e. Word ( 0 ..^ ( # ` H ) ) /\ H : ( 0 ..^ ( # ` H ) ) --> P ) -> ( H o. S ) e. Word P ) |
34 |
30 32 33
|
syl2anc |
|- ( ph -> ( H o. S ) e. Word P ) |
35 |
|
elfzo0 |
|- ( K e. ( 0 ..^ ( # ` H ) ) <-> ( K e. NN0 /\ ( # ` H ) e. NN /\ K < ( # ` H ) ) ) |
36 |
35
|
simp2bi |
|- ( K e. ( 0 ..^ ( # ` H ) ) -> ( # ` H ) e. NN ) |
37 |
|
nnm1nn0 |
|- ( ( # ` H ) e. NN -> ( ( # ` H ) - 1 ) e. NN0 ) |
38 |
14 36 37
|
3syl |
|- ( ph -> ( ( # ` H ) - 1 ) e. NN0 ) |
39 |
|
lenco |
|- ( ( S e. Word ( 0 ..^ ( # ` H ) ) /\ H : ( 0 ..^ ( # ` H ) ) --> P ) -> ( # ` ( H o. S ) ) = ( # ` S ) ) |
40 |
30 32 39
|
syl2anc |
|- ( ph -> ( # ` ( H o. S ) ) = ( # ` S ) ) |
41 |
|
lencl |
|- ( S e. Word ( 0 ..^ ( # ` H ) ) -> ( # ` S ) e. NN0 ) |
42 |
30 41
|
syl |
|- ( ph -> ( # ` S ) e. NN0 ) |
43 |
40 42
|
eqeltrd |
|- ( ph -> ( # ` ( H o. S ) ) e. NN0 ) |
44 |
|
lencl |
|- ( H e. Word P -> ( # ` H ) e. NN0 ) |
45 |
12 44
|
syl |
|- ( ph -> ( # ` H ) e. NN0 ) |
46 |
45
|
nn0red |
|- ( ph -> ( # ` H ) e. RR ) |
47 |
46
|
lem1d |
|- ( ph -> ( ( # ` H ) - 1 ) <_ ( # ` H ) ) |
48 |
18 28
|
syl |
|- ( ph -> S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
49 |
|
ffn |
|- ( S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) -> S Fn ( 0 ..^ ( # ` H ) ) ) |
50 |
|
hashfn |
|- ( S Fn ( 0 ..^ ( # ` H ) ) -> ( # ` S ) = ( # ` ( 0 ..^ ( # ` H ) ) ) ) |
51 |
48 49 50
|
3syl |
|- ( ph -> ( # ` S ) = ( # ` ( 0 ..^ ( # ` H ) ) ) ) |
52 |
|
hashfzo0 |
|- ( ( # ` H ) e. NN0 -> ( # ` ( 0 ..^ ( # ` H ) ) ) = ( # ` H ) ) |
53 |
12 44 52
|
3syl |
|- ( ph -> ( # ` ( 0 ..^ ( # ` H ) ) ) = ( # ` H ) ) |
54 |
40 51 53
|
3eqtrrd |
|- ( ph -> ( # ` H ) = ( # ` ( H o. S ) ) ) |
55 |
47 54
|
breqtrd |
|- ( ph -> ( ( # ` H ) - 1 ) <_ ( # ` ( H o. S ) ) ) |
56 |
|
elfz2nn0 |
|- ( ( ( # ` H ) - 1 ) e. ( 0 ... ( # ` ( H o. S ) ) ) <-> ( ( ( # ` H ) - 1 ) e. NN0 /\ ( # ` ( H o. S ) ) e. NN0 /\ ( ( # ` H ) - 1 ) <_ ( # ` ( H o. S ) ) ) ) |
57 |
38 43 55 56
|
syl3anbrc |
|- ( ph -> ( ( # ` H ) - 1 ) e. ( 0 ... ( # ` ( H o. S ) ) ) ) |
58 |
|
pfxfn |
|- ( ( ( H o. S ) e. Word P /\ ( ( # ` H ) - 1 ) e. ( 0 ... ( # ` ( H o. S ) ) ) ) -> ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) Fn ( 0 ..^ ( ( # ` H ) - 1 ) ) ) |
59 |
34 57 58
|
syl2anc |
|- ( ph -> ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) Fn ( 0 ..^ ( ( # ` H ) - 1 ) ) ) |
60 |
59
|
fndmd |
|- ( ph -> dom ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) = ( 0 ..^ ( ( # ` H ) - 1 ) ) ) |
61 |
|
eqid |
|- ( Base ` R ) = ( Base ` R ) |
62 |
6
|
idomringd |
|- ( ph -> R e. Ring ) |
63 |
62
|
adantr |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> R e. Ring ) |
64 |
61 1
|
unitcl |
|- ( x e. U -> x e. ( Base ` R ) ) |
65 |
64
|
ad2antrl |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> x e. ( Base ` R ) ) |
66 |
6
|
adantr |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> R e. IDomn ) |
67 |
|
simprr |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> y e. P ) |
68 |
61 2 66 67
|
rprmcl |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> y e. ( Base ` R ) ) |
69 |
61 4 63 65 68
|
ringcld |
|- ( ( ph /\ ( x e. U /\ y e. P ) ) -> ( x .x. y ) e. ( Base ` R ) ) |
70 |
|
elmapi |
|- ( D e. ( U ^m ( 0 ..^ ( # ` F ) ) ) -> D : ( 0 ..^ ( # ` F ) ) --> U ) |
71 |
22 70
|
syl |
|- ( ph -> D : ( 0 ..^ ( # ` F ) ) --> U ) |
72 |
|
eqidd |
|- ( ph -> ( # ` F ) = ( # ` F ) ) |
73 |
72 7
|
wrdfd |
|- ( ph -> F : ( 0 ..^ ( # ` F ) ) --> P ) |
74 |
|
f1of |
|- ( C : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) -> C : ( 0 ..^ ( # ` F ) ) --> ( 0 ..^ ( # ` F ) ) ) |
75 |
23 74
|
syl |
|- ( ph -> C : ( 0 ..^ ( # ` F ) ) --> ( 0 ..^ ( # ` F ) ) ) |
76 |
73 75
|
fcod |
|- ( ph -> ( F o. C ) : ( 0 ..^ ( # ` F ) ) --> P ) |
77 |
|
ovexd |
|- ( ph -> ( 0 ..^ ( # ` F ) ) e. _V ) |
78 |
|
inidm |
|- ( ( 0 ..^ ( # ` F ) ) i^i ( 0 ..^ ( # ` F ) ) ) = ( 0 ..^ ( # ` F ) ) |
79 |
69 71 76 77 77 78
|
off |
|- ( ph -> ( D oF .x. ( F o. C ) ) : ( 0 ..^ ( # ` F ) ) --> ( Base ` R ) ) |
80 |
79
|
fdmd |
|- ( ph -> dom ( D oF .x. ( F o. C ) ) = ( 0 ..^ ( # ` F ) ) ) |
81 |
27 60 80
|
3eqtr3d |
|- ( ph -> ( 0 ..^ ( ( # ` H ) - 1 ) ) = ( 0 ..^ ( # ` F ) ) ) |
82 |
|
lencl |
|- ( F e. Word P -> ( # ` F ) e. NN0 ) |
83 |
7 82
|
syl |
|- ( ph -> ( # ` F ) e. NN0 ) |
84 |
38 83
|
fzo0opth |
|- ( ph -> ( ( 0 ..^ ( ( # ` H ) - 1 ) ) = ( 0 ..^ ( # ` F ) ) <-> ( ( # ` H ) - 1 ) = ( # ` F ) ) ) |
85 |
81 84
|
mpbid |
|- ( ph -> ( ( # ` H ) - 1 ) = ( # ` F ) ) |
86 |
85
|
oveq1d |
|- ( ph -> ( ( ( # ` H ) - 1 ) + 1 ) = ( ( # ` F ) + 1 ) ) |
87 |
14 36
|
syl |
|- ( ph -> ( # ` H ) e. NN ) |
88 |
87
|
nncnd |
|- ( ph -> ( # ` H ) e. CC ) |
89 |
|
npcan1 |
|- ( ( # ` H ) e. CC -> ( ( ( # ` H ) - 1 ) + 1 ) = ( # ` H ) ) |
90 |
88 89
|
syl |
|- ( ph -> ( ( ( # ` H ) - 1 ) + 1 ) = ( # ` H ) ) |
91 |
86 90
|
eqtr3d |
|- ( ph -> ( ( # ` F ) + 1 ) = ( # ` H ) ) |
92 |
26 91
|
eqtrd |
|- ( ph -> ( # ` ( F ++ <" Q "> ) ) = ( # ` H ) ) |
93 |
92
|
oveq2d |
|- ( ph -> ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) = ( 0 ..^ ( # ` H ) ) ) |
94 |
|
eqid |
|- ( # ` C ) = ( # ` C ) |
95 |
|
eqid |
|- ( 0 ..^ ( ( # ` C ) + 1 ) ) = ( 0 ..^ ( ( # ` C ) + 1 ) ) |
96 |
|
f1ofn |
|- ( C : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) -> C Fn ( 0 ..^ ( # ` F ) ) ) |
97 |
|
hashfn |
|- ( C Fn ( 0 ..^ ( # ` F ) ) -> ( # ` C ) = ( # ` ( 0 ..^ ( # ` F ) ) ) ) |
98 |
23 96 97
|
3syl |
|- ( ph -> ( # ` C ) = ( # ` ( 0 ..^ ( # ` F ) ) ) ) |
99 |
|
hashfzo0 |
|- ( ( # ` F ) e. NN0 -> ( # ` ( 0 ..^ ( # ` F ) ) ) = ( # ` F ) ) |
100 |
83 99
|
syl |
|- ( ph -> ( # ` ( 0 ..^ ( # ` F ) ) ) = ( # ` F ) ) |
101 |
98 100
|
eqtrd |
|- ( ph -> ( # ` C ) = ( # ` F ) ) |
102 |
101
|
oveq2d |
|- ( ph -> ( 0 ..^ ( # ` C ) ) = ( 0 ..^ ( # ` F ) ) ) |
103 |
|
f1oeq23 |
|- ( ( ( 0 ..^ ( # ` C ) ) = ( 0 ..^ ( # ` F ) ) /\ ( 0 ..^ ( # ` C ) ) = ( 0 ..^ ( # ` F ) ) ) -> ( C : ( 0 ..^ ( # ` C ) ) -1-1-onto-> ( 0 ..^ ( # ` C ) ) <-> C : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) ) ) |
104 |
103
|
biimpar |
|- ( ( ( ( 0 ..^ ( # ` C ) ) = ( 0 ..^ ( # ` F ) ) /\ ( 0 ..^ ( # ` C ) ) = ( 0 ..^ ( # ` F ) ) ) /\ C : ( 0 ..^ ( # ` F ) ) -1-1-onto-> ( 0 ..^ ( # ` F ) ) ) -> C : ( 0 ..^ ( # ` C ) ) -1-1-onto-> ( 0 ..^ ( # ` C ) ) ) |
105 |
102 102 23 104
|
syl21anc |
|- ( ph -> C : ( 0 ..^ ( # ` C ) ) -1-1-onto-> ( 0 ..^ ( # ` C ) ) ) |
106 |
94 95 105
|
ccatws1f1o |
|- ( ph -> ( C ++ <" ( # ` C ) "> ) : ( 0 ..^ ( ( # ` C ) + 1 ) ) -1-1-onto-> ( 0 ..^ ( ( # ` C ) + 1 ) ) ) |
107 |
101
|
s1eqd |
|- ( ph -> <" ( # ` C ) "> = <" ( # ` F ) "> ) |
108 |
107
|
oveq2d |
|- ( ph -> ( C ++ <" ( # ` C ) "> ) = ( C ++ <" ( # ` F ) "> ) ) |
109 |
101
|
oveq1d |
|- ( ph -> ( ( # ` C ) + 1 ) = ( ( # ` F ) + 1 ) ) |
110 |
109 91
|
eqtrd |
|- ( ph -> ( ( # ` C ) + 1 ) = ( # ` H ) ) |
111 |
110
|
oveq2d |
|- ( ph -> ( 0 ..^ ( ( # ` C ) + 1 ) ) = ( 0 ..^ ( # ` H ) ) ) |
112 |
108 111 111
|
f1oeq123d |
|- ( ph -> ( ( C ++ <" ( # ` C ) "> ) : ( 0 ..^ ( ( # ` C ) + 1 ) ) -1-1-onto-> ( 0 ..^ ( ( # ` C ) + 1 ) ) <-> ( C ++ <" ( # ` F ) "> ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) ) |
113 |
106 112
|
mpbid |
|- ( ph -> ( C ++ <" ( # ` F ) "> ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
114 |
|
f1ocnv |
|- ( S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) -> `' S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
115 |
18 114
|
syl |
|- ( ph -> `' S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
116 |
|
f1oco |
|- ( ( ( C ++ <" ( # ` F ) "> ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) /\ `' S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) -> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
117 |
113 115 116
|
syl2anc |
|- ( ph -> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) |
118 |
|
f1oeq23 |
|- ( ( ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) = ( 0 ..^ ( # ` H ) ) /\ ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) = ( 0 ..^ ( # ` H ) ) ) -> ( ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) -1-1-onto-> ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) <-> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) ) |
119 |
118
|
biimpar |
|- ( ( ( ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) = ( 0 ..^ ( # ` H ) ) /\ ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) = ( 0 ..^ ( # ` H ) ) ) /\ ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) ) -> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) -1-1-onto-> ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) ) |
120 |
93 93 117 119
|
syl21anc |
|- ( ph -> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) -1-1-onto-> ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) ) |
121 |
|
f1ofo |
|- ( S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) -> S : ( 0 ..^ ( # ` H ) ) -onto-> ( 0 ..^ ( # ` H ) ) ) |
122 |
18 121
|
syl |
|- ( ph -> S : ( 0 ..^ ( # ` H ) ) -onto-> ( 0 ..^ ( # ` H ) ) ) |
123 |
32
|
ffnd |
|- ( ph -> H Fn ( 0 ..^ ( # ` H ) ) ) |
124 |
|
iswrdi |
|- ( D : ( 0 ..^ ( # ` F ) ) --> U -> D e. Word U ) |
125 |
71 124
|
syl |
|- ( ph -> D e. Word U ) |
126 |
|
ccatws1len |
|- ( D e. Word U -> ( # ` ( D ++ <" T "> ) ) = ( ( # ` D ) + 1 ) ) |
127 |
125 126
|
syl |
|- ( ph -> ( # ` ( D ++ <" T "> ) ) = ( ( # ` D ) + 1 ) ) |
128 |
|
elmapfn |
|- ( D e. ( U ^m ( 0 ..^ ( # ` F ) ) ) -> D Fn ( 0 ..^ ( # ` F ) ) ) |
129 |
|
hashfn |
|- ( D Fn ( 0 ..^ ( # ` F ) ) -> ( # ` D ) = ( # ` ( 0 ..^ ( # ` F ) ) ) ) |
130 |
22 128 129
|
3syl |
|- ( ph -> ( # ` D ) = ( # ` ( 0 ..^ ( # ` F ) ) ) ) |
131 |
130 100
|
eqtrd |
|- ( ph -> ( # ` D ) = ( # ` F ) ) |
132 |
131
|
oveq1d |
|- ( ph -> ( ( # ` D ) + 1 ) = ( ( # ` F ) + 1 ) ) |
133 |
127 132 91
|
3eqtrd |
|- ( ph -> ( # ` ( D ++ <" T "> ) ) = ( # ` H ) ) |
134 |
133
|
oveq2d |
|- ( ph -> ( 0 ..^ ( # ` ( D ++ <" T "> ) ) ) = ( 0 ..^ ( # ` H ) ) ) |
135 |
|
eqidd |
|- ( ph -> ( # ` ( D ++ <" T "> ) ) = ( # ` ( D ++ <" T "> ) ) ) |
136 |
|
ccatws1cl |
|- ( ( D e. Word U /\ T e. U ) -> ( D ++ <" T "> ) e. Word U ) |
137 |
125 16 136
|
syl2anc |
|- ( ph -> ( D ++ <" T "> ) e. Word U ) |
138 |
135 137
|
wrdfd |
|- ( ph -> ( D ++ <" T "> ) : ( 0 ..^ ( # ` ( D ++ <" T "> ) ) ) --> U ) |
139 |
134 138
|
feq2dd |
|- ( ph -> ( D ++ <" T "> ) : ( 0 ..^ ( # ` H ) ) --> U ) |
140 |
139
|
ffnd |
|- ( ph -> ( D ++ <" T "> ) Fn ( 0 ..^ ( # ` H ) ) ) |
141 |
|
f1of |
|- ( `' S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) -> `' S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
142 |
18 114 141
|
3syl |
|- ( ph -> `' S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
143 |
|
fnfco |
|- ( ( ( D ++ <" T "> ) Fn ( 0 ..^ ( # ` H ) ) /\ `' S : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) -> ( ( D ++ <" T "> ) o. `' S ) Fn ( 0 ..^ ( # ` H ) ) ) |
144 |
140 142 143
|
syl2anc |
|- ( ph -> ( ( D ++ <" T "> ) o. `' S ) Fn ( 0 ..^ ( # ` H ) ) ) |
145 |
91
|
oveq2d |
|- ( ph -> ( 0 ..^ ( ( # ` F ) + 1 ) ) = ( 0 ..^ ( # ` H ) ) ) |
146 |
26
|
eqcomd |
|- ( ph -> ( ( # ` F ) + 1 ) = ( # ` ( F ++ <" Q "> ) ) ) |
147 |
|
ccatws1cl |
|- ( ( F e. Word P /\ Q e. P ) -> ( F ++ <" Q "> ) e. Word P ) |
148 |
7 10 147
|
syl2anc |
|- ( ph -> ( F ++ <" Q "> ) e. Word P ) |
149 |
146 148
|
wrdfd |
|- ( ph -> ( F ++ <" Q "> ) : ( 0 ..^ ( ( # ` F ) + 1 ) ) --> P ) |
150 |
145 149
|
feq2dd |
|- ( ph -> ( F ++ <" Q "> ) : ( 0 ..^ ( # ` H ) ) --> P ) |
151 |
150
|
ffnd |
|- ( ph -> ( F ++ <" Q "> ) Fn ( 0 ..^ ( # ` H ) ) ) |
152 |
|
fzossfzop1 |
|- ( ( # ` F ) e. NN0 -> ( 0 ..^ ( # ` F ) ) C_ ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
153 |
83 152
|
syl |
|- ( ph -> ( 0 ..^ ( # ` F ) ) C_ ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
154 |
|
sswrd |
|- ( ( 0 ..^ ( # ` F ) ) C_ ( 0 ..^ ( ( # ` F ) + 1 ) ) -> Word ( 0 ..^ ( # ` F ) ) C_ Word ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
155 |
153 154
|
syl |
|- ( ph -> Word ( 0 ..^ ( # ` F ) ) C_ Word ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
156 |
|
iswrdi |
|- ( C : ( 0 ..^ ( # ` F ) ) --> ( 0 ..^ ( # ` F ) ) -> C e. Word ( 0 ..^ ( # ` F ) ) ) |
157 |
75 156
|
syl |
|- ( ph -> C e. Word ( 0 ..^ ( # ` F ) ) ) |
158 |
155 157
|
sseldd |
|- ( ph -> C e. Word ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
159 |
|
ccatws1len |
|- ( C e. Word ( 0 ..^ ( ( # ` F ) + 1 ) ) -> ( # ` ( C ++ <" ( # ` F ) "> ) ) = ( ( # ` C ) + 1 ) ) |
160 |
158 159
|
syl |
|- ( ph -> ( # ` ( C ++ <" ( # ` F ) "> ) ) = ( ( # ` C ) + 1 ) ) |
161 |
160 109 91
|
3eqtrrd |
|- ( ph -> ( # ` H ) = ( # ` ( C ++ <" ( # ` F ) "> ) ) ) |
162 |
153 145
|
sseqtrd |
|- ( ph -> ( 0 ..^ ( # ` F ) ) C_ ( 0 ..^ ( # ` H ) ) ) |
163 |
75 162
|
fssd |
|- ( ph -> C : ( 0 ..^ ( # ` F ) ) --> ( 0 ..^ ( # ` H ) ) ) |
164 |
|
iswrdi |
|- ( C : ( 0 ..^ ( # ` F ) ) --> ( 0 ..^ ( # ` H ) ) -> C e. Word ( 0 ..^ ( # ` H ) ) ) |
165 |
163 164
|
syl |
|- ( ph -> C e. Word ( 0 ..^ ( # ` H ) ) ) |
166 |
|
fzonn0p1 |
|- ( ( # ` F ) e. NN0 -> ( # ` F ) e. ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
167 |
83 166
|
syl |
|- ( ph -> ( # ` F ) e. ( 0 ..^ ( ( # ` F ) + 1 ) ) ) |
168 |
167 145
|
eleqtrd |
|- ( ph -> ( # ` F ) e. ( 0 ..^ ( # ` H ) ) ) |
169 |
|
ccatws1cl |
|- ( ( C e. Word ( 0 ..^ ( # ` H ) ) /\ ( # ` F ) e. ( 0 ..^ ( # ` H ) ) ) -> ( C ++ <" ( # ` F ) "> ) e. Word ( 0 ..^ ( # ` H ) ) ) |
170 |
165 168 169
|
syl2anc |
|- ( ph -> ( C ++ <" ( # ` F ) "> ) e. Word ( 0 ..^ ( # ` H ) ) ) |
171 |
161 170
|
wrdfd |
|- ( ph -> ( C ++ <" ( # ` F ) "> ) : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
172 |
171 142
|
fcod |
|- ( ph -> ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) |
173 |
|
fnfco |
|- ( ( ( F ++ <" Q "> ) Fn ( 0 ..^ ( # ` H ) ) /\ ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` H ) ) --> ( 0 ..^ ( # ` H ) ) ) -> ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) Fn ( 0 ..^ ( # ` H ) ) ) |
174 |
151 172 173
|
syl2anc |
|- ( ph -> ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) Fn ( 0 ..^ ( # ` H ) ) ) |
175 |
|
ovexd |
|- ( ph -> ( 0 ..^ ( # ` H ) ) e. _V ) |
176 |
|
inidm |
|- ( ( 0 ..^ ( # ` H ) ) i^i ( 0 ..^ ( # ` H ) ) ) = ( 0 ..^ ( # ` H ) ) |
177 |
144 174 175 175 176
|
offn |
|- ( ph -> ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) Fn ( 0 ..^ ( # ` H ) ) ) |
178 |
|
eqid |
|- ( # ` F ) = ( # ` F ) |
179 |
178 7 10 23
|
ccatws1f1olast |
|- ( ph -> ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) = ( ( F o. C ) ++ <" Q "> ) ) |
180 |
179
|
oveq2d |
|- ( ph -> ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) = ( ( D ++ <" T "> ) oF .x. ( ( F o. C ) ++ <" Q "> ) ) ) |
181 |
16
|
s1cld |
|- ( ph -> <" T "> e. Word U ) |
182 |
|
iswrdi |
|- ( ( F o. C ) : ( 0 ..^ ( # ` F ) ) --> P -> ( F o. C ) e. Word P ) |
183 |
76 182
|
syl |
|- ( ph -> ( F o. C ) e. Word P ) |
184 |
10
|
s1cld |
|- ( ph -> <" Q "> e. Word P ) |
185 |
|
lenco |
|- ( ( C e. Word ( 0 ..^ ( # ` F ) ) /\ F : ( 0 ..^ ( # ` F ) ) --> P ) -> ( # ` ( F o. C ) ) = ( # ` C ) ) |
186 |
157 73 185
|
syl2anc |
|- ( ph -> ( # ` ( F o. C ) ) = ( # ` C ) ) |
187 |
98 186 130
|
3eqtr4rd |
|- ( ph -> ( # ` D ) = ( # ` ( F o. C ) ) ) |
188 |
|
s1len |
|- ( # ` <" T "> ) = 1 |
189 |
|
s1len |
|- ( # ` <" Q "> ) = 1 |
190 |
188 189
|
eqtr4i |
|- ( # ` <" T "> ) = ( # ` <" Q "> ) |
191 |
190
|
a1i |
|- ( ph -> ( # ` <" T "> ) = ( # ` <" Q "> ) ) |
192 |
125 181 183 184 187 191
|
ofccat |
|- ( ph -> ( ( D ++ <" T "> ) oF .x. ( ( F o. C ) ++ <" Q "> ) ) = ( ( D oF .x. ( F o. C ) ) ++ ( <" T "> oF .x. <" Q "> ) ) ) |
193 |
180 192
|
eqtrd |
|- ( ph -> ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) = ( ( D oF .x. ( F o. C ) ) ++ ( <" T "> oF .x. <" Q "> ) ) ) |
194 |
150 171
|
fcod |
|- ( ph -> ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) : ( 0 ..^ ( # ` H ) ) --> P ) |
195 |
194
|
ffnd |
|- ( ph -> ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) Fn ( 0 ..^ ( # ` H ) ) ) |
196 |
140 195 142 175 175 175 176
|
ofco |
|- ( ph -> ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. `' S ) = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) ) |
197 |
196
|
coeq1d |
|- ( ph -> ( ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. `' S ) o. S ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) o. S ) ) |
198 |
|
coass |
|- ( ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. `' S ) o. S ) = ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( `' S o. S ) ) |
199 |
197 198
|
eqtr3di |
|- ( ph -> ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) o. S ) = ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( `' S o. S ) ) ) |
200 |
|
f1of1 |
|- ( S : ( 0 ..^ ( # ` H ) ) -1-1-onto-> ( 0 ..^ ( # ` H ) ) -> S : ( 0 ..^ ( # ` H ) ) -1-1-> ( 0 ..^ ( # ` H ) ) ) |
201 |
18 200
|
syl |
|- ( ph -> S : ( 0 ..^ ( # ` H ) ) -1-1-> ( 0 ..^ ( # ` H ) ) ) |
202 |
|
f1cocnv1 |
|- ( S : ( 0 ..^ ( # ` H ) ) -1-1-> ( 0 ..^ ( # ` H ) ) -> ( `' S o. S ) = ( _I |` ( 0 ..^ ( # ` H ) ) ) ) |
203 |
201 202
|
syl |
|- ( ph -> ( `' S o. S ) = ( _I |` ( 0 ..^ ( # ` H ) ) ) ) |
204 |
203
|
coeq2d |
|- ( ph -> ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( `' S o. S ) ) = ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( _I |` ( 0 ..^ ( # ` H ) ) ) ) ) |
205 |
69 139 194 175 175 176
|
off |
|- ( ph -> ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) : ( 0 ..^ ( # ` H ) ) --> ( Base ` R ) ) |
206 |
|
fcoi1 |
|- ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) : ( 0 ..^ ( # ` H ) ) --> ( Base ` R ) -> ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( _I |` ( 0 ..^ ( # ` H ) ) ) ) = ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) ) |
207 |
205 206
|
syl |
|- ( ph -> ( ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) o. ( _I |` ( 0 ..^ ( # ` H ) ) ) ) = ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) ) |
208 |
199 204 207
|
3eqtrd |
|- ( ph -> ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) o. S ) = ( ( D ++ <" T "> ) oF .x. ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) ) ) |
209 |
|
ofs1 |
|- ( ( T e. U /\ Q e. P ) -> ( <" T "> oF .x. <" Q "> ) = <" ( T .x. Q ) "> ) |
210 |
16 10 209
|
syl2anc |
|- ( ph -> ( <" T "> oF .x. <" Q "> ) = <" ( T .x. Q ) "> ) |
211 |
17
|
s1eqd |
|- ( ph -> <" ( T .x. Q ) "> = <" ( H ` K ) "> ) |
212 |
210 211
|
eqtr2d |
|- ( ph -> <" ( H ` K ) "> = ( <" T "> oF .x. <" Q "> ) ) |
213 |
24 212
|
oveq12d |
|- ( ph -> ( ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) ++ <" ( H ` K ) "> ) = ( ( D oF .x. ( F o. C ) ) ++ ( <" T "> oF .x. <" Q "> ) ) ) |
214 |
193 208 213
|
3eqtr4rd |
|- ( ph -> ( ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) ++ <" ( H ` K ) "> ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) o. S ) ) |
215 |
|
coass |
|- ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) = ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) |
216 |
215
|
oveq2i |
|- ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) |
217 |
216
|
coeq1i |
|- ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( ( F ++ <" Q "> ) o. ( C ++ <" ( # ` F ) "> ) ) o. `' S ) ) o. S ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) o. S ) |
218 |
214 217
|
eqtrdi |
|- ( ph -> ( ( ( H o. S ) prefix ( ( # ` H ) - 1 ) ) ++ <" ( H ` K ) "> ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) o. S ) ) |
219 |
19 218
|
eqtrd |
|- ( ph -> ( H o. S ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) o. S ) ) |
220 |
|
cocan2 |
|- ( ( S : ( 0 ..^ ( # ` H ) ) -onto-> ( 0 ..^ ( # ` H ) ) /\ H Fn ( 0 ..^ ( # ` H ) ) /\ ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) Fn ( 0 ..^ ( # ` H ) ) ) -> ( ( H o. S ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) o. S ) <-> H = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) ) ) |
221 |
220
|
biimpa |
|- ( ( ( S : ( 0 ..^ ( # ` H ) ) -onto-> ( 0 ..^ ( # ` H ) ) /\ H Fn ( 0 ..^ ( # ` H ) ) /\ ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) Fn ( 0 ..^ ( # ` H ) ) ) /\ ( H o. S ) = ( ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) o. S ) ) -> H = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) ) |
222 |
122 123 177 219 221
|
syl31anc |
|- ( ph -> H = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) ) |
223 |
120 222
|
jca |
|- ( ph -> ( ( ( C ++ <" ( # ` F ) "> ) o. `' S ) : ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) -1-1-onto-> ( 0 ..^ ( # ` ( F ++ <" Q "> ) ) ) /\ H = ( ( ( D ++ <" T "> ) o. `' S ) oF .x. ( ( F ++ <" Q "> ) o. ( ( C ++ <" ( # ` F ) "> ) o. `' S ) ) ) ) ) |