Users' Mathboxes Mathbox for Thierry Arnoux < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  gsumwrd2dccat Structured version   Visualization version   GIF version

Theorem gsumwrd2dccat 33158
Description: Rewrite a sum ranging over pairs of words as a sum of sums over concatenated subwords. (Contributed by Thierry Arnoux, 5-Oct-2025.)
Hypotheses
Ref Expression
gsumwrd2dccat.1 𝐵 = (Base‘𝑀)
gsumwrd2dccat.2 𝑍 = (0g𝑀)
gsumwrd2dccat.3 (𝜑𝐹:(Word 𝐴 × Word 𝐴)⟶𝐵)
gsumwrd2dccat.4 (𝜑𝐹 finSupp 𝑍)
gsumwrd2dccat.5 (𝜑𝑀 ∈ CMnd)
gsumwrd2dccat.6 (𝜑𝐴𝐵)
Assertion
Ref Expression
gsumwrd2dccat (𝜑 → (𝑀 Σg 𝐹) = (𝑀 Σg (𝑤 ∈ Word 𝐴 ↦ (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))))
Distinct variable groups:   𝑤,𝐴,𝑗   𝐵,𝑗,𝑤   𝑗,𝐹,𝑤   𝑗,𝑀,𝑤   𝑗,𝑍,𝑤   𝜑,𝑗,𝑤

