| Step | Hyp | Ref
| Expression |
| 1 | | gsumwrd2dccatlem.f |
. . . 4
⊢ 𝐹 = (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ 〈((1st
‘𝑎) ++
(2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉) |
| 2 | | sneq 4568 |
. . . . . . . . 9
⊢ (𝑤 = ((1st ‘𝑎) ++ (2nd
‘𝑎)) → {𝑤} = {((1st
‘𝑎) ++
(2nd ‘𝑎))}) |
| 3 | | fveq2 6831 |
. . . . . . . . . 10
⊢ (𝑤 = ((1st ‘𝑎) ++ (2nd
‘𝑎)) →
(♯‘𝑤) =
(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎)))) |
| 4 | 3 | oveq2d 7376 |
. . . . . . . . 9
⊢ (𝑤 = ((1st ‘𝑎) ++ (2nd
‘𝑎)) →
(0...(♯‘𝑤)) =
(0...(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎))))) |
| 5 | 2, 4 | xpeq12d 5652 |
. . . . . . . 8
⊢ (𝑤 = ((1st ‘𝑎) ++ (2nd
‘𝑎)) → ({𝑤} ×
(0...(♯‘𝑤))) =
({((1st ‘𝑎) ++ (2nd ‘𝑎))} ×
(0...(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎)))))) |
| 6 | 5 | eleq2d 2827 |
. . . . . . 7
⊢ (𝑤 = ((1st ‘𝑎) ++ (2nd
‘𝑎)) →
(〈((1st ‘𝑎) ++ (2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ ({𝑤} × (0...(♯‘𝑤))) ↔
〈((1st ‘𝑎) ++ (2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ ({((1st
‘𝑎) ++
(2nd ‘𝑎))}
× (0...(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎))))))) |
| 7 | | xp1st 7967 |
. . . . . . . . 9
⊢ (𝑎 ∈ (Word 𝐴 × Word 𝐴) → (1st ‘𝑎) ∈ Word 𝐴) |
| 8 | 7 | adantl 483 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (1st ‘𝑎) ∈ Word 𝐴) |
| 9 | | xp2nd 7968 |
. . . . . . . . 9
⊢ (𝑎 ∈ (Word 𝐴 × Word 𝐴) → (2nd ‘𝑎) ∈ Word 𝐴) |
| 10 | 9 | adantl 483 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (2nd ‘𝑎) ∈ Word 𝐴) |
| 11 | | ccatcl 14531 |
. . . . . . . 8
⊢
(((1st ‘𝑎) ∈ Word 𝐴 ∧ (2nd ‘𝑎) ∈ Word 𝐴) → ((1st ‘𝑎) ++ (2nd
‘𝑎)) ∈ Word
𝐴) |
| 12 | 8, 10, 11 | syl2anc 591 |
. . . . . . 7
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ((1st ‘𝑎) ++ (2nd
‘𝑎)) ∈ Word
𝐴) |
| 13 | | ovex 7393 |
. . . . . . . . . 10
⊢
((1st ‘𝑎) ++ (2nd ‘𝑎)) ∈ V |
| 14 | 13 | snid 4597 |
. . . . . . . . 9
⊢
((1st ‘𝑎) ++ (2nd ‘𝑎)) ∈ {((1st
‘𝑎) ++
(2nd ‘𝑎))} |
| 15 | 14 | a1i 11 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ((1st ‘𝑎) ++ (2nd
‘𝑎)) ∈
{((1st ‘𝑎)
++ (2nd ‘𝑎))}) |
| 16 | | 0zd 12531 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 0 ∈ ℤ) |
| 17 | | lencl 14490 |
. . . . . . . . . . 11
⊢
(((1st ‘𝑎) ++ (2nd ‘𝑎)) ∈ Word 𝐴 → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
∈ ℕ0) |
| 18 | 12, 17 | syl 17 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
∈ ℕ0) |
| 19 | 18 | nn0zd 12544 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
∈ ℤ) |
| 20 | | lencl 14490 |
. . . . . . . . . . 11
⊢
((1st ‘𝑎) ∈ Word 𝐴 → (♯‘(1st
‘𝑎)) ∈
ℕ0) |
| 21 | 8, 20 | syl 17 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ∈
ℕ0) |
| 22 | 21 | nn0zd 12544 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ∈
ℤ) |
| 23 | 21 | nn0ge0d 12496 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 0 ≤
(♯‘(1st ‘𝑎))) |
| 24 | | lencl 14490 |
. . . . . . . . . . . . 13
⊢
((2nd ‘𝑎) ∈ Word 𝐴 → (♯‘(2nd
‘𝑎)) ∈
ℕ0) |
| 25 | 10, 24 | syl 17 |
. . . . . . . . . . . 12
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(2nd
‘𝑎)) ∈
ℕ0) |
| 26 | 25 | nn0ge0d 12496 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 0 ≤
(♯‘(2nd ‘𝑎))) |
| 27 | 21 | nn0red 12494 |
. . . . . . . . . . . 12
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ∈
ℝ) |
| 28 | 25 | nn0red 12494 |
. . . . . . . . . . . 12
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(2nd
‘𝑎)) ∈
ℝ) |
| 29 | 27, 28 | addge01d 11733 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (0 ≤
(♯‘(2nd ‘𝑎)) ↔ (♯‘(1st
‘𝑎)) ≤
((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎))))) |
| 30 | 26, 29 | mpbid 234 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ≤
((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎)))) |
| 31 | | ccatlen 14532 |
. . . . . . . . . . 11
⊢
(((1st ‘𝑎) ∈ Word 𝐴 ∧ (2nd ‘𝑎) ∈ Word 𝐴) → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
= ((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎)))) |
| 32 | 8, 10, 31 | syl2anc 591 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
= ((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎)))) |
| 33 | 30, 32 | breqtrrd 5103 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ≤
(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎)))) |
| 34 | 16, 19, 22, 23, 33 | elfzd 13464 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (♯‘(1st
‘𝑎)) ∈
(0...(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎))))) |
| 35 | 15, 34 | opelxpd 5660 |
. . . . . . 7
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 〈((1st
‘𝑎) ++
(2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ ({((1st
‘𝑎) ++
(2nd ‘𝑎))}
× (0...(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎)))))) |
| 36 | 6, 12, 35 | rspcedvdw 3565 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ∃𝑤 ∈ Word 𝐴〈((1st ‘𝑎) ++ (2nd
‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ ({𝑤} × (0...(♯‘𝑤)))) |
| 37 | 36 | eliund 4931 |
. . . . 5
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 〈((1st
‘𝑎) ++
(2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))) |
| 38 | | gsumwrd2dccatlem.u |
. . . . 5
⊢ 𝑈 = ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) |
| 39 | 37, 38 | eleqtrrdi 2852 |
. . . 4
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 〈((1st
‘𝑎) ++
(2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ∈ 𝑈) |
| 40 | | simpr 486 |
. . . . . . . . . 10
⊢ (((𝜑 ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) → 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) |
| 41 | | xp1st 7967 |
. . . . . . . . . 10
⊢ (𝑏 ∈ ({𝑢} × (0...(♯‘𝑢))) → (1st
‘𝑏) ∈ {𝑢}) |
| 42 | | elsni 4575 |
. . . . . . . . . 10
⊢
((1st ‘𝑏) ∈ {𝑢} → (1st ‘𝑏) = 𝑢) |
| 43 | 40, 41, 42 | 3syl 18 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) → (1st
‘𝑏) = 𝑢) |
| 44 | | simplr 775 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) → 𝑢 ∈ Word 𝐴) |
| 45 | 43, 44 | eqeltrd 2841 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) → (1st
‘𝑏) ∈ Word 𝐴) |
| 46 | 45 | adantllr 726 |
. . . . . . 7
⊢ ((((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) → (1st
‘𝑏) ∈ Word 𝐴) |
| 47 | 38 | eleq2i 2833 |
. . . . . . . . . 10
⊢ (𝑏 ∈ 𝑈 ↔ 𝑏 ∈ ∪
𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))) |
| 48 | 47 | bilani 506 |
. . . . . . . . 9
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → 𝑏 ∈ ∪
𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))) |
| 49 | | eliun 4928 |
. . . . . . . . 9
⊢ (𝑏 ∈ ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↔ ∃𝑤 ∈ Word 𝐴𝑏 ∈ ({𝑤} × (0...(♯‘𝑤)))) |
| 50 | 48, 49 | sylib 220 |
. . . . . . . 8
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → ∃𝑤 ∈ Word 𝐴𝑏 ∈ ({𝑤} × (0...(♯‘𝑤)))) |
| 51 | | sneq 4568 |
. . . . . . . . . . 11
⊢ (𝑢 = 𝑤 → {𝑢} = {𝑤}) |
| 52 | | fveq2 6831 |
. . . . . . . . . . . 12
⊢ (𝑢 = 𝑤 → (♯‘𝑢) = (♯‘𝑤)) |
| 53 | 52 | oveq2d 7376 |
. . . . . . . . . . 11
⊢ (𝑢 = 𝑤 → (0...(♯‘𝑢)) = (0...(♯‘𝑤))) |
| 54 | 51, 53 | xpeq12d 5652 |
. . . . . . . . . 10
⊢ (𝑢 = 𝑤 → ({𝑢} × (0...(♯‘𝑢))) = ({𝑤} × (0...(♯‘𝑤)))) |
| 55 | 54 | eleq2d 2827 |
. . . . . . . . 9
⊢ (𝑢 = 𝑤 → (𝑏 ∈ ({𝑢} × (0...(♯‘𝑢))) ↔ 𝑏 ∈ ({𝑤} × (0...(♯‘𝑤))))) |
| 56 | 55 | cbvrexvw 3220 |
. . . . . . . 8
⊢
(∃𝑢 ∈
Word 𝐴𝑏 ∈ ({𝑢} × (0...(♯‘𝑢))) ↔ ∃𝑤 ∈ Word 𝐴𝑏 ∈ ({𝑤} × (0...(♯‘𝑤)))) |
| 57 | 50, 56 | sylibr 236 |
. . . . . . 7
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → ∃𝑢 ∈ Word 𝐴𝑏 ∈ ({𝑢} × (0...(♯‘𝑢)))) |
| 58 | 46, 57 | r19.29a 3149 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → (1st ‘𝑏) ∈ Word 𝐴) |
| 59 | | pfxcl 14635 |
. . . . . 6
⊢
((1st ‘𝑏) ∈ Word 𝐴 → ((1st ‘𝑏) prefix (2nd
‘𝑏)) ∈ Word
𝐴) |
| 60 | 58, 59 | syl 17 |
. . . . 5
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → ((1st ‘𝑏) prefix (2nd
‘𝑏)) ∈ Word
𝐴) |
| 61 | | swrdcl 14603 |
. . . . . 6
⊢
((1st ‘𝑏) ∈ Word 𝐴 → ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉) ∈ Word 𝐴) |
| 62 | 58, 61 | syl 17 |
. . . . 5
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉) ∈ Word 𝐴) |
| 63 | 60, 62 | opelxpd 5660 |
. . . 4
⊢ ((𝜑 ∧ 𝑏 ∈ 𝑈) → 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
∈ (Word 𝐴 × Word
𝐴)) |
| 64 | 48 | adantr 482 |
. . . . . . . . . 10
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 𝑏 ∈ ∪
𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))) |
| 65 | | eliunxp 5782 |
. . . . . . . . . 10
⊢ (𝑏 ∈ ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↔ ∃𝑤∃𝑛(𝑏 = 〈𝑤, 𝑛〉 ∧ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤))))) |
| 66 | 64, 65 | sylib 220 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ∃𝑤∃𝑛(𝑏 = 〈𝑤, 𝑛〉 ∧ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤))))) |
| 67 | | opeq1 4807 |
. . . . . . . . . . . . 13
⊢ (𝑢 = 𝑤 → 〈𝑢, 𝑛〉 = 〈𝑤, 𝑛〉) |
| 68 | 67 | eqeq2d 2752 |
. . . . . . . . . . . 12
⊢ (𝑢 = 𝑤 → (𝑏 = 〈𝑢, 𝑛〉 ↔ 𝑏 = 〈𝑤, 𝑛〉)) |
| 69 | | eleq1w 2824 |
. . . . . . . . . . . . 13
⊢ (𝑢 = 𝑤 → (𝑢 ∈ Word 𝐴 ↔ 𝑤 ∈ Word 𝐴)) |
| 70 | 53 | eleq2d 2827 |
. . . . . . . . . . . . 13
⊢ (𝑢 = 𝑤 → (𝑛 ∈ (0...(♯‘𝑢)) ↔ 𝑛 ∈ (0...(♯‘𝑤)))) |
| 71 | 69, 70 | anbi12d 639 |
. . . . . . . . . . . 12
⊢ (𝑢 = 𝑤 → ((𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢))) ↔ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤))))) |
| 72 | 68, 71 | anbi12d 639 |
. . . . . . . . . . 11
⊢ (𝑢 = 𝑤 → ((𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) ↔ (𝑏 = 〈𝑤, 𝑛〉 ∧ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤)))))) |
| 73 | 72 | exbidv 1929 |
. . . . . . . . . 10
⊢ (𝑢 = 𝑤 → (∃𝑛(𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) ↔ ∃𝑛(𝑏 = 〈𝑤, 𝑛〉 ∧ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤)))))) |
| 74 | 73 | cbvexvw 2045 |
. . . . . . . . 9
⊢
(∃𝑢∃𝑛(𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) ↔ ∃𝑤∃𝑛(𝑏 = 〈𝑤, 𝑛〉 ∧ (𝑤 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑤))))) |
| 75 | 66, 74 | sylibr 236 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ∃𝑢∃𝑛(𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢))))) |
| 76 | | simplr 775 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(1st ‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) |
| 77 | | simpr 486 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(2nd ‘𝑎) =
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) |
| 78 | 76, 77 | oveq12d 7378 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
((1st ‘𝑎)
++ (2nd ‘𝑎)) = (((1st ‘𝑏) prefix (2nd
‘𝑏)) ++
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉))) |
| 79 | | vex 3437 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ 𝑢 ∈ V |
| 80 | | vex 3437 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ 𝑛 ∈ V |
| 81 | 79, 80 | op1std 7945 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (𝑏 = 〈𝑢, 𝑛〉 → (1st ‘𝑏) = 𝑢) |
| 82 | 81 | ad5antlr 742 |
. . . . . . . . . . . . . . . . . . 19
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(1st ‘𝑏) =
𝑢) |
| 83 | | simp-4r 790 |
. . . . . . . . . . . . . . . . . . 19
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
𝑢 ∈ Word 𝐴) |
| 84 | 82, 83 | eqeltrd 2841 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(1st ‘𝑏)
∈ Word 𝐴) |
| 85 | 79, 80 | op2ndd 7946 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (𝑏 = 〈𝑢, 𝑛〉 → (2nd ‘𝑏) = 𝑛) |
| 86 | 85 | ad5antlr 742 |
. . . . . . . . . . . . . . . . . . 19
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(2nd ‘𝑏) =
𝑛) |
| 87 | | simpllr 782 |
. . . . . . . . . . . . . . . . . . . 20
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
𝑛 ∈
(0...(♯‘𝑢))) |
| 88 | 82 | eqcomd 2747 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
𝑢 = (1st
‘𝑏)) |
| 89 | 88 | fveq2d 6835 |
. . . . . . . . . . . . . . . . . . . . 21
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(♯‘𝑢) =
(♯‘(1st ‘𝑏))) |
| 90 | 89 | oveq2d 7376 |
. . . . . . . . . . . . . . . . . . . 20
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(0...(♯‘𝑢)) =
(0...(♯‘(1st ‘𝑏)))) |
| 91 | 87, 90 | eleqtrd 2843 |
. . . . . . . . . . . . . . . . . . 19
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
𝑛 ∈
(0...(♯‘(1st ‘𝑏)))) |
| 92 | 86, 91 | eqeltrd 2841 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(2nd ‘𝑏)
∈ (0...(♯‘(1st ‘𝑏)))) |
| 93 | | pfxcctswrd 14667 |
. . . . . . . . . . . . . . . . . 18
⊢
(((1st ‘𝑏) ∈ Word 𝐴 ∧ (2nd ‘𝑏) ∈
(0...(♯‘(1st ‘𝑏)))) → (((1st ‘𝑏) prefix (2nd
‘𝑏)) ++
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) =
(1st ‘𝑏)) |
| 94 | 84, 92, 93 | syl2anc 591 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(((1st ‘𝑏)
prefix (2nd ‘𝑏)) ++ ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉)) = (1st ‘𝑏)) |
| 95 | 78, 94 | eqtr2d 2777 |
. . . . . . . . . . . . . . . 16
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(1st ‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) |
| 96 | 76 | fveq2d 6835 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(♯‘(1st ‘𝑎)) = (♯‘((1st
‘𝑏) prefix
(2nd ‘𝑏)))) |
| 97 | | pfxlen 14641 |
. . . . . . . . . . . . . . . . . 18
⊢
(((1st ‘𝑏) ∈ Word 𝐴 ∧ (2nd ‘𝑏) ∈
(0...(♯‘(1st ‘𝑏)))) → (♯‘((1st
‘𝑏) prefix
(2nd ‘𝑏)))
= (2nd ‘𝑏)) |
| 98 | 84, 92, 97 | syl2anc 591 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(♯‘((1st ‘𝑏) prefix (2nd ‘𝑏))) = (2nd
‘𝑏)) |
| 99 | 96, 98 | eqtr2d 2777 |
. . . . . . . . . . . . . . . 16
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
(2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) |
| 100 | 95, 99 | jca 517 |
. . . . . . . . . . . . . . 15
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏))) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) →
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎)))) |
| 101 | 100 | anasss 468 |
. . . . . . . . . . . . . 14
⊢
((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ ((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉))) →
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎)))) |
| 102 | | simplr 775 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (1st ‘𝑏) = ((1st
‘𝑎) ++
(2nd ‘𝑎))) |
| 103 | | simpr 486 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) |
| 104 | 102, 103 | oveq12d 7378 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → ((1st ‘𝑏) prefix (2nd
‘𝑏)) =
(((1st ‘𝑎)
++ (2nd ‘𝑎)) prefix (♯‘(1st
‘𝑎)))) |
| 105 | 8 | ad5antr 741 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (1st ‘𝑎) ∈ Word 𝐴) |
| 106 | 10 | ad5antr 741 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (2nd ‘𝑎) ∈ Word 𝐴) |
| 107 | | pfxccat1 14659 |
. . . . . . . . . . . . . . . . . 18
⊢
(((1st ‘𝑎) ∈ Word 𝐴 ∧ (2nd ‘𝑎) ∈ Word 𝐴) → (((1st ‘𝑎) ++ (2nd
‘𝑎)) prefix
(♯‘(1st ‘𝑎))) = (1st ‘𝑎)) |
| 108 | 105, 106,
107 | syl2anc 591 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (((1st ‘𝑎) ++ (2nd
‘𝑎)) prefix
(♯‘(1st ‘𝑎))) = (1st ‘𝑎)) |
| 109 | 104, 108 | eqtr2d 2777 |
. . . . . . . . . . . . . . . 16
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (1st ‘𝑎) = ((1st
‘𝑏) prefix
(2nd ‘𝑏))) |
| 110 | 102 | fveq2d 6835 |
. . . . . . . . . . . . . . . . . . . 20
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (♯‘(1st
‘𝑏)) =
(♯‘((1st ‘𝑎) ++ (2nd ‘𝑎)))) |
| 111 | 105, 106,
31 | syl2anc 591 |
. . . . . . . . . . . . . . . . . . . 20
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (♯‘((1st
‘𝑎) ++
(2nd ‘𝑎)))
= ((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎)))) |
| 112 | 110, 111 | eqtrd 2776 |
. . . . . . . . . . . . . . . . . . 19
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (♯‘(1st
‘𝑏)) =
((♯‘(1st ‘𝑎)) + (♯‘(2nd
‘𝑎)))) |
| 113 | 103, 112 | opeq12d 4815 |
. . . . . . . . . . . . . . . . . 18
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → 〈(2nd ‘𝑏),
(♯‘(1st ‘𝑏))〉 =
〈(♯‘(1st ‘𝑎)), ((♯‘(1st
‘𝑎)) +
(♯‘(2nd ‘𝑎)))〉) |
| 114 | 102, 113 | oveq12d 7378 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉) = (((1st ‘𝑎) ++ (2nd
‘𝑎)) substr
〈(♯‘(1st ‘𝑎)), ((♯‘(1st
‘𝑎)) +
(♯‘(2nd ‘𝑎)))〉)) |
| 115 | | swrdccat2 14627 |
. . . . . . . . . . . . . . . . . 18
⊢
(((1st ‘𝑎) ∈ Word 𝐴 ∧ (2nd ‘𝑎) ∈ Word 𝐴) → (((1st ‘𝑎) ++ (2nd
‘𝑎)) substr
〈(♯‘(1st ‘𝑎)), ((♯‘(1st
‘𝑎)) +
(♯‘(2nd ‘𝑎)))〉) = (2nd ‘𝑎)) |
| 116 | 105, 106,
115 | syl2anc 591 |
. . . . . . . . . . . . . . . . 17
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (((1st ‘𝑎) ++ (2nd
‘𝑎)) substr
〈(♯‘(1st ‘𝑎)), ((♯‘(1st
‘𝑎)) +
(♯‘(2nd ‘𝑎)))〉) = (2nd ‘𝑎)) |
| 117 | 114, 116 | eqtr2d 2777 |
. . . . . . . . . . . . . . . 16
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) |
| 118 | 109, 117 | jca 517 |
. . . . . . . . . . . . . . 15
⊢
(((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ (1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎))) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))) → ((1st ‘𝑎) = ((1st
‘𝑏) prefix
(2nd ‘𝑏))
∧ (2nd ‘𝑎) = ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉))) |
| 119 | 118 | anasss 468 |
. . . . . . . . . . . . . 14
⊢
((((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) ∧ ((1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎)) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎)))) → ((1st ‘𝑎) = ((1st
‘𝑏) prefix
(2nd ‘𝑏))
∧ (2nd ‘𝑎) = ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉))) |
| 120 | 101, 119 | impbida 807 |
. . . . . . . . . . . . 13
⊢
(((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ 𝑢 ∈ Word 𝐴) ∧ 𝑛 ∈ (0...(♯‘𝑢))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎))))) |
| 121 | 120 | anasss 468 |
. . . . . . . . . . . 12
⊢ ((((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 = 〈𝑢, 𝑛〉) ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎))))) |
| 122 | 121 | expl 459 |
. . . . . . . . . . 11
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ((𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎)))))) |
| 123 | 122 | adantlr 722 |
. . . . . . . . . 10
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ((𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎)))))) |
| 124 | 123 | exlimdv 1941 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (∃𝑛(𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢)))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎)))))) |
| 125 | 124 | imp 408 |
. . . . . . . 8
⊢ ((((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ ∃𝑛(𝑏 = 〈𝑢, 𝑛〉 ∧ (𝑢 ∈ Word 𝐴 ∧ 𝑛 ∈ (0...(♯‘𝑢))))) → (((1st
‘𝑎) =
((1st ‘𝑏)
prefix (2nd ‘𝑏)) ∧ (2nd ‘𝑎) = ((1st
‘𝑏) substr
〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)) ↔
((1st ‘𝑏)
= ((1st ‘𝑎) ++ (2nd ‘𝑎)) ∧ (2nd
‘𝑏) =
(♯‘(1st ‘𝑎))))) |
| 126 | 75, 125 | exlimddv 1943 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (((1st ‘𝑎) = ((1st
‘𝑏) prefix
(2nd ‘𝑏))
∧ (2nd ‘𝑎) = ((1st ‘𝑏) substr 〈(2nd
‘𝑏),
(♯‘(1st ‘𝑏))〉)) ↔ ((1st
‘𝑏) =
((1st ‘𝑎)
++ (2nd ‘𝑎)) ∧ (2nd ‘𝑏) =
(♯‘(1st ‘𝑎))))) |
| 127 | | eqop 7977 |
. . . . . . . 8
⊢ (𝑎 ∈ (Word 𝐴 × Word 𝐴) → (𝑎 = 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
↔ ((1st ‘𝑎) = ((1st ‘𝑏) prefix (2nd
‘𝑏)) ∧
(2nd ‘𝑎) =
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)))) |
| 128 | 127 | adantl 483 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (𝑎 = 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
↔ ((1st ‘𝑎) = ((1st ‘𝑏) prefix (2nd
‘𝑏)) ∧
(2nd ‘𝑎) =
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)))) |
| 129 | | snssi 4720 |
. . . . . . . . . . . . 13
⊢ (𝑤 ∈ Word 𝐴 → {𝑤} ⊆ Word 𝐴) |
| 130 | 129 | adantl 483 |
. . . . . . . . . . . 12
⊢ (((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑤 ∈ Word 𝐴) → {𝑤} ⊆ Word 𝐴) |
| 131 | | fz0ssnn0 13571 |
. . . . . . . . . . . 12
⊢
(0...(♯‘𝑤)) ⊆
ℕ0 |
| 132 | | xpss12 5636 |
. . . . . . . . . . . 12
⊢ (({𝑤} ⊆ Word 𝐴 ∧ (0...(♯‘𝑤)) ⊆ ℕ0)
→ ({𝑤} ×
(0...(♯‘𝑤)))
⊆ (Word 𝐴 ×
ℕ0)) |
| 133 | 130, 131,
132 | sylancl 593 |
. . . . . . . . . . 11
⊢ (((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑤 ∈ Word 𝐴) → ({𝑤} × (0...(♯‘𝑤))) ⊆ (Word 𝐴 ×
ℕ0)) |
| 134 | 133 | iunssd 4983 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ⊆ (Word 𝐴 ×
ℕ0)) |
| 135 | 134 | adantlr 722 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → ∪ 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ⊆ (Word 𝐴 ×
ℕ0)) |
| 136 | 135, 64 | sseldd 3918 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → 𝑏 ∈ (Word 𝐴 ×
ℕ0)) |
| 137 | | eqop 7977 |
. . . . . . . 8
⊢ (𝑏 ∈ (Word 𝐴 × ℕ0) → (𝑏 = 〈((1st
‘𝑎) ++
(2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉 ↔ ((1st ‘𝑏) = ((1st
‘𝑎) ++
(2nd ‘𝑎))
∧ (2nd ‘𝑏) = (♯‘(1st
‘𝑎))))) |
| 138 | 136, 137 | syl 17 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (𝑏 = 〈((1st ‘𝑎) ++ (2nd
‘𝑎)),
(♯‘(1st ‘𝑎))〉 ↔ ((1st ‘𝑏) = ((1st
‘𝑎) ++
(2nd ‘𝑎))
∧ (2nd ‘𝑏) = (♯‘(1st
‘𝑎))))) |
| 139 | 126, 128,
138 | 3bitr4d 313 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑏 ∈ 𝑈) ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) → (𝑎 = 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
↔ 𝑏 =
〈((1st ‘𝑎) ++ (2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉)) |
| 140 | 139 | an32s 659 |
. . . . 5
⊢ (((𝜑 ∧ 𝑎 ∈ (Word 𝐴 × Word 𝐴)) ∧ 𝑏 ∈ 𝑈) → (𝑎 = 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
↔ 𝑏 =
〈((1st ‘𝑎) ++ (2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉)) |
| 141 | 140 | anasss 468 |
. . . 4
⊢ ((𝜑 ∧ (𝑎 ∈ (Word 𝐴 × Word 𝐴) ∧ 𝑏 ∈ 𝑈)) → (𝑎 = 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉
↔ 𝑏 =
〈((1st ‘𝑎) ++ (2nd ‘𝑎)),
(♯‘(1st ‘𝑎))〉)) |
| 142 | 1, 39, 63, 141 | f1ocnv2d 7613 |
. . 3
⊢ (𝜑 → (𝐹:(Word 𝐴 × Word 𝐴)–1-1-onto→𝑈 ∧ ◡𝐹 = (𝑏 ∈ 𝑈 ↦ 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉))) |
| 143 | 142 | simpld 496 |
. 2
⊢ (𝜑 → 𝐹:(Word 𝐴 × Word 𝐴)–1-1-onto→𝑈) |
| 144 | 142 | simprd 497 |
. . 3
⊢ (𝜑 → ◡𝐹 = (𝑏 ∈ 𝑈 ↦ 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉)) |
| 145 | | gsumwrd2dccatlem.g |
. . 3
⊢ 𝐺 = (𝑏 ∈ 𝑈 ↦ 〈((1st ‘𝑏) prefix (2nd
‘𝑏)),
((1st ‘𝑏)
substr 〈(2nd ‘𝑏), (♯‘(1st
‘𝑏))〉)〉) |
| 146 | 144, 145 | eqtr4di 2794 |
. 2
⊢ (𝜑 → ◡𝐹 = 𝐺) |
| 147 | 143, 146 | jca 517 |
1
⊢ (𝜑 → (𝐹:(Word 𝐴 × Word 𝐴)–1-1-onto→𝑈 ∧ ◡𝐹 = 𝐺)) |