Metamath Proof Explorer


Theorem grplcan

Description: Left cancellation law for groups. (Contributed by NM, 25-Aug-2011)

Ref Expression
Hypotheses grplcan.b 𝐵 = ( Base ‘ 𝐺 )
grplcan.p + = ( +g𝐺 )
Assertion grplcan ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ↔ 𝑋 = 𝑌 ) )

Proof

Step Hyp Ref Expression
1 grplcan.b 𝐵 = ( Base ‘ 𝐺 )
2 grplcan.p + = ( +g𝐺 )
3 oveq2 ( ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) )
4 3 adantl ( ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) ∧ ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) )
5 eqid ( 0g𝐺 ) = ( 0g𝐺 )
6 eqid ( invg𝐺 ) = ( invg𝐺 )
7 1 2 5 6 grplinv ( ( 𝐺 ∈ Grp ∧ 𝑍𝐵 ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) = ( 0g𝐺 ) )
8 7 adantlr ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ 𝑍𝐵 ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) = ( 0g𝐺 ) )
9 8 oveq1d ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ 𝑍𝐵 ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑋 ) = ( ( 0g𝐺 ) + 𝑋 ) )
10 1 6 grpinvcl ( ( 𝐺 ∈ Grp ∧ 𝑍𝐵 ) → ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵 )
11 10 adantrl ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑍𝐵 ) ) → ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵 )
12 simprr ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑍𝐵 ) ) → 𝑍𝐵 )
13 simprl ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑍𝐵 ) ) → 𝑋𝐵 )
14 11 12 13 3jca ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵𝑍𝐵𝑋𝐵 ) )
15 1 2 grpass ( ( 𝐺 ∈ Grp ∧ ( ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵𝑍𝐵𝑋𝐵 ) ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑋 ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) )
16 14 15 syldan ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑍𝐵 ) ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑋 ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) )
17 16 anassrs ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ 𝑍𝐵 ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑋 ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) )
18 1 2 5 grplid ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) → ( ( 0g𝐺 ) + 𝑋 ) = 𝑋 )
19 18 adantr ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ 𝑍𝐵 ) → ( ( 0g𝐺 ) + 𝑋 ) = 𝑋 )
20 9 17 19 3eqtr3d ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ 𝑍𝐵 ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) = 𝑋 )
21 20 adantrl ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) = 𝑋 )
22 21 adantr ( ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) ∧ ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑋 ) ) = 𝑋 )
23 7 adantrl ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) = ( 0g𝐺 ) )
24 23 oveq1d ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑌 ) = ( ( 0g𝐺 ) + 𝑌 ) )
25 10 adantrl ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵 )
26 simprr ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → 𝑍𝐵 )
27 simprl ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → 𝑌𝐵 )
28 25 26 27 3jca ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵𝑍𝐵𝑌𝐵 ) )
29 1 2 grpass ( ( 𝐺 ∈ Grp ∧ ( ( ( invg𝐺 ) ‘ 𝑍 ) ∈ 𝐵𝑍𝐵𝑌𝐵 ) ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑌 ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) )
30 28 29 syldan ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( ( invg𝐺 ) ‘ 𝑍 ) + 𝑍 ) + 𝑌 ) = ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) )
31 1 2 5 grplid ( ( 𝐺 ∈ Grp ∧ 𝑌𝐵 ) → ( ( 0g𝐺 ) + 𝑌 ) = 𝑌 )
32 31 adantrr ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( 0g𝐺 ) + 𝑌 ) = 𝑌 )
33 24 30 32 3eqtr3d ( ( 𝐺 ∈ Grp ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) = 𝑌 )
34 33 adantlr ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) = 𝑌 )
35 34 adantr ( ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) ∧ ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ) → ( ( ( invg𝐺 ) ‘ 𝑍 ) + ( 𝑍 + 𝑌 ) ) = 𝑌 )
36 4 22 35 3eqtr3d ( ( ( ( 𝐺 ∈ Grp ∧ 𝑋𝐵 ) ∧ ( 𝑌𝐵𝑍𝐵 ) ) ∧ ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ) → 𝑋 = 𝑌 )
37 36 exp53 ( 𝐺 ∈ Grp → ( 𝑋𝐵 → ( 𝑌𝐵 → ( 𝑍𝐵 → ( ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) → 𝑋 = 𝑌 ) ) ) ) )
38 37 3imp2 ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) → 𝑋 = 𝑌 ) )
39 oveq2 ( 𝑋 = 𝑌 → ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) )
40 38 39 impbid1 ( ( 𝐺 ∈ Grp ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑍 + 𝑋 ) = ( 𝑍 + 𝑌 ) ↔ 𝑋 = 𝑌 ) )