Metamath Proof Explorer


Theorem modgcd

Description: The gcd remains unchanged if one operand is replaced with its remainder modulo the other. (Contributed by Paul Chapman, 31-Mar-2011)

Ref Expression
Assertion modgcd ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ( ๐‘€ mod ๐‘ ) gcd ๐‘ ) = ( ๐‘€ gcd ๐‘ ) )

Proof

Step Hyp Ref Expression
1 zre โŠข ( ๐‘€ โˆˆ โ„ค โ†’ ๐‘€ โˆˆ โ„ )
2 nnrp โŠข ( ๐‘ โˆˆ โ„• โ†’ ๐‘ โˆˆ โ„+ )
3 modval โŠข ( ( ๐‘€ โˆˆ โ„ โˆง ๐‘ โˆˆ โ„+ ) โ†’ ( ๐‘€ mod ๐‘ ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
4 1 2 3 syl2an โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ mod ๐‘ ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
5 zcn โŠข ( ๐‘€ โˆˆ โ„ค โ†’ ๐‘€ โˆˆ โ„‚ )
6 5 adantr โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ๐‘€ โˆˆ โ„‚ )
7 nncn โŠข ( ๐‘ โˆˆ โ„• โ†’ ๐‘ โˆˆ โ„‚ )
8 7 adantl โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ๐‘ โˆˆ โ„‚ )
9 nnre โŠข ( ๐‘ โˆˆ โ„• โ†’ ๐‘ โˆˆ โ„ )
10 nnne0 โŠข ( ๐‘ โˆˆ โ„• โ†’ ๐‘ โ‰  0 )
11 redivcl โŠข ( ( ๐‘€ โˆˆ โ„ โˆง ๐‘ โˆˆ โ„ โˆง ๐‘ โ‰  0 ) โ†’ ( ๐‘€ / ๐‘ ) โˆˆ โ„ )
12 1 9 10 11 syl3an โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ / ๐‘ ) โˆˆ โ„ )
13 12 3anidm23 โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ / ๐‘ ) โˆˆ โ„ )
14 13 flcld โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„ค )
15 14 zcnd โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ )
16 mulneg1 โŠข ( ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ ) โ†’ ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = - ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) )
17 mulcom โŠข ( ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ ) โ†’ ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) )
18 17 negeqd โŠข ( ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ ) โ†’ - ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) )
19 16 18 eqtrd โŠข ( ( ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ ) โ†’ ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) )
20 19 ancoms โŠข ( ( ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) )
21 20 3adant1 โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) = - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) )
22 21 oveq2d โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) = ( ๐‘€ + - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
23 mulcl โŠข ( ( ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) โˆˆ โ„‚ )
24 negsub โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) โˆˆ โ„‚ ) โ†’ ( ๐‘€ + - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
25 23 24 sylan2 โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ( ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) ) โ†’ ( ๐‘€ + - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
26 25 3impb โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( ๐‘€ + - ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
27 22 26 eqtrd โŠข ( ( ๐‘€ โˆˆ โ„‚ โˆง ๐‘ โˆˆ โ„‚ โˆง ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„‚ ) โ†’ ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
28 6 8 15 27 syl3anc โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) = ( ๐‘€ โˆ’ ( ๐‘ ยท ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ) ) )
29 4 28 eqtr4d โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ mod ๐‘ ) = ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) )
30 29 oveq2d โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘ gcd ( ๐‘€ mod ๐‘ ) ) = ( ๐‘ gcd ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) ) )
31 14 znegcld โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„ค )
32 nnz โŠข ( ๐‘ โˆˆ โ„• โ†’ ๐‘ โˆˆ โ„ค )
33 32 adantl โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ๐‘ โˆˆ โ„ค )
34 simpl โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ๐‘€ โˆˆ โ„ค )
35 gcdaddm โŠข ( ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„ค ) โ†’ ( ๐‘ gcd ๐‘€ ) = ( ๐‘ gcd ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) ) )
36 31 33 34 35 syl3anc โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘ gcd ๐‘€ ) = ( ๐‘ gcd ( ๐‘€ + ( - ( โŒŠ โ€˜ ( ๐‘€ / ๐‘ ) ) ยท ๐‘ ) ) ) )
37 30 36 eqtr4d โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘ gcd ( ๐‘€ mod ๐‘ ) ) = ( ๐‘ gcd ๐‘€ ) )
38 zmodcl โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ mod ๐‘ ) โˆˆ โ„•0 )
39 38 nn0zd โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘€ mod ๐‘ ) โˆˆ โ„ค )
40 33 39 gcdcomd โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘ gcd ( ๐‘€ mod ๐‘ ) ) = ( ( ๐‘€ mod ๐‘ ) gcd ๐‘ ) )
41 33 34 gcdcomd โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ๐‘ gcd ๐‘€ ) = ( ๐‘€ gcd ๐‘ ) )
42 37 40 41 3eqtr3d โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„• ) โ†’ ( ( ๐‘€ mod ๐‘ ) gcd ๐‘ ) = ( ๐‘€ gcd ๐‘ ) )