Metamath Proof Explorer

Theorem rngosubdir

Description: Ring multiplication distributes over subtraction. (Contributed by Jeff Madsen, 19-Jun-2010)

Ref Expression
Hypotheses ringsubdi.1 𝐺 = ( 1st𝑅 )
ringsubdi.2 𝐻 = ( 2nd𝑅 )
ringsubdi.3 𝑋 = ran 𝐺
ringsubdi.4 𝐷 = ( /𝑔𝐺 )
Assertion rngosubdir ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐷 𝐵 ) 𝐻 𝐶 ) = ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 ringsubdi.1 𝐺 = ( 1st𝑅 )
2 ringsubdi.2 𝐻 = ( 2nd𝑅 )
3 ringsubdi.3 𝑋 = ran 𝐺
4 ringsubdi.4 𝐷 = ( /𝑔𝐺 )
5 eqid ( inv ‘ 𝐺 ) = ( inv ‘ 𝐺 )
6 1 3 5 4 rngosub ( ( 𝑅 ∈ RingOps ∧ 𝐴𝑋𝐵𝑋 ) → ( 𝐴 𝐷 𝐵 ) = ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) )
7 6 3adant3r3 ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( 𝐴 𝐷 𝐵 ) = ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) )
8 7 oveq1d ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐷 𝐵 ) 𝐻 𝐶 ) = ( ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) 𝐻 𝐶 ) )
9 1 2 3 rngocl ( ( 𝑅 ∈ RingOps ∧ 𝐴𝑋𝐶𝑋 ) → ( 𝐴 𝐻 𝐶 ) ∈ 𝑋 )
10 9 3adant3r2 ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( 𝐴 𝐻 𝐶 ) ∈ 𝑋 )
11 1 2 3 rngocl ( ( 𝑅 ∈ RingOps ∧ 𝐵𝑋𝐶𝑋 ) → ( 𝐵 𝐻 𝐶 ) ∈ 𝑋 )
12 11 3adant3r1 ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( 𝐵 𝐻 𝐶 ) ∈ 𝑋 )
13 10 12 jca ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐻 𝐶 ) ∈ 𝑋 ∧ ( 𝐵 𝐻 𝐶 ) ∈ 𝑋 ) )
14 1 3 5 4 rngosub ( ( 𝑅 ∈ RingOps ∧ ( 𝐴 𝐻 𝐶 ) ∈ 𝑋 ∧ ( 𝐵 𝐻 𝐶 ) ∈ 𝑋 ) → ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) ) )
15 14 3expb ( ( 𝑅 ∈ RingOps ∧ ( ( 𝐴 𝐻 𝐶 ) ∈ 𝑋 ∧ ( 𝐵 𝐻 𝐶 ) ∈ 𝑋 ) ) → ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) ) )
16 13 15 syldan ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) ) )
17 idd ( 𝑅 ∈ RingOps → ( 𝐴𝑋𝐴𝑋 ) )
18 1 3 5 rngonegcl ( ( 𝑅 ∈ RingOps ∧ 𝐵𝑋 ) → ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ∈ 𝑋 )
19 18 ex ( 𝑅 ∈ RingOps → ( 𝐵𝑋 → ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ∈ 𝑋 ) )
20 idd ( 𝑅 ∈ RingOps → ( 𝐶𝑋𝐶𝑋 ) )
21 17 19 20 3anim123d ( 𝑅 ∈ RingOps → ( ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) → ( 𝐴𝑋 ∧ ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ∈ 𝑋𝐶𝑋 ) ) )
22 21 imp ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( 𝐴𝑋 ∧ ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ∈ 𝑋𝐶𝑋 ) )
23 1 2 3 rngodir ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋 ∧ ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ∈ 𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) 𝐻 𝐶 ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) 𝐻 𝐶 ) ) )
24 22 23 syldan ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) 𝐻 𝐶 ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) 𝐻 𝐶 ) ) )
25 1 2 3 5 rngoneglmul ( ( 𝑅 ∈ RingOps ∧ 𝐵𝑋𝐶𝑋 ) → ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) = ( ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) 𝐻 𝐶 ) )
26 25 3adant3r1 ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) = ( ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) 𝐻 𝐶 ) )
27 26 oveq2d ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) 𝐻 𝐶 ) ) )
28 24 27 eqtr4d ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) 𝐻 𝐶 ) = ( ( 𝐴 𝐻 𝐶 ) 𝐺 ( ( inv ‘ 𝐺 ) ‘ ( 𝐵 𝐻 𝐶 ) ) ) )
29 16 28 eqtr4d ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) = ( ( 𝐴 𝐺 ( ( inv ‘ 𝐺 ) ‘ 𝐵 ) ) 𝐻 𝐶 ) )
30 8 29 eqtr4d ( ( 𝑅 ∈ RingOps ∧ ( 𝐴𝑋𝐵𝑋𝐶𝑋 ) ) → ( ( 𝐴 𝐷 𝐵 ) 𝐻 𝐶 ) = ( ( 𝐴 𝐻 𝐶 ) 𝐷 ( 𝐵 𝐻 𝐶 ) ) )