Metamath Proof Explorer


Theorem gcdass

Description: Associative law for gcd operator. Theorem 1.4(b) in ApostolNT p. 16. (Contributed by Scott Fenton, 2-Apr-2014) (Revised by Mario Carneiro, 19-Apr-2014)

Ref Expression
Assertion gcdass NMPNgcdMgcdP=NgcdMgcdP

Proof

Step Hyp Ref Expression
1 anass N=0M=0P=0N=0M=0P=0
2 anass xNxMxPxNxMxP
3 2 rabbii x|xNxMxP=x|xNxMxP
4 3 supeq1i supx|xNxMxP<=supx|xNxMxP<
5 1 4 ifbieq2i ifN=0M=0P=00supx|xNxMxP<=ifN=0M=0P=00supx|xNxMxP<
6 gcdcl NMNgcdM0
7 6 3adant3 NMPNgcdM0
8 7 nn0zd NMPNgcdM
9 simp3 NMPP
10 gcdval NgcdMPNgcdMgcdP=ifNgcdM=0P=00supx|xNgcdMxP<
11 8 9 10 syl2anc NMPNgcdMgcdP=ifNgcdM=0P=00supx|xNgcdMxP<
12 gcdeq0 NMNgcdM=0N=0M=0
13 12 3adant3 NMPNgcdM=0N=0M=0
14 13 anbi1d NMPNgcdM=0P=0N=0M=0P=0
15 14 bicomd NMPN=0M=0P=0NgcdM=0P=0
16 simpr NMPxx
17 simpl1 NMPxN
18 simpl2 NMPxM
19 dvdsgcdb xNMxNxMxNgcdM
20 16 17 18 19 syl3anc NMPxxNxMxNgcdM
21 20 anbi1d NMPxxNxMxPxNgcdMxP
22 21 rabbidva NMPx|xNxMxP=x|xNgcdMxP
23 22 supeq1d NMPsupx|xNxMxP<=supx|xNgcdMxP<
24 15 23 ifbieq2d NMPifN=0M=0P=00supx|xNxMxP<=ifNgcdM=0P=00supx|xNgcdMxP<
25 11 24 eqtr4d NMPNgcdMgcdP=ifN=0M=0P=00supx|xNxMxP<
26 simp1 NMPN
27 gcdcl MPMgcdP0
28 27 3adant1 NMPMgcdP0
29 28 nn0zd NMPMgcdP
30 gcdval NMgcdPNgcdMgcdP=ifN=0MgcdP=00supx|xNxMgcdP<
31 26 29 30 syl2anc NMPNgcdMgcdP=ifN=0MgcdP=00supx|xNxMgcdP<
32 gcdeq0 MPMgcdP=0M=0P=0
33 32 3adant1 NMPMgcdP=0M=0P=0
34 33 anbi2d NMPN=0MgcdP=0N=0M=0P=0
35 34 bicomd NMPN=0M=0P=0N=0MgcdP=0
36 simpl3 NMPxP
37 dvdsgcdb xMPxMxPxMgcdP
38 16 18 36 37 syl3anc NMPxxMxPxMgcdP
39 38 anbi2d NMPxxNxMxPxNxMgcdP
40 39 rabbidva NMPx|xNxMxP=x|xNxMgcdP
41 40 supeq1d NMPsupx|xNxMxP<=supx|xNxMgcdP<
42 35 41 ifbieq2d NMPifN=0M=0P=00supx|xNxMxP<=ifN=0MgcdP=00supx|xNxMgcdP<
43 31 42 eqtr4d NMPNgcdMgcdP=ifN=0M=0P=00supx|xNxMxP<
44 5 25 43 3eqtr4a NMPNgcdMgcdP=NgcdMgcdP