Metamath Proof Explorer


Theorem dmdprdsplit

Description: The direct product splits into the direct product of any partition of the index set. (Contributed by Mario Carneiro, 25-Apr-2016)

Ref Expression
Hypotheses dprdsplit.2 ( 𝜑𝑆 : 𝐼 ⟶ ( SubGrp ‘ 𝐺 ) )
dprdsplit.i ( 𝜑 → ( 𝐶𝐷 ) = ∅ )
dprdsplit.u ( 𝜑𝐼 = ( 𝐶𝐷 ) )
dmdprdsplit.z 𝑍 = ( Cntz ‘ 𝐺 )
dmdprdsplit.0 0 = ( 0g𝐺 )
Assertion dmdprdsplit ( 𝜑 → ( 𝐺 dom DProd 𝑆 ↔ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) )

Proof

Step Hyp Ref Expression
1 dprdsplit.2 ( 𝜑𝑆 : 𝐼 ⟶ ( SubGrp ‘ 𝐺 ) )
2 dprdsplit.i ( 𝜑 → ( 𝐶𝐷 ) = ∅ )
3 dprdsplit.u ( 𝜑𝐼 = ( 𝐶𝐷 ) )
4 dmdprdsplit.z 𝑍 = ( Cntz ‘ 𝐺 )
5 dmdprdsplit.0 0 = ( 0g𝐺 )
6 simpr ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐺 dom DProd 𝑆 )
7 1 fdmd ( 𝜑 → dom 𝑆 = 𝐼 )
8 7 adantr ( ( 𝜑𝐺 dom DProd 𝑆 ) → dom 𝑆 = 𝐼 )
9 ssun1 𝐶 ⊆ ( 𝐶𝐷 )
10 3 adantr ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐼 = ( 𝐶𝐷 ) )
11 9 10 sseqtrrid ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐶𝐼 )
12 6 8 11 dprdres ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝐺 DProd 𝑆 ) ) )
13 12 simpld ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐺 dom DProd ( 𝑆𝐶 ) )
14 ssun2 𝐷 ⊆ ( 𝐶𝐷 )
15 14 10 sseqtrrid ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐷𝐼 )
16 6 8 15 dprdres ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( 𝐺 dom DProd ( 𝑆𝐷 ) ∧ ( 𝐺 DProd ( 𝑆𝐷 ) ) ⊆ ( 𝐺 DProd 𝑆 ) ) )
17 16 simpld ( ( 𝜑𝐺 dom DProd 𝑆 ) → 𝐺 dom DProd ( 𝑆𝐷 ) )
18 13 17 jca ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) )
19 2 adantr ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( 𝐶𝐷 ) = ∅ )
20 6 8 11 15 19 4 dprdcntz2 ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) )
21 6 8 11 15 19 5 dprddisj2 ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } )
22 18 20 21 3jca ( ( 𝜑𝐺 dom DProd 𝑆 ) → ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) )
23 1 adantr ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → 𝑆 : 𝐼 ⟶ ( SubGrp ‘ 𝐺 ) )
24 2 adantr ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → ( 𝐶𝐷 ) = ∅ )
25 3 adantr ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → 𝐼 = ( 𝐶𝐷 ) )
26 simpr1l ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → 𝐺 dom DProd ( 𝑆𝐶 ) )
27 simpr1r ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → 𝐺 dom DProd ( 𝑆𝐷 ) )
28 simpr2 ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) )
29 simpr3 ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } )
30 23 24 25 4 5 26 27 28 29 dmdprdsplit2 ( ( 𝜑 ∧ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) → 𝐺 dom DProd 𝑆 )
31 22 30 impbida ( 𝜑 → ( 𝐺 dom DProd 𝑆 ↔ ( ( 𝐺 dom DProd ( 𝑆𝐶 ) ∧ 𝐺 dom DProd ( 𝑆𝐷 ) ) ∧ ( 𝐺 DProd ( 𝑆𝐶 ) ) ⊆ ( 𝑍 ‘ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) ∧ ( ( 𝐺 DProd ( 𝑆𝐶 ) ) ∩ ( 𝐺 DProd ( 𝑆𝐷 ) ) ) = { 0 } ) ) )