Metamath Proof Explorer


Theorem zlmodzxzsub

Description: The subtraction of the ZZ-module ZZ X. ZZ . (Contributed by AV, 22-May-2019) (Revised by AV, 10-Jun-2019)

Ref Expression
Hypotheses zlmodzxz.z 𝑍 = ( ℤring freeLMod { 0 , 1 } )
zlmodzxzsub.m = ( -g𝑍 )
Assertion zlmodzxzsub ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } )

Proof

Step Hyp Ref Expression
1 zlmodzxz.z 𝑍 = ( ℤring freeLMod { 0 , 1 } )
2 zlmodzxzsub.m = ( -g𝑍 )
3 zsubcl ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐴𝐵 ) ∈ ℤ )
4 simpr ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → 𝐵 ∈ ℤ )
5 3 4 jca ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴𝐵 ) ∈ ℤ ∧ 𝐵 ∈ ℤ ) )
6 zsubcl ( ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) → ( 𝐶𝐷 ) ∈ ℤ )
7 simpr ( ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) → 𝐷 ∈ ℤ )
8 6 7 jca ( ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) → ( ( 𝐶𝐷 ) ∈ ℤ ∧ 𝐷 ∈ ℤ ) )
9 eqid ( +g𝑍 ) = ( +g𝑍 )
10 1 9 zlmodzxzadd ( ( ( ( 𝐴𝐵 ) ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( ( 𝐶𝐷 ) ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ( +g𝑍 ) { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( ( 𝐴𝐵 ) + 𝐵 ) ⟩ , ⟨ 1 , ( ( 𝐶𝐷 ) + 𝐷 ) ⟩ } )
11 5 8 10 syl2an ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ( +g𝑍 ) { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( ( 𝐴𝐵 ) + 𝐵 ) ⟩ , ⟨ 1 , ( ( 𝐶𝐷 ) + 𝐷 ) ⟩ } )
12 zcn ( 𝐴 ∈ ℤ → 𝐴 ∈ ℂ )
13 zcn ( 𝐵 ∈ ℤ → 𝐵 ∈ ℂ )
14 npcan ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( 𝐴𝐵 ) + 𝐵 ) = 𝐴 )
15 12 13 14 syl2an ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴𝐵 ) + 𝐵 ) = 𝐴 )
16 15 adantr ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( ( 𝐴𝐵 ) + 𝐵 ) = 𝐴 )
17 16 opeq2d ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ⟨ 0 , ( ( 𝐴𝐵 ) + 𝐵 ) ⟩ = ⟨ 0 , 𝐴 ⟩ )
18 zcn ( 𝐶 ∈ ℤ → 𝐶 ∈ ℂ )
19 zcn ( 𝐷 ∈ ℤ → 𝐷 ∈ ℂ )
20 npcan ( ( 𝐶 ∈ ℂ ∧ 𝐷 ∈ ℂ ) → ( ( 𝐶𝐷 ) + 𝐷 ) = 𝐶 )
21 18 19 20 syl2an ( ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) → ( ( 𝐶𝐷 ) + 𝐷 ) = 𝐶 )
22 21 adantl ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( ( 𝐶𝐷 ) + 𝐷 ) = 𝐶 )
23 22 opeq2d ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ⟨ 1 , ( ( 𝐶𝐷 ) + 𝐷 ) ⟩ = ⟨ 1 , 𝐶 ⟩ )
24 17 23 preq12d ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → { ⟨ 0 , ( ( 𝐴𝐵 ) + 𝐵 ) ⟩ , ⟨ 1 , ( ( 𝐶𝐷 ) + 𝐷 ) ⟩ } = { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } )
25 11 24 eqtrd ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ( +g𝑍 ) { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } )
26 1 zlmodzxzlmod ( 𝑍 ∈ LMod ∧ ℤring = ( Scalar ‘ 𝑍 ) )
27 lmodgrp ( 𝑍 ∈ LMod → 𝑍 ∈ Grp )
28 27 adantr ( ( 𝑍 ∈ LMod ∧ ℤring = ( Scalar ‘ 𝑍 ) ) → 𝑍 ∈ Grp )
29 26 28 mp1i ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → 𝑍 ∈ Grp )
30 1 zlmodzxzel ( ( 𝐴 ∈ ℤ ∧ 𝐶 ∈ ℤ ) → { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } ∈ ( Base ‘ 𝑍 ) )
31 30 ad2ant2r ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } ∈ ( Base ‘ 𝑍 ) )
32 1 zlmodzxzel ( ( 𝐵 ∈ ℤ ∧ 𝐷 ∈ ℤ ) → { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ∈ ( Base ‘ 𝑍 ) )
33 4 7 32 syl2an ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ∈ ( Base ‘ 𝑍 ) )
34 1 zlmodzxzel ( ( ( 𝐴𝐵 ) ∈ ℤ ∧ ( 𝐶𝐷 ) ∈ ℤ ) → { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ∈ ( Base ‘ 𝑍 ) )
35 3 6 34 syl2an ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ∈ ( Base ‘ 𝑍 ) )
36 eqid ( Base ‘ 𝑍 ) = ( Base ‘ 𝑍 )
37 36 9 2 grpsubadd ( ( 𝑍 ∈ Grp ∧ ( { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } ∈ ( Base ‘ 𝑍 ) ∧ { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ∈ ( Base ‘ 𝑍 ) ∧ { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ∈ ( Base ‘ 𝑍 ) ) ) → ( ( { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ↔ ( { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ( +g𝑍 ) { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } ) )
38 29 31 33 35 37 syl13anc ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( ( { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ↔ ( { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } ( +g𝑍 ) { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } ) )
39 25 38 mpbird ( ( ( 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) ∧ ( 𝐶 ∈ ℤ ∧ 𝐷 ∈ ℤ ) ) → ( { ⟨ 0 , 𝐴 ⟩ , ⟨ 1 , 𝐶 ⟩ } { ⟨ 0 , 𝐵 ⟩ , ⟨ 1 , 𝐷 ⟩ } ) = { ⟨ 0 , ( 𝐴𝐵 ) ⟩ , ⟨ 1 , ( 𝐶𝐷 ) ⟩ } )