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 bilani φ b U b w Word A w × 0 w
51 eliun b w Word A w × 0 w w Word A b w × 0 w
52 50 51 sylib φ b U w Word A b w × 0 w
53 sneq u = w u = w
54 fveq2 u = w u = w
55 54 oveq2d u = w 0 u = 0 w
56 53 55 xpeq12d u = w u × 0 u = w × 0 w
57 56 eleq2d u = w b u × 0 u b w × 0 w
58 57 cbvrexvw u Word A b u × 0 u w Word A b w × 0 w
59 52 58 sylibr φ b U u Word A b u × 0 u
60 48 59 r19.29a φ b U 1 st b Word A
61 pfxcl 1 st b Word A 1 st b prefix 2 nd b Word A
62 60 61 syl φ b U 1 st b prefix 2 nd b Word A
63 swrdcl 1 st b Word A 1 st b substr 2 nd b 1 st b Word A
64 60 63 syl φ b U 1 st b substr 2 nd b 1 st b Word A
65 62 64 opelxpd φ b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b Word A × Word A
66 50 adantr φ b U a Word A × Word A b w Word A w × 0 w
67 eliunxp b w Word A w × 0 w w n b = w n w Word A n 0 w
68 66 67 sylib φ b U a Word A × Word A w n b = w n w Word A n 0 w
69 opeq1 u = w u n = w n
70 69 eqeq2d u = w b = u n b = w n
71 eleq1w u = w u Word A w Word A
72 55 eleq2d u = w n 0 u n 0 w
73 71 72 anbi12d u = w u Word A n 0 u w Word A n 0 w
74 70 73 anbi12d u = w b = u n u Word A n 0 u b = w n w Word A n 0 w
75 74 exbidv u = w n b = u n u Word A n 0 u n b = w n w Word A n 0 w
76 75 cbvexvw u n b = u n u Word A n 0 u w n b = w n w Word A n 0 w
77 68 76 sylibr φ b U a Word A × Word A u n b = u n u Word A n 0 u
78 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
79 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
80 78 79 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
81 vex u V
82 vex n V
83 81 82 op1std b = u n 1 st b = u
84 83 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
85 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
86 84 85 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
87 81 82 op2ndd b = u n 2 nd b = n
88 87 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
89 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
90 84 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
91 90 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
92 91 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
93 89 92 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
94 88 93 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
95 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
96 86 94 95 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
97 80 96 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
98 78 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
99 pfxlen 1 st b Word A 2 nd b 0 1 st b 1 st b prefix 2 nd b = 2 nd b
100 86 94 99 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
101 98 100 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
102 97 101 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
103 102 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
104 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
105 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
106 104 105 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
107 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
108 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
109 pfxccat1 1 st a Word A 2 nd a Word A 1 st a ++ 2 nd a prefix 1 st a = 1 st a
110 107 108 109 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
111 106 110 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
112 104 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
113 107 108 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
114 112 113 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
115 105 114 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
116 104 115 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
117 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
118 107 108 117 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
119 116 118 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
120 111 119 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
121 120 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
122 103 121 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
123 122 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
124 123 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
125 124 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
126 125 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
127 126 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
128 77 127 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
129 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
130 129 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
131 snssi w Word A w Word A
132 131 adantl φ a Word A × Word A w Word A w Word A
133 fz0ssnn0 0 w 0
134 xpss12 w Word A 0 w 0 w × 0 w Word A × 0
135 132 133 134 sylancl φ a Word A × Word A w Word A w × 0 w Word A × 0
136 135 iunssd φ a Word A × Word A w Word A w × 0 w Word A × 0
137 136 adantlr φ b U a Word A × Word A w Word A w × 0 w Word A × 0
138 137 66 sseldd φ b U a Word A × Word A b Word A × 0
139 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
140 138 139 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
141 128 130 140 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
142 141 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
143 142 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
144 2 41 65 143 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
145 144 simpld φ F : Word A × Word A 1-1 onto U
146 144 simprd φ F -1 = b U 1 st b prefix 2 nd b 1 st b substr 2 nd b 1 st b
147 146 3 eqtr4di φ F -1 = G
148 145 147 jca φ F : Word A × Word A 1-1 onto U F -1 = G