Metamath Proof Explorer


Theorem gsumwrd2dccatlem

Description: Lemma for gsumwrd2dccat . Expose a bijection F between (ordered) pairs of words and words with a length of a subword. (Contributed by Thierry Arnoux, 5-Oct-2025)

Ref Expression
Hypotheses gsumwrd2dccatlem.u U = w Word A w × 0 w
gsumwrd2dccatlem.f F = a Word A × Word A 1 st a ++ 2 nd a 1 st a
gsumwrd2dccatlem.g G = b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b
gsumwrd2dccatlem.a φ A V
Assertion gsumwrd2dccatlem φ F : Word A × Word A 1-1 onto U F -1 = G

Proof

Step Hyp Ref Expression
1 gsumwrd2dccatlem.u U = w Word A w × 0 w
2 gsumwrd2dccatlem.f F = a Word A × Word A 1 st a ++ 2 nd a 1 st a
3 gsumwrd2dccatlem.g G = b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b
4 gsumwrd2dccatlem.a φ A V
5 sneq w = 1 st a ++ 2 nd a w = 1 st a ++ 2 nd a
6 fveq2 w = 1 st a ++ 2 nd a w = 1 st a ++ 2 nd a
7 6 oveq2d w = 1 st a ++ 2 nd a 0 w = 0 1 st a ++ 2 nd a
8 5 7 xpeq12d w = 1 st a ++ 2 nd a w × 0 w = 1 st a ++ 2 nd a × 0 1 st a ++ 2 nd a
9 8 eleq2d w = 1 st a ++ 2 nd a 1 st a ++ 2 nd a 1 st a w × 0 w 1 st a ++ 2 nd a 1 st a 1 st a ++ 2 nd a × 0 1 st a ++ 2 nd a
10 xp1st a Word A × Word A 1 st a Word A
11 10 adantl φ a Word A × Word A 1 st a Word A
12 xp2nd a Word A × Word A 2 nd a Word A
13 12 adantl φ a Word A × Word A 2 nd a Word A
14 ccatcl 1 st a Word A 2 nd a Word A 1 st a ++ 2 nd a Word A
15 11 13 14 syl2anc φ a Word A × Word A 1 st a ++ 2 nd a Word A
16 ovex 1 st a ++ 2 nd a V
17 16 snid 1 st a ++ 2 nd a 1 st a ++ 2 nd a
18 17 a1i φ a Word A × Word A 1 st a ++ 2 nd a 1 st a ++ 2 nd a
19 0zd φ a Word A × Word A 0
20 lencl 1 st a ++ 2 nd a Word A 1 st a ++ 2 nd a 0
21 15 20 syl φ a Word A × Word A 1 st a ++ 2 nd a 0
22 21 nn0zd φ a Word A × Word A 1 st a ++ 2 nd a
23 lencl 1 st a Word A 1 st a 0
24 11 23 syl φ a Word A × Word A 1 st a 0
25 24 nn0zd φ a Word A × Word A 1 st a
26 24 nn0ge0d φ a Word A × Word A 0 1 st a
27 lencl 2 nd a Word A 2 nd a 0
28 13 27 syl φ a Word A × Word A 2 nd a 0
29 28 nn0ge0d φ a Word A × Word A 0 2 nd a
30 24 nn0red φ a Word A × Word A 1 st a
31 28 nn0red φ a Word A × Word A 2 nd a
32 30 31 addge01d φ a Word A × Word A 0 2 nd a 1 st a 1 st a + 2 nd a
33 29 32 mpbid φ a Word A × Word A 1 st a 1 st a + 2 nd a
34 ccatlen 1 st a Word A 2 nd a Word A 1 st a ++ 2 nd a = 1 st a + 2 nd a
35 11 13 34 syl2anc φ a Word A × Word A 1 st a ++ 2 nd a = 1 st a + 2 nd a
36 33 35 breqtrrd φ a Word A × Word A 1 st a 1 st a ++ 2 nd a
37 19 22 25 26 36 elfzd φ a Word A × Word A 1 st a 0 1 st a ++ 2 nd a
38 18 37 opelxpd φ a Word A × Word A 1 st a ++ 2 nd a 1 st a 1 st a ++ 2 nd a × 0 1 st a ++ 2 nd a
39 9 15 38 rspcedvdw φ a Word A × Word A w Word A 1 st a ++ 2 nd a 1 st a w × 0 w
40 39 eliund φ a Word A × Word A 1 st a ++ 2 nd a 1 st a w Word A w × 0 w
41 40 1 eleqtrrdi φ a Word A × Word A 1 st a ++ 2 nd a 1 st a U
42 simpr φ u Word A b u × 0 u b u × 0 u
43 xp1st b u × 0 u 1 st b u
44 elsni 1 st b u 1 st b = u
45 42 43 44 3syl φ u Word A b u × 0 u 1 st b = u
46 simplr φ u Word A b u × 0 u u Word A
47 45 46 eqeltrd φ u Word A b u × 0 u 1 st b Word A
48 47 adantllr φ b U u Word A b u × 0 u 1 st b Word A
49 1 eleq2i b U b w Word A w × 0 w
50 49 biimpi b U b w Word A w × 0 w
51 50 adantl φ b U b w Word A w × 0 w
52 eliun b w Word A w × 0 w w Word A b w × 0 w
53 51 52 sylib φ b U w Word A b w × 0 w
54 sneq u = w u = w
55 fveq2 u = w u = w
56 55 oveq2d u = w 0 u = 0 w
57 54 56 xpeq12d u = w u × 0 u = w × 0 w
58 57 eleq2d u = w b u × 0 u b w × 0 w
59 58 cbvrexvw u Word A b u × 0 u w Word A b w × 0 w
60 53 59 sylibr φ b U u Word A b u × 0 u
61 48 60 r19.29a φ b U 1 st b Word A
62 pfxcl 1 st b Word A 1 st b prefix 2 nd b Word A
63 61 62 syl φ b U 1 st b prefix 2 nd b Word A
64 swrdcl 1 st b Word A 1 st b substr 2 nd b 1 st b Word A
65 61 64 syl φ b U 1 st b substr 2 nd b 1 st b Word A
66 63 65 opelxpd φ b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b Word A × Word A
67 51 adantr φ b U a Word A × Word A b w Word A w × 0 w
68 eliunxp b w Word A w × 0 w w n b = w n w Word A n 0 w
69 67 68 sylib φ b U a Word A × Word A w n b = w n w Word A n 0 w
70 opeq1 u = w u n = w n
71 70 eqeq2d u = w b = u n b = w n
72 eleq1w u = w u Word A w Word A
73 56 eleq2d u = w n 0 u n 0 w
74 72 73 anbi12d u = w u Word A n 0 u w Word A n 0 w
75 71 74 anbi12d u = w b = u n u Word A n 0 u b = w n w Word A n 0 w
76 75 exbidv u = w n b = u n u Word A n 0 u n b = w n w Word A n 0 w
77 76 cbvexvw u n b = u n u Word A n 0 u w n b = w n w Word A n 0 w
78 69 77 sylibr φ b U a Word A × Word A u n b = u n u Word A n 0 u
79 simplr φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st a = 1 st b prefix 2 nd b
80 simpr φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 2 nd a = 1 st b substr 2 nd b 1 st b
81 79 80 oveq12d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st a ++ 2 nd a = 1 st b prefix 2 nd b ++ 1 st b substr 2 nd b 1 st b
82 vex u V
83 vex n V
84 82 83 op1std b = u n 1 st b = u
85 84 ad5antlr φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = u
86 simp-4r φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b u Word A
87 85 86 eqeltrd φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b Word A
88 82 83 op2ndd b = u n 2 nd b = n
89 88 ad5antlr φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 2 nd b = n
90 simpllr φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b n 0 u
91 85 eqcomd φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b u = 1 st b
92 91 fveq2d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b u = 1 st b
93 92 oveq2d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 0 u = 0 1 st b
94 90 93 eleqtrd φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b n 0 1 st b
95 89 94 eqeltrd φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 2 nd b 0 1 st b
96 pfxcctswrd 1 st b Word A 2 nd b 0 1 st b 1 st b prefix 2 nd b ++ 1 st b substr 2 nd b 1 st b = 1 st b
97 87 95 96 syl2anc φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b prefix 2 nd b ++ 1 st b substr 2 nd b 1 st b = 1 st b
98 81 97 eqtr2d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a
99 79 fveq2d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st a = 1 st b prefix 2 nd b
100 pfxlen 1 st b Word A 2 nd b 0 1 st b 1 st b prefix 2 nd b = 2 nd b
101 87 95 100 syl2anc φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b prefix 2 nd b = 2 nd b
102 99 101 eqtr2d φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 2 nd b = 1 st a
103 98 102 jca φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
104 103 anasss φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
105 simplr φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st b = 1 st a ++ 2 nd a
106 simpr φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 2 nd b = 1 st a
107 105 106 oveq12d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st b prefix 2 nd b = 1 st a ++ 2 nd a prefix 1 st a
108 11 ad5antr φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a Word A
109 13 ad5antr φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 2 nd a Word A
110 pfxccat1 1 st a Word A 2 nd a Word A 1 st a ++ 2 nd a prefix 1 st a = 1 st a
111 108 109 110 syl2anc φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a ++ 2 nd a prefix 1 st a = 1 st a
112 107 111 eqtr2d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a = 1 st b prefix 2 nd b
113 105 fveq2d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st b = 1 st a ++ 2 nd a
114 108 109 34 syl2anc φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a ++ 2 nd a = 1 st a + 2 nd a
115 113 114 eqtrd φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st b = 1 st a + 2 nd a
116 106 115 opeq12d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 2 nd b 1 st b = 1 st a 1 st a + 2 nd a
117 105 116 oveq12d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st b substr 2 nd b 1 st b = 1 st a ++ 2 nd a substr 1 st a 1 st a + 2 nd a
118 swrdccat2 1 st a Word A 2 nd a Word A 1 st a ++ 2 nd a substr 1 st a 1 st a + 2 nd a = 2 nd a
119 108 109 118 syl2anc φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a ++ 2 nd a substr 1 st a 1 st a + 2 nd a = 2 nd a
120 117 119 eqtr2d φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 2 nd a = 1 st b substr 2 nd b 1 st b
121 112 120 jca φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b
122 121 anasss φ a Word A × Word A b = u n u Word A n 0 u 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b
123 104 122 impbida φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
124 123 anasss φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
125 124 expl φ a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
126 125 adantlr φ b U a Word A × Word A b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
127 126 exlimdv φ b U a Word A × Word A n b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
128 127 imp φ b U a Word A × Word A n b = u n u Word A n 0 u 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
129 78 128 exlimddv φ b U a Word A × Word A 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
130 eqop a Word A × Word A a = 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b
131 130 adantl φ b U a Word A × Word A a = 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b 1 st a = 1 st b prefix 2 nd b 2 nd a = 1 st b substr 2 nd b 1 st b
132 snssi w Word A w Word A
133 132 adantl φ a Word A × Word A w Word A w Word A
134 fz0ssnn0 0 w 0
135 xpss12 w Word A 0 w 0 w × 0 w Word A × 0
136 133 134 135 sylancl φ a Word A × Word A w Word A w × 0 w Word A × 0
137 136 iunssd φ a Word A × Word A w Word A w × 0 w Word A × 0
138 137 adantlr φ b U a Word A × Word A w Word A w × 0 w Word A × 0
139 138 67 sseldd φ b U a Word A × Word A b Word A × 0
140 eqop b Word A × 0 b = 1 st a ++ 2 nd a 1 st a 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
141 139 140 syl φ b U a Word A × Word A b = 1 st a ++ 2 nd a 1 st a 1 st b = 1 st a ++ 2 nd a 2 nd b = 1 st a
142 129 131 141 3bitr4d φ b U a Word A × Word A a = 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b b = 1 st a ++ 2 nd a 1 st a
143 142 an32s φ a Word A × Word A b U a = 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b b = 1 st a ++ 2 nd a 1 st a
144 143 anasss φ a Word A × Word A b U a = 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b b = 1 st a ++ 2 nd a 1 st a
145 2 41 66 144 f1ocnv2d φ F : Word A × Word A 1-1 onto U F -1 = b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b
146 145 simpld φ F : Word A × Word A 1-1 onto U
147 145 simprd φ F -1 = b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b
148 147 3 eqtr4di φ F -1 = G
149 146 148 jca φ F : Word A × Word A 1-1 onto U F -1 = G