Metamath Proof Explorer


Theorem grprcan

Description: Right cancellation law for groups. (Contributed by NM, 24-Aug-2011) (Proof shortened by Mario Carneiro, 6-Jan-2015)

Ref Expression
Hypotheses grprcan.b
|- B = ( Base ` G )
grprcan.p
|- .+ = ( +g ` G )
Assertion grprcan
|- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .+ Z ) = ( Y .+ Z ) <-> X = Y ) )

Proof

Step Hyp Ref Expression
1 grprcan.b
 |-  B = ( Base ` G )
2 grprcan.p
 |-  .+ = ( +g ` G )
3 eqid
 |-  ( 0g ` G ) = ( 0g ` G )
4 1 2 3 grpinvex
 |-  ( ( G e. Grp /\ Z e. B ) -> E. y e. B ( y .+ Z ) = ( 0g ` G ) )
5 4 3ad2antr3
 |-  ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> E. y e. B ( y .+ Z ) = ( 0g ` G ) )
6 simprr
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( X .+ Z ) = ( Y .+ Z ) )
7 6 oveq1d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( ( X .+ Z ) .+ y ) = ( ( Y .+ Z ) .+ y ) )
8 simpll
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> G e. Grp )
9 1 2 grpass
 |-  ( ( G e. Grp /\ ( u e. B /\ v e. B /\ w e. B ) ) -> ( ( u .+ v ) .+ w ) = ( u .+ ( v .+ w ) ) )
10 8 9 sylan
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ ( u e. B /\ v e. B /\ w e. B ) ) -> ( ( u .+ v ) .+ w ) = ( u .+ ( v .+ w ) ) )
11 simplr1
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> X e. B )
12 simplr3
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> Z e. B )
13 simprll
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> y e. B )
14 10 11 12 13 caovassd
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( ( X .+ Z ) .+ y ) = ( X .+ ( Z .+ y ) ) )
15 simplr2
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> Y e. B )
16 10 15 12 13 caovassd
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( ( Y .+ Z ) .+ y ) = ( Y .+ ( Z .+ y ) ) )
17 7 14 16 3eqtr3d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( X .+ ( Z .+ y ) ) = ( Y .+ ( Z .+ y ) ) )
18 1 2 grpcl
 |-  ( ( G e. Grp /\ u e. B /\ v e. B ) -> ( u .+ v ) e. B )
19 8 18 syl3an1
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ u e. B /\ v e. B ) -> ( u .+ v ) e. B )
20 1 3 grpidcl
 |-  ( G e. Grp -> ( 0g ` G ) e. B )
21 8 20 syl
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( 0g ` G ) e. B )
22 1 2 3 grplid
 |-  ( ( G e. Grp /\ u e. B ) -> ( ( 0g ` G ) .+ u ) = u )
23 8 22 sylan
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ u e. B ) -> ( ( 0g ` G ) .+ u ) = u )
24 1 2 3 grpinvex
 |-  ( ( G e. Grp /\ u e. B ) -> E. v e. B ( v .+ u ) = ( 0g ` G ) )
25 8 24 sylan
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ u e. B ) -> E. v e. B ( v .+ u ) = ( 0g ` G ) )
26 simpr
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ Z e. B ) -> Z e. B )
27 13 adantr
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ Z e. B ) -> y e. B )
28 simprlr
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( y .+ Z ) = ( 0g ` G ) )
29 28 adantr
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ Z e. B ) -> ( y .+ Z ) = ( 0g ` G ) )
30 19 21 23 10 25 26 27 29 grprinvd
 |-  ( ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) /\ Z e. B ) -> ( Z .+ y ) = ( 0g ` G ) )
31 12 30 mpdan
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( Z .+ y ) = ( 0g ` G ) )
32 31 oveq2d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( X .+ ( Z .+ y ) ) = ( X .+ ( 0g ` G ) ) )
33 31 oveq2d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( Y .+ ( Z .+ y ) ) = ( Y .+ ( 0g ` G ) ) )
34 17 32 33 3eqtr3d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( X .+ ( 0g ` G ) ) = ( Y .+ ( 0g ` G ) ) )
35 1 2 3 grprid
 |-  ( ( G e. Grp /\ X e. B ) -> ( X .+ ( 0g ` G ) ) = X )
36 8 11 35 syl2anc
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( X .+ ( 0g ` G ) ) = X )
37 1 2 3 grprid
 |-  ( ( G e. Grp /\ Y e. B ) -> ( Y .+ ( 0g ` G ) ) = Y )
38 8 15 37 syl2anc
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> ( Y .+ ( 0g ` G ) ) = Y )
39 34 36 38 3eqtr3d
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) /\ ( X .+ Z ) = ( Y .+ Z ) ) ) -> X = Y )
40 39 expr
 |-  ( ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ ( y e. B /\ ( y .+ Z ) = ( 0g ` G ) ) ) -> ( ( X .+ Z ) = ( Y .+ Z ) -> X = Y ) )
41 5 40 rexlimddv
 |-  ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .+ Z ) = ( Y .+ Z ) -> X = Y ) )
42 oveq1
 |-  ( X = Y -> ( X .+ Z ) = ( Y .+ Z ) )
43 41 42 impbid1
 |-  ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .+ Z ) = ( Y .+ Z ) <-> X = Y ) )