Metamath Proof Explorer


Theorem gcdi

Description: Calculate a GCD via Euclid's algorithm. (Contributed by Mario Carneiro, 19-Feb-2014)

Ref Expression
Hypotheses gcdi.1 โŠข ๐พ โˆˆ โ„•0
gcdi.2 โŠข ๐‘… โˆˆ โ„•0
gcdi.3 โŠข ๐‘ โˆˆ โ„•0
gcdi.5 โŠข ( ๐‘ gcd ๐‘… ) = ๐บ
gcdi.4 โŠข ( ( ๐พ ยท ๐‘ ) + ๐‘… ) = ๐‘€
Assertion gcdi ( ๐‘€ gcd ๐‘ ) = ๐บ

Proof

Step Hyp Ref Expression
1 gcdi.1 โŠข ๐พ โˆˆ โ„•0
2 gcdi.2 โŠข ๐‘… โˆˆ โ„•0
3 gcdi.3 โŠข ๐‘ โˆˆ โ„•0
4 gcdi.5 โŠข ( ๐‘ gcd ๐‘… ) = ๐บ
5 gcdi.4 โŠข ( ( ๐พ ยท ๐‘ ) + ๐‘… ) = ๐‘€
6 1 3 nn0mulcli โŠข ( ๐พ ยท ๐‘ ) โˆˆ โ„•0
7 6 nn0cni โŠข ( ๐พ ยท ๐‘ ) โˆˆ โ„‚
8 2 nn0cni โŠข ๐‘… โˆˆ โ„‚
9 7 8 5 addcomli โŠข ( ๐‘… + ( ๐พ ยท ๐‘ ) ) = ๐‘€
10 9 oveq2i โŠข ( ๐‘ gcd ( ๐‘… + ( ๐พ ยท ๐‘ ) ) ) = ( ๐‘ gcd ๐‘€ )
11 1 nn0zi โŠข ๐พ โˆˆ โ„ค
12 3 nn0zi โŠข ๐‘ โˆˆ โ„ค
13 2 nn0zi โŠข ๐‘… โˆˆ โ„ค
14 gcdaddm โŠข ( ( ๐พ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„ค โˆง ๐‘… โˆˆ โ„ค ) โ†’ ( ๐‘ gcd ๐‘… ) = ( ๐‘ gcd ( ๐‘… + ( ๐พ ยท ๐‘ ) ) ) )
15 11 12 13 14 mp3an โŠข ( ๐‘ gcd ๐‘… ) = ( ๐‘ gcd ( ๐‘… + ( ๐พ ยท ๐‘ ) ) )
16 1 3 2 numcl โŠข ( ( ๐พ ยท ๐‘ ) + ๐‘… ) โˆˆ โ„•0
17 5 16 eqeltrri โŠข ๐‘€ โˆˆ โ„•0
18 17 nn0zi โŠข ๐‘€ โˆˆ โ„ค
19 gcdcom โŠข ( ( ๐‘€ โˆˆ โ„ค โˆง ๐‘ โˆˆ โ„ค ) โ†’ ( ๐‘€ gcd ๐‘ ) = ( ๐‘ gcd ๐‘€ ) )
20 18 12 19 mp2an โŠข ( ๐‘€ gcd ๐‘ ) = ( ๐‘ gcd ๐‘€ )
21 10 15 20 3eqtr4i โŠข ( ๐‘ gcd ๐‘… ) = ( ๐‘€ gcd ๐‘ )
22 21 4 eqtr3i โŠข ( ๐‘€ gcd ๐‘ ) = ๐บ