Metamath Proof Explorer


Definition df-mnring

Description: Define the monoid ring function. This takes a monoid M and a ring R and produces a free left module over R with a product extending the monoid function on M . (Contributed by Rohan Ridenour, 13-May-2024)

Ref Expression
Assertion df-mnring MndRing = ( 𝑟 ∈ V , 𝑚 ∈ V ↦ ( 𝑟 freeLMod ( Base ‘ 𝑚 ) ) / 𝑣 ( 𝑣 sSet ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩ ) )

Detailed syntax breakdown

Step Hyp Ref Expression
0 cmnring MndRing
1 vr 𝑟
2 cvv V
3 vm 𝑚
4 1 cv 𝑟
5 cfrlm freeLMod
6 cbs Base
7 3 cv 𝑚
8 7 6 cfv ( Base ‘ 𝑚 )
9 4 8 5 co ( 𝑟 freeLMod ( Base ‘ 𝑚 ) )
10 vv 𝑣
11 10 cv 𝑣
12 csts sSet
13 cmulr .r
14 cnx ndx
15 14 13 cfv ( .r ‘ ndx )
16 vx 𝑥
17 11 6 cfv ( Base ‘ 𝑣 )
18 vy 𝑦
19 cgsu Σg
20 va 𝑎
21 vb 𝑏
22 vi 𝑖
23 22 cv 𝑖
24 20 cv 𝑎
25 cplusg +g
26 7 25 cfv ( +g𝑚 )
27 21 cv 𝑏
28 24 27 26 co ( 𝑎 ( +g𝑚 ) 𝑏 )
29 23 28 wceq 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 )
30 16 cv 𝑥
31 24 30 cfv ( 𝑥𝑎 )
32 4 13 cfv ( .r𝑟 )
33 18 cv 𝑦
34 27 33 cfv ( 𝑦𝑏 )
35 31 34 32 co ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) )
36 c0g 0g
37 4 36 cfv ( 0g𝑟 )
38 29 35 37 cif if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) )
39 22 8 38 cmpt ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) )
40 20 21 8 8 39 cmpo ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) )
41 11 40 19 co ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) )
42 16 18 17 17 41 cmpo ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) )
43 15 42 cop ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩
44 11 43 12 co ( 𝑣 sSet ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩ )
45 10 9 44 csb ( 𝑟 freeLMod ( Base ‘ 𝑚 ) ) / 𝑣 ( 𝑣 sSet ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩ )
46 1 3 2 2 45 cmpo ( 𝑟 ∈ V , 𝑚 ∈ V ↦ ( 𝑟 freeLMod ( Base ‘ 𝑚 ) ) / 𝑣 ( 𝑣 sSet ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩ ) )
47 0 46 wceq MndRing = ( 𝑟 ∈ V , 𝑚 ∈ V ↦ ( 𝑟 freeLMod ( Base ‘ 𝑚 ) ) / 𝑣 ( 𝑣 sSet ⟨ ( .r ‘ ndx ) , ( 𝑥 ∈ ( Base ‘ 𝑣 ) , 𝑦 ∈ ( Base ‘ 𝑣 ) ↦ ( 𝑣 Σg ( 𝑎 ∈ ( Base ‘ 𝑚 ) , 𝑏 ∈ ( Base ‘ 𝑚 ) ↦ ( 𝑖 ∈ ( Base ‘ 𝑚 ) ↦ if ( 𝑖 = ( 𝑎 ( +g𝑚 ) 𝑏 ) , ( ( 𝑥𝑎 ) ( .r𝑟 ) ( 𝑦𝑏 ) ) , ( 0g𝑟 ) ) ) ) ) ) ⟩ ) )