Metamath Proof Explorer


Theorem idomcanl

Description: Cancellation law for domains. (Contributed by Jeff Madsen, 6-Jan-2011) (Revised by AV, 13-Jul-2026)

Ref Expression
Hypotheses isidom3.b
|- B = ( Base ` R )
isidom3.t
|- .x. = ( .r ` R )
isidom3.0
|- .0. = ( 0g ` R )
Assertion idomcanl
|- ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( X .x. Y ) = ( X .x. Z ) -> Y = Z ) )

Proof

Step Hyp Ref Expression
1 isidom3.b
 |-  B = ( Base ` R )
2 isidom3.t
 |-  .x. = ( .r ` R )
3 isidom3.0
 |-  .0. = ( 0g ` R )
4 eqid
 |-  ( -g ` R ) = ( -g ` R )
5 isidom
 |-  ( R e. IDomn <-> ( R e. CRing /\ R e. Domn ) )
6 crngring
 |-  ( R e. CRing -> R e. Ring )
7 6 adantr
 |-  ( ( R e. CRing /\ R e. Domn ) -> R e. Ring )
8 5 7 sylbi
 |-  ( R e. IDomn -> R e. Ring )
9 8 adantr
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> R e. Ring )
10 simpr1
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> X e. B )
11 simpr2
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> Y e. B )
12 simpr3
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> Z e. B )
13 1 2 4 9 10 11 12 ringsubdi
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( X .x. ( Y ( -g ` R ) Z ) ) = ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) )
14 13 adantr
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( X .x. ( Y ( -g ` R ) Z ) ) = ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) )
15 14 eqeq1d
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. <-> ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. ) )
16 8 ringgrpd
 |-  ( R e. IDomn -> R e. Grp )
17 1 4 grpsubcl
 |-  ( ( R e. Grp /\ Y e. B /\ Z e. B ) -> ( Y ( -g ` R ) Z ) e. B )
18 17 3expb
 |-  ( ( R e. Grp /\ ( Y e. B /\ Z e. B ) ) -> ( Y ( -g ` R ) Z ) e. B )
19 16 18 sylan
 |-  ( ( R e. IDomn /\ ( Y e. B /\ Z e. B ) ) -> ( Y ( -g ` R ) Z ) e. B )
20 19 adantlr
 |-  ( ( ( R e. IDomn /\ X e. B ) /\ ( Y e. B /\ Z e. B ) ) -> ( Y ( -g ` R ) Z ) e. B )
21 1 2 3 idomnzd
 |-  ( ( R e. IDomn /\ ( X e. B /\ ( Y ( -g ` R ) Z ) e. B /\ ( X .x. ( Y ( -g ` R ) Z ) ) = .0. ) ) -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) )
22 21 3exp2
 |-  ( R e. IDomn -> ( X e. B -> ( ( Y ( -g ` R ) Z ) e. B -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) ) ) ) )
23 22 imp31
 |-  ( ( ( R e. IDomn /\ X e. B ) /\ ( Y ( -g ` R ) Z ) e. B ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) ) )
24 20 23 syldan
 |-  ( ( ( R e. IDomn /\ X e. B ) /\ ( Y e. B /\ Z e. B ) ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) ) )
25 24 exp43
 |-  ( R e. IDomn -> ( X e. B -> ( Y e. B -> ( Z e. B -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) ) ) ) ) )
26 25 3imp2
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) ) )
27 neor
 |-  ( ( X = .0. \/ ( Y ( -g ` R ) Z ) = .0. ) <-> ( X =/= .0. -> ( Y ( -g ` R ) Z ) = .0. ) )
28 26 27 imbitrdi
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( X =/= .0. -> ( Y ( -g ` R ) Z ) = .0. ) ) )
29 28 com23
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( X =/= .0. -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( Y ( -g ` R ) Z ) = .0. ) ) )
30 29 imp
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( X .x. ( Y ( -g ` R ) Z ) ) = .0. -> ( Y ( -g ` R ) Z ) = .0. ) )
31 15 30 sylbird
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. -> ( Y ( -g ` R ) Z ) = .0. ) )
32 16 adantr
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> R e. Grp )
33 1 2 9 10 11 ringcld
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( X .x. Y ) e. B )
34 1 2 9 10 12 ringcld
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( X .x. Z ) e. B )
35 1 3 4 grpsubeq0
 |-  ( ( R e. Grp /\ ( X .x. Y ) e. B /\ ( X .x. Z ) e. B ) -> ( ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. <-> ( X .x. Y ) = ( X .x. Z ) ) )
36 35 bicomd
 |-  ( ( R e. Grp /\ ( X .x. Y ) e. B /\ ( X .x. Z ) e. B ) -> ( ( X .x. Y ) = ( X .x. Z ) <-> ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. ) )
37 32 33 34 36 syl3anc
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( ( X .x. Y ) = ( X .x. Z ) <-> ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. ) )
38 37 adantr
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( X .x. Y ) = ( X .x. Z ) <-> ( ( X .x. Y ) ( -g ` R ) ( X .x. Z ) ) = .0. ) )
39 1 3 4 grpsubeq0
 |-  ( ( R e. Grp /\ Y e. B /\ Z e. B ) -> ( ( Y ( -g ` R ) Z ) = .0. <-> Y = Z ) )
40 39 bicomd
 |-  ( ( R e. Grp /\ Y e. B /\ Z e. B ) -> ( Y = Z <-> ( Y ( -g ` R ) Z ) = .0. ) )
41 40 3expb
 |-  ( ( R e. Grp /\ ( Y e. B /\ Z e. B ) ) -> ( Y = Z <-> ( Y ( -g ` R ) Z ) = .0. ) )
42 16 41 sylan
 |-  ( ( R e. IDomn /\ ( Y e. B /\ Z e. B ) ) -> ( Y = Z <-> ( Y ( -g ` R ) Z ) = .0. ) )
43 42 3adantr1
 |-  ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) -> ( Y = Z <-> ( Y ( -g ` R ) Z ) = .0. ) )
44 43 adantr
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( Y = Z <-> ( Y ( -g ` R ) Z ) = .0. ) )
45 31 38 44 3imtr4d
 |-  ( ( ( R e. IDomn /\ ( X e. B /\ Y e. B /\ Z e. B ) ) /\ X =/= .0. ) -> ( ( X .x. Y ) = ( X .x. Z ) -> Y = Z ) )