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 ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N gcd N = M gcd N

Proof

Step Hyp Ref Expression
1 zre ⊢ M ∈ ℤ → M ∈ ℝ
2 nnrp ⊢ N ∈ ℕ → N ∈ ℝ +
3 modval ⊢ M ∈ ℝ ∧ N ∈ ℝ + → M mod N = M − N ⁢ M N
4 1 2 3 syl2an ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N = M − N ⁢ M N
5 zcn ⊢ M ∈ ℤ → M ∈ ℂ
6 5 adantr ⊢ M ∈ ℤ ∧ N ∈ ℕ → M ∈ ℂ
7 nncn ⊢ N ∈ ℕ → N ∈ ℂ
8 7 adantl ⊢ M ∈ ℤ ∧ N ∈ ℕ → N ∈ ℂ
9 nnre ⊢ N ∈ ℕ → N ∈ ℝ
10 nnne0 ⊢ N ∈ ℕ → N ≠ 0
11 redivcl ⊢ M ∈ ℝ ∧ N ∈ ℝ ∧ N ≠ 0 → M N ∈ ℝ
12 1 9 10 11 syl3an ⊢ M ∈ ℤ ∧ N ∈ ℕ ∧ N ∈ ℕ → M N ∈ ℝ
13 12 3anidm23 ⊢ M ∈ ℤ ∧ N ∈ ℕ → M N ∈ ℝ
14 13 flcld ⊢ M ∈ ℤ ∧ N ∈ ℕ → M N ∈ ℤ
15 14 zcnd ⊢ M ∈ ℤ ∧ N ∈ ℕ → M N ∈ ℂ
16 mulneg1 ⊢ M N ∈ ℂ ∧ N ∈ ℂ → − M N ⋅ N = − M N ⋅ N
17 mulcom ⊢ M N ∈ ℂ ∧ N ∈ ℂ → M N ⋅ N = N ⁢ M N
18 17 negeqd ⊢ M N ∈ ℂ ∧ N ∈ ℂ → − M N ⋅ N = − N ⁢ M N
19 16 18 eqtrd ⊢ M N ∈ ℂ ∧ N ∈ ℂ → − M N ⋅ N = − N ⁢ M N
20 19 ancoms ⊢ N ∈ ℂ ∧ M N ∈ ℂ → − M N ⋅ N = − N ⁢ M N
21 20 3adant1 ⊢ M ∈ ℂ ∧ N ∈ ℂ ∧ M N ∈ ℂ → − M N ⋅ N = − N ⁢ M N
22 21 oveq2d ⊢ M ∈ ℂ ∧ N ∈ ℂ ∧ M N ∈ ℂ → M + − M N ⋅ N = M + − N ⁢ M N
23 mulcl ⊢ N ∈ ℂ ∧ M N ∈ ℂ → N ⁢ M N ∈ ℂ
24 negsub ⊢ M ∈ ℂ ∧ N ⁢ M N ∈ ℂ → M + − N ⁢ M N = M − N ⁢ M N
25 23 24 sylan2 ⊢ M ∈ ℂ ∧ N ∈ ℂ ∧ M N ∈ ℂ → M + − N ⁢ M N = M − N ⁢ M N
26 25 3impb ⊢ M ∈ ℂ ∧ N ∈ ℂ ∧ M N ∈ ℂ → M + − N ⁢ M N = M − N ⁢ M N
27 22 26 eqtrd ⊢ M ∈ ℂ ∧ N ∈ ℂ ∧ M N ∈ ℂ → M + − M N ⋅ N = M − N ⁢ M N
28 6 8 15 27 syl3anc ⊢ M ∈ ℤ ∧ N ∈ ℕ → M + − M N ⋅ N = M − N ⁢ M N
29 4 28 eqtr4d ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N = M + − M N ⋅ N
30 29 oveq2d ⊢ M ∈ ℤ ∧ N ∈ ℕ → N gcd M mod N = N gcd M + − M N ⋅ N
31 14 znegcld ⊢ M ∈ ℤ ∧ N ∈ ℕ → − M N ∈ ℤ
32 nnz ⊢ N ∈ ℕ → N ∈ ℤ
33 32 adantl ⊢ M ∈ ℤ ∧ N ∈ ℕ → N ∈ ℤ
34 simpl ⊢ M ∈ ℤ ∧ N ∈ ℕ → M ∈ ℤ
35 gcdaddm ⊢ − M N ∈ ℤ ∧ N ∈ ℤ ∧ M ∈ ℤ → N gcd M = N gcd M + − M N ⋅ N
36 31 33 34 35 syl3anc ⊢ M ∈ ℤ ∧ N ∈ ℕ → N gcd M = N gcd M + − M N ⋅ N
37 30 36 eqtr4d ⊢ M ∈ ℤ ∧ N ∈ ℕ → N gcd M mod N = N gcd M
38 zmodcl ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N ∈ ℕ 0
39 38 nn0zd ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N ∈ ℤ
40 33 39 gcdcomd ⊢ M ∈ ℤ ∧ N ∈ ℕ → N gcd M mod N = M mod N gcd N
41 33 34 gcdcomd ⊢ M ∈ ℤ ∧ N ∈ ℕ → N gcd M = M gcd N
42 37 40 41 3eqtr3d ⊢ M ∈ ℤ ∧ N ∈ ℕ → M mod N gcd N = M gcd N