Proof of Theorem gsumwrd2dccat
Dummy variables 𝑎 𝑏 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 gsumwrd2dccat.1 . . . 4 𝐵 = (Base‘𝑀)
2 gsumwrd2dccat.2 . . . 4 𝑍 = (0g𝑀)
3 gsumwrd2dccat.5 . . . 4 (𝜑𝑀 ∈ CMnd)
41fvexi 6850 . . . . . . . 8 𝐵 ∈ V
54a1i 11 . . . . . . 7 (𝜑𝐵 ∈ V)
6 gsumwrd2dccat.6 . . . . . . 7 (𝜑𝐴𝐵)
75, 6ssexd 5262 . . . . . 6 (𝜑𝐴 ∈ V)
8 wrdexg 14481 . . . . . 6 (𝐴 ∈ V → Word 𝐴 ∈ V)
97, 8syl 17 . . . . 5 (𝜑 → Word 𝐴 ∈ V)
109, 9xpexd 7700 . . . 4 (𝜑 → (Word 𝐴 × Word 𝐴) ∈ V)
11 gsumwrd2dccat.3 . . . 4 (𝜑𝐹:(Word 𝐴 × Word 𝐴)⟶𝐵)
12 gsumwrd2dccat.4 . . . 4 (𝜑𝐹 finSupp 𝑍)
13 eqid 2737 . . . . . . . 8 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) = 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))
14 eqid 2737 . . . . . . . 8 (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩) = (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩)
15 eqid 2737 . . . . . . . 8 (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) = (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)
1613, 14, 15, 7gsumwrd2dccatlem 33157 . . . . . . 7 (𝜑 → ((𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩):(Word 𝐴 × Word 𝐴)–1-1-onto 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ∧ (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩) = (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)))
1716simpld 494 . . . . . 6 (𝜑 → (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩):(Word 𝐴 × Word 𝐴)–1-1-onto 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))))
18 f1ocnv 6788 . . . . . 6 ((𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩):(Word 𝐴 × Word 𝐴)–1-1-onto 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) → (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴))
1917, 18syl 17 . . . . 5 (𝜑(𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴))
2016simprd 495 . . . . . 6 (𝜑(𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩) = (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))
2120f1oeq1d 6771 . . . . 5 (𝜑 → ((𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴) ↔ (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴)))
2219, 21mpbid 232 . . . 4 (𝜑 → (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴))
231, 2, 3, 10, 11, 12, 22gsumf1o 19886 . . 3 (𝜑 → (𝑀 Σg 𝐹) = (𝑀 Σg (𝐹 ∘ (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))))
24 relxp 5644 . . . . . . . . . . . 12 Rel ({𝑥} × (0...(♯‘𝑥)))
2524a1i 11 . . . . . . . . . . 11 ((𝜑𝑥 ∈ Word 𝐴) → Rel ({𝑥} × (0...(♯‘𝑥))))
2625ralrimiva 3130 . . . . . . . . . 10 (𝜑 → ∀𝑥 ∈ Word 𝐴Rel ({𝑥} × (0...(♯‘𝑥))))
27 reliun 5767 . . . . . . . . . 10 (Rel 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↔ ∀𝑥 ∈ Word 𝐴Rel ({𝑥} × (0...(♯‘𝑥))))
2826, 27sylibr 234 . . . . . . . . 9 (𝜑 → Rel 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))))
29 1stdm 7988 . . . . . . . . 9 ((Rel 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ∧ 𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (1st𝑏) ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))))
3028, 29sylan 581 . . . . . . . 8 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (1st𝑏) ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))))
31 lencl 14490 . . . . . . . . . . . . 13 (𝑥 ∈ Word 𝐴 → (♯‘𝑥) ∈ ℕ0)
3231adantl 481 . . . . . . . . . . . 12 ((𝜑𝑥 ∈ Word 𝐴) → (♯‘𝑥) ∈ ℕ0)
33 nn0uz 12821 . . . . . . . . . . . 12 0 = (ℤ‘0)
3432, 33eleqtrdi 2847 . . . . . . . . . . 11 ((𝜑𝑥 ∈ Word 𝐴) → (♯‘𝑥) ∈ (ℤ‘0))
35 fzn0 13487 . . . . . . . . . . 11 ((0...(♯‘𝑥)) ≠ ∅ ↔ (♯‘𝑥) ∈ (ℤ‘0))
3634, 35sylibr 234 . . . . . . . . . 10 ((𝜑𝑥 ∈ Word 𝐴) → (0...(♯‘𝑥)) ≠ ∅)
3736dmdju 32739 . . . . . . . . 9 (𝜑 → dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) = Word 𝐴)
3837adantr 480 . . . . . . . 8 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) = Word 𝐴)
3930, 38eleqtrd 2839 . . . . . . 7 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (1st𝑏) ∈ Word 𝐴)
40 pfxcl 14635 . . . . . . 7 ((1st𝑏) ∈ Word 𝐴 → ((1st𝑏) prefix (2nd𝑏)) ∈ Word 𝐴)
4139, 40syl 17 . . . . . 6 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → ((1st𝑏) prefix (2nd𝑏)) ∈ Word 𝐴)
42 swrdcl 14603 . . . . . . 7 ((1st𝑏) ∈ Word 𝐴 → ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩) ∈ Word 𝐴)
4339, 42syl 17 . . . . . 6 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩) ∈ Word 𝐴)
4441, 43opelxpd 5665 . . . . 5 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩ ∈ (Word 𝐴 × Word 𝐴))
45 sneq 4578 . . . . . . . . 9 (𝑤 = 𝑥 → {𝑤} = {𝑥})
46 fveq2 6836 . . . . . . . . . 10 (𝑤 = 𝑥 → (♯‘𝑤) = (♯‘𝑥))
4746oveq2d 7378 . . . . . . . . 9 (𝑤 = 𝑥 → (0...(♯‘𝑤)) = (0...(♯‘𝑥)))
4845, 47xpeq12d 5657 . . . . . . . 8 (𝑤 = 𝑥 → ({𝑤} × (0...(♯‘𝑤))) = ({𝑥} × (0...(♯‘𝑥))))
4948cbviunv 4982 . . . . . . 7 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) = 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))
5049mpteq1i 5177 . . . . . 6 (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) = (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)
5150a1i 11 . . . . 5 (𝜑 → (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) = (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))
5211feqmptd 6904 . . . . 5 (𝜑𝐹 = (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ (𝐹𝑎)))
53 fveq2 6836 . . . . 5 (𝑎 = ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩ → (𝐹𝑎) = (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))
5444, 51, 52, 53fmptco 7078 . . . 4 (𝜑 → (𝐹 ∘ (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)) = (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)))
5554oveq2d 7378 . . 3 (𝜑 → (𝑀 Σg (𝐹 ∘ (𝑏 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))) = (𝑀 Σg (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))))
56 nfv 1916 . . . 4 𝑤𝜑
5711, 44cofmpt 7081 . . . . 5 (𝜑 → (𝐹 ∘ (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)) = (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)))
5820, 51eqtr2d 2773 . . . . . . . . 9 (𝜑 → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) = (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩))
5949eqcomi 2746 . . . . . . . . . 10 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) = 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))
6059a1i 11 . . . . . . . . 9 (𝜑 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) = 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤))))
61 eqidd 2738 . . . . . . . . 9 (𝜑 → (Word 𝐴 × Word 𝐴) = (Word 𝐴 × Word 𝐴))
6258, 60, 61f1oeq123d 6770 . . . . . . . 8 (𝜑 → ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))–1-1-onto→(Word 𝐴 × Word 𝐴) ↔ (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩): 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))–1-1-onto→(Word 𝐴 × Word 𝐴)))
6319, 62mpbird 257 . . . . . . 7 (𝜑 → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))–1-1-onto→(Word 𝐴 × Word 𝐴))
64 f1of1 6775 . . . . . . 7 ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))–1-1-onto→(Word 𝐴 × Word 𝐴) → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))–1-1→(Word 𝐴 × Word 𝐴))
6563, 64syl 17 . . . . . 6 (𝜑 → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))–1-1→(Word 𝐴 × Word 𝐴))
662fvexi 6850 . . . . . . 7 𝑍 ∈ V
6766a1i 11 . . . . . 6 (𝜑𝑍 ∈ V)
6811, 10fexd 7177 . . . . . 6 (𝜑𝐹 ∈ V)
6912, 65, 67, 68fsuppco 9310 . . . . 5 (𝜑 → (𝐹 ∘ (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)) finSupp 𝑍)
7057, 69eqbrtrrd 5110 . . . 4 (𝜑 → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)) finSupp 𝑍)
7111adantr 480 . . . . . 6 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → 𝐹:(Word 𝐴 × Word 𝐴)⟶𝐵)
7271, 44ffvelcdmd 7033 . . . . 5 ((𝜑𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) ∈ 𝐵)
7372fmpttd 7063 . . . 4 (𝜑 → (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)): 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))⟶𝐵)
74 vsnex 5374 . . . . . . . 8 {𝑥} ∈ V
75 ovex 7395 . . . . . . . 8 (0...(♯‘𝑥)) ∈ V
7674, 75xpex 7702 . . . . . . 7 ({𝑥} × (0...(♯‘𝑥))) ∈ V
7776a1i 11 . . . . . 6 ((𝜑𝑥 ∈ Word 𝐴) → ({𝑥} × (0...(♯‘𝑥))) ∈ V)
7877ralrimiva 3130 . . . . 5 (𝜑 → ∀𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ∈ V)
79 iunexg 7911 . . . . 5 ((Word 𝐴 ∈ V ∧ ∀𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ∈ V) → 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ∈ V)
809, 78, 79syl2anc 585 . . . 4 (𝜑 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ∈ V)
8156, 1, 2, 28, 70, 3, 73, 80gsumfs2d 33141 . . 3 (𝜑 → (𝑀 Σg (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))) = (𝑀 Σg (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩))))))
8223, 55, 813eqtrd 2776 . 2 (𝜑 → (𝑀 Σg 𝐹) = (𝑀 Σg (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩))))))
83 eqid 2737 . . . . . . 7 (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)) = (𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))
84 vex 3434 . . . . . . . . . . 11 𝑤 ∈ V
85 vex 3434 . . . . . . . . . . 11 𝑗 ∈ V
8684, 85op1std 7947 . . . . . . . . . 10 (𝑏 = ⟨𝑤, 𝑗⟩ → (1st𝑏) = 𝑤)
8784, 85op2ndd 7948 . . . . . . . . . 10 (𝑏 = ⟨𝑤, 𝑗⟩ → (2nd𝑏) = 𝑗)
8886, 87oveq12d 7380 . . . . . . . . 9 (𝑏 = ⟨𝑤, 𝑗⟩ → ((1st𝑏) prefix (2nd𝑏)) = (𝑤 prefix 𝑗))
8986fveq2d 6840 . . . . . . . . . . 11 (𝑏 = ⟨𝑤, 𝑗⟩ → (♯‘(1st𝑏)) = (♯‘𝑤))
9087, 89opeq12d 4825 . . . . . . . . . 10 (𝑏 = ⟨𝑤, 𝑗⟩ → ⟨(2nd𝑏), (♯‘(1st𝑏))⟩ = ⟨𝑗, (♯‘𝑤)⟩)
9186, 90oveq12d 7380 . . . . . . . . 9 (𝑏 = ⟨𝑤, 𝑗⟩ → ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩) = (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩))
9288, 91opeq12d 4825 . . . . . . . 8 (𝑏 = ⟨𝑤, 𝑗⟩ → ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩ = ⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)
9392fveq2d 6840 . . . . . . 7 (𝑏 = ⟨𝑤, 𝑗⟩ → (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩) = (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))
9437eleq2d 2823 . . . . . . . . . 10 (𝜑 → (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↔ 𝑤 ∈ Word 𝐴))
9594biimpa 476 . . . . . . . . 9 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → 𝑤 ∈ Word 𝐴)
9695adantr 480 . . . . . . . 8 (((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) ∧ 𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤})) → 𝑤 ∈ Word 𝐴)
97 ovexd 7397 . . . . . . . . . . . 12 ((𝜑𝑥 ∈ Word 𝐴) → (0...(♯‘𝑥)) ∈ V)
98 nfcv 2899 . . . . . . . . . . . 12 𝑥(0...(♯‘𝑤))
99 fveq2 6836 . . . . . . . . . . . . 13 (𝑥 = 𝑤 → (♯‘𝑥) = (♯‘𝑤))
10099oveq2d 7378 . . . . . . . . . . . 12 (𝑥 = 𝑤 → (0...(♯‘𝑥)) = (0...(♯‘𝑤)))
1019, 97, 98, 100iunsnima2 32711 . . . . . . . . . . 11 ((𝜑𝑤 ∈ Word 𝐴) → ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) = (0...(♯‘𝑤)))
10295, 101syldan 592 . . . . . . . . . 10 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) = (0...(♯‘𝑤)))
103102eleq2d 2823 . . . . . . . . 9 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↔ 𝑗 ∈ (0...(♯‘𝑤))))
104103biimpa 476 . . . . . . . 8 (((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) ∧ 𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤})) → 𝑗 ∈ (0...(♯‘𝑤)))
105100opeliunxp2 5789 . . . . . . . 8 (⟨𝑤, 𝑗⟩ ∈ 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↔ (𝑤 ∈ Word 𝐴𝑗 ∈ (0...(♯‘𝑤))))
10696, 104, 105sylanbrc 584 . . . . . . 7 (((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) ∧ 𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤})) → ⟨𝑤, 𝑗⟩ ∈ 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))))
107 fvexd 6851 . . . . . . 7 (((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) ∧ 𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤})) → (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩) ∈ V)
10883, 93, 106, 107fvmptd3 6967 . . . . . 6 (((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) ∧ 𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤})) → ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩) = (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))
109108mpteq2dva 5179 . . . . 5 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩)) = (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)))
110109oveq2d 7378 . . . 4 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩))) = (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))
111110mpteq2dva 5179 . . 3 (𝜑 → (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩)))) = (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)))))
112111oveq2d 7378 . 2 (𝜑 → (𝑀 Σg (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ ((𝑏 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝐹‘⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩))‘⟨𝑤, 𝑗⟩))))) = (𝑀 Σg (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))))
113102mpteq1d 5176 . . . . 5 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)) = (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)))
114113oveq2d 7378 . . . 4 ((𝜑𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥)))) → (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))) = (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))
11537, 114mpteq12dva 5172 . . 3 (𝜑 → (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)))) = (𝑤 ∈ Word 𝐴 ↦ (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩)))))
116115oveq2d 7378 . 2 (𝜑 → (𝑀 Σg (𝑤 ∈ dom 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) ↦ (𝑀 Σg (𝑗 ∈ ( 𝑥 ∈ Word 𝐴({𝑥} × (0...(♯‘𝑥))) “ {𝑤}) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))) = (𝑀 Σg (𝑤 ∈ Word 𝐴 ↦ (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))))
11782, 112, 1163eqtrd 2776 1 (𝜑 → (𝑀 Σg 𝐹) = (𝑀 Σg (𝑤 ∈ Word 𝐴 ↦ (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1542  wcel 2114  wne 2933  wral 3052  Vcvv 3430  wss 3890  c0 4274  {csn 4568  cop 4574   ciun 4934   class class class wbr 5086  cmpt 5167   × cxp 5624  ccnv 5625  dom cdm 5626  cima 5629  ccom 5630  Rel wrel 5631  wf 6490  1-1wf1 6491  1-1-ontowf1o 6493  cfv 6494  (class class class)co 7362  1st c1st 7935  2nd c2nd 7936   finSupp cfsupp 9269  0cc0 11033  0cn0 12432  cuz 12783  ...cfz 13456  chash 14287  Word cword 14470   ++ cconcat 14527   substr csubstr 14598   prefix cpfx 14628  Basecbs 17174  0gc0g 17397   Σg cgsu 17398  CMndccmn 19750
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2185  ax-ext 2709  ax-rep 5213  ax-sep 5232  ax-nul 5242  ax-pow 5304  ax-pr 5372  ax-un 7684  ax-cnex 11089  ax-resscn 11090  ax-1cn 11091  ax-icn 11092  ax-addcl 11093  ax-addrcl 11094  ax-mulcl 11095  ax-mulrcl 11096  ax-mulcom 11097  ax-addass 11098  ax-mulass 11099  ax-distr 11100  ax-i2m1 11101  ax-1ne0 11102  ax-1rid 11103  ax-rnegex 11104  ax-rrecex 11105  ax-cnre 11106  ax-pre-lttri 11107  ax-pre-lttrn 11108  ax-pre-ltadd 11109  ax-pre-mulgt0 11110
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2540  df-eu 2570  df-clab 2716  df-cleq 2729  df-clel 2812  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3063  df-rmo 3343  df-reu 3344  df-rab 3391  df-v 3432  df-sbc 3730  df-csb 3839  df-dif 3893  df-un 3895  df-in 3897  df-ss 3907  df-pss 3910  df-nul 4275  df-if 4468  df-pw 4544  df-sn 4569  df-pr 4571  df-op 4575  df-uni 4852  df-int 4891  df-iun 4936  df-iin 4937  df-br 5087  df-opab 5149  df-mpt 5168  df-tr 5194  df-id 5521  df-eprel 5526  df-po 5534  df-so 5535  df-fr 5579  df-se 5580  df-we 5581  df-xp 5632  df-rel 5633  df-cnv 5634  df-co 5635  df-dm 5636  df-rn 5637  df-res 5638  df-ima 5639  df-pred 6261  df-ord 6322  df-on 6323  df-lim 6324  df-suc 6325  df-iota 6450  df-fun 6496  df-fn 6497  df-f 6498  df-f1 6499  df-fo 6500  df-f1o 6501  df-fv 6502  df-isom 6503  df-riota 7319  df-ov 7365  df-oprab 7366  df-mpo 7367  df-of 7626  df-om 7813  df-1st 7937  df-2nd 7938  df-supp 8106  df-frecs 8226  df-wrecs 8257  df-recs 8306  df-rdg 8344  df-1o 8400  df-2o 8401  df-er 8638  df-map 8770  df-en 8889  df-dom 8890  df-sdom 8891  df-fin 8892  df-fsupp 9270  df-oi 9420  df-card 9858  df-pnf 11176  df-mnf 11177  df-xr 11178  df-ltxr 11179  df-le 11180  df-sub 11374  df-neg 11375  df-nn 12170  df-2 12239  df-n0 12433  df-z 12520  df-uz 12784  df-fz 13457  df-fzo 13604  df-seq 13959  df-hash 14288  df-word 14471  df-concat 14528  df-substr 14599  df-pfx 14629  df-sets 17129  df-slot 17147  df-ndx 17159  df-base 17175  df-ress 17196  df-plusg 17228  df-0g 17399  df-gsum 17400  df-mre 17543  df-mrc 17544  df-acs 17546  df-mgm 18603  df-sgrp 18682  df-mnd 18698  df-submnd 18747  df-mulg 19039  df-cntz 19287  df-cmn 19752
This theorem is referenced by:  elrgspnlem2  33323
  Copyright terms: Public domain W3C validator