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