Table of ContentsTable of Contents Mathbox for Paul Chapman < Previous   Next >
Related theorems
Unicode version

Theorem eucalg 13755
Description: Euclid's Algorithm. Upon halting, the 1st member of the final state (R` N) is equal to the gcd of the values comprising the input state <.M, N>.. (Contributed by Paul Chapman, 31-Mar-2011.)
Hypotheses
Ref Expression
eucalg.1 |- S = (NN0 X. NN0)
eucalg.2 |- E = {<.x, y>. | (x e. (NN0 X. NN0) /\ y = if((2nd` x) = 0, x, <.(2nd` x), ( mod ` x)>.))}
eucalg.3 |- R = ((E o. (1st |` (S X. S))) seq0 (NN0 X. {A}))
eucalg.4 |- A = <.M, N>.
Assertion
Ref Expression
eucalg |- ((M e. NN0 /\ N e. NN0) -> (1st` (R` N)) = (M gcd N))
Distinct variable group:   x,y

Proof of Theorem eucalg
StepHypRef Expression
1 op2ndg 5029 . . . . . 6 |- ((M e. NN0 /\ N e. NN0) -> (2nd` <.M, N>.) = N)
2 eucalg.4 . . . . . . 7 |- A = <.M, N>.
32fveq2i 4684 . . . . . 6 |- (2nd` A) = (2nd` <.M, N>.)
41, 3syl5eq 1940 . . . . 5 |- ((M e. NN0 /\ N e. NN0) -> (2nd` A) = N)
54fveq2d 4685 . . . 4 |- ((M e. NN0 /\ N e. NN0) -> (R` (2nd` A)) = (R` N))
65fveq2d 4685 . . 3 |- ((M e. NN0 /\ N e. NN0) -> (1st` (R` (2nd` A))) = (1st`
(R` N)))
7 opelxpi 4040 . . . 4 |- ((M e. NN0 /\ N e. NN0) -> <.M, N>. e. (NN0 X. NN0))
8 eucalg.1 . . . . . 6 |- S = (NN0 X. NN0)
92, 8eleq12i 1962 . . . . 5 |- (A e. S <-> <.M, N>. e. (NN0 X. NN0))
10 nn0ex 7314 . . . . . . . . . . . . . 14 |- NN0 e. _V
1110, 10xpex 4096 . . . . . . . . . . . . 13 |- (NN0 X. NN0) e. _V
128, 11eqeltri 1967 . . . . . . . . . . . 12 |- S e. _V
13 eucalg.2 . . . . . . . . . . . . . 14 |- E = {<.x, y>. | (x e. (NN0 X. NN0) /\ y = if((2nd` x) = 0, x, <.(2nd` x), ( mod ` x)>.))}
1413eucalgf 13751 . . . . . . . . . . . . 13 |- E:(NN0 X. NN0)-->(NN0 X. NN0)
158, 8feq23i 13588 . . . . . . . . . . . . 13 |- (E:S-->S <-> E:(NN0 X. NN0)-->(NN0 X. NN0))
1614, 15mpbir 207 . . . . . . . . . . . 12 |- E:S-->S
17 eucalg.3 . . . . . . . . . . . 12 |- R = ((E o. (1st |` (S X. S))) seq0 (NN0 X. {A}))
1812, 16, 17algrf 13739 . . . . . . . . . . 11 |- (A e. S -> R:NN0-->S)
198eleq2i 1961 . . . . . . . . . . . 12 |- (A e. S <-> A e. (NN0 X. NN0))
20 xp2nd 10156 . . . . . . . . . . . 12 |- (A e. (NN0 X. NN0) -> (2nd` A) e. NN0)
2119, 20sylbi 216 . . . . . . . . . . 11 |- (A e. S -> (2nd` A) e. NN0)
22 ffvelrn 4787 . . . . . . . . . . 11 |- ((R:NN0-->S /\ (2nd`
A) e. NN0) -> (R` (2nd` A)) e. S)
2318, 21, 22syl11anc 524 . . . . . . . . . 10 |- (A e. S -> (R` (2nd` A)) e. S)
2423, 8syl6eleq 1981 . . . . . . . . 9 |- (A e. S -> (R` (2nd` A)) e. (NN0 X. NN0))
25 elxp6 5041 . . . . . . . . . 10 |- ((R` (2nd` A)) e. (NN0 X. NN0) <-> ((R` (2nd`
A)) = <.(1st`
(R` (2nd` A))), (2nd` (R` (2nd` A)))>. /\ ((1st` (R` (2nd` A))) e. NN0 /\ (2nd` (R` (2nd` A))) e. NN0)))
2625simplbi 349 . . . . . . . . 9 |- ((R` (2nd` A)) e. (NN0 X. NN0) -> (R` (2nd` A)) = <.(1st` (R` (2nd` A))), (2nd` (R` (2nd` A)))>.)
2724, 26syl 12 . . . . . . . 8 |- (A e. S -> (R` (2nd` A)) = <.(1st`
(R` (2nd` A))), (2nd` (R` (2nd` A)))>.)
2827fveq2d 4685 . . . . . . 7 |- (A e. S -> ( gcd ` (R` (2nd` A))) = ( gcd ` <.(1st` (R` (2nd` A))), (2nd` (R` (2nd` A)))>.))
29 nn0z 7363 . . . . . . . . . . 11 |- ((2nd` A) e. NN0 -> (2nd` A) e. ZZ)
30 uzid 7596 . . . . . . . . . . 11 |- ((2nd` A) e. ZZ -> (2nd` A) e. (ZZ>=` (2nd` A)))
3121, 29, 303syl 24 . . . . . . . . . 10 |- (A e. S -> (2nd` A) e. (ZZ>=` (2nd` A)))
32 eqid 1884 . . . . . . . . . . 11 |- (2nd` A) = (2nd` A)
338, 13, 17, 32eucalgcvga 13754 . . . . . . . . . 10 |- (A e. S -> ((2nd` A) e. (ZZ>=` (2nd`
A)) -> (2nd` (R` (2nd` A))) = 0))
3431, 33mpd 29 . . . . . . . . 9 |- (A e. S -> (2nd` (R` (2nd` A))) = 0)
3534opreq2d 4898 . . . . . . . 8 |- (A e. S -> ((1st` (R` (2nd` A))) gcd (2nd`
(R` (2nd` A)))) = ((1st` (R` (2nd` A))) gcd 0))
36 df-opr 4886 . . . . . . . 8 |- ((1st` (R` (2nd` A))) gcd (2nd` (R` (2nd` A)))) = ( gcd ` <.(1st` (R` (2nd` A))), (2nd` (R` (2nd` A)))>.)
3735, 36syl5eqr 1942 . . . . . . 7 |- (A e. S -> ( gcd ` <.(1st` (R` (2nd` A))), (2nd` (R` (2nd` A)))>.) = ((1st` (R` (2nd` A))) gcd 0))
38 xp1st 10155 . . . . . . . 8 |- ((R` (2nd` A)) e. (NN0 X. NN0) -> (1st` (R` (2nd` A))) e. NN0)
39 nn0gcdid0 13731 . . . . . . . 8 |- ((1st` (R` (2nd` A))) e. NN0 -> ((1st` (R` (2nd` A))) gcd 0) = (1st` (R` (2nd` A))))
4024, 38, 393syl 24 . . . . . . 7 |- (A e. S -> ((1st` (R` (2nd` A))) gcd 0) = (1st` (R` (2nd` A))))
4128, 37, 403eqtrrd 1930 . . . . . 6 |- (A e. S -> (1st` (R` (2nd` A))) = ( gcd ` (R` (2nd` A))))
42 gcdf 13725 . . . . . . . . . . 11 |- gcd :(ZZ X. ZZ)-->NN0
43 ffn 4562 . . . . . . . . . . 11 |- ( gcd :(ZZ X. ZZ)-->NN0 -> gcd Fn (ZZ X. ZZ))
4442, 43ax-mp 7 . . . . . . . . . 10 |- gcd Fn (ZZ X. ZZ)
45 nn0ssz 7361 . . . . . . . . . . . 12 |- NN0 C_ ZZ
46 xpss12 4089 . . . . . . . . . . . 12 |- ((NN0 C_ ZZ /\ NN0 C_ ZZ) -> (NN0 X. NN0) C_ (ZZ X. ZZ))
4745, 45, 46mp2an 761 . . . . . . . . . . 11 |- (NN0 X. NN0) C_ (ZZ X. ZZ)
488, 47eqsstri 2647 . . . . . . . . . 10 |- S C_ (ZZ X. ZZ)
49 fnssres 4526 . . . . . . . . . 10 |- (( gcd Fn (ZZ X. ZZ) /\ S C_ (ZZ X. ZZ)) -> ( gcd |` S) Fn S)
5044, 48, 49mp2an 761 . . . . . . . . 9 |- ( gcd |` S) Fn S
518eleq2i 1961 . . . . . . . . . . 11 |- (z e. S <-> z e. (NN0 X. NN0))
5213eucalginv 13752 . . . . . . . . . . 11 |- (z e. (NN0 X. NN0) -> ( gcd ` (E` z)) = ( gcd ` z))
5351, 52sylbi 216 . . . . . . . . . 10 |- (z e. S -> ( gcd ` (E` z)) = ( gcd ` z))
5416ffvelrni 4788 . . . . . . . . . . . 12 |- (z e. S -> (E` z) e. S)
55 fvres 4691 . . . . . . . . . . . 12 |- ((E` z) e. S -> (( gcd |` S)` (E` z)) = ( gcd ` (E` z)))
5654, 55syl 12 . . . . . . . . . . 11 |- (z e. S -> (( gcd |` S)` (E` z)) = ( gcd ` (E` z)))
57 fvres 4691 . . . . . . . . . . 11 |- (z e. S -> (( gcd |` S)` z) = ( gcd ` z))
5856, 57eqeq12d 1899 . . . . . . . . . 10 |- (z e. S -> ((( gcd |` S)` (E` z)) = (( gcd |` S)` z) <-> ( gcd ` (E` z)) = ( gcd ` z)))
5953, 58mpbird 213 . . . . . . . . 9 |- (z e. S -> (( gcd |` S)` (E` z)) = (( gcd |` S)` z))
6012, 16, 17, 50, 59alginv 13743 . . . . . . . 8 |- ((A e. S /\ (2nd` A) e. NN0) -> (( gcd |` S)` (R` (2nd` A))) = (( gcd |` S)` (R` 0)))
6121, 60mpdan 768 . . . . . . 7 |- (A e. S -> (( gcd |` S)` (R` (2nd` A))) = (( gcd |` S)` (R` 0)))
62 fvres 4691 . . . . . . . 8 |- ((R` (2nd` A)) e. S -> (( gcd |` S)` (R` (2nd` A))) = ( gcd ` (R` (2nd` A))))
6323, 62syl 12 . . . . . . 7 |- (A e. S -> (( gcd |` S)` (R` (2nd` A))) = ( gcd ` (R` (2nd` A))))
6412, 16, 17algr0 13740 . . . . . . . . 9 |- (A e. S -> (R` 0) = A)
6564fveq2d 4685 . . . . . . . 8 |- (A e. S -> (( gcd |` S)` (R` 0)) = (( gcd |` S)` A))
66 fvres 4691 . . . . . . . 8 |- (A e. S -> (( gcd |` S)` A) = ( gcd ` A))
6765, 66eqtrd 1925 . . . . . . 7 |- (A e. S -> (( gcd |` S)` (R` 0)) = ( gcd ` A))
6861, 63, 673eqtr3d 1934 . . . . . 6 |- (A e. S -> ( gcd ` (R` (2nd` A))) = ( gcd ` A))
6941, 68eqtrd 1925 . . . . 5 |- (A e. S -> (1st` (R` (2nd` A))) = ( gcd ` A))
709, 69sylbir 218 . . . 4 |- (<.M, N>. e. (NN0 X. NN0) -> (1st` (R` (2nd` A))) = ( gcd ` A))
717, 70syl 12 . . 3 |- ((M e. NN0 /\ N e. NN0) -> (1st` (R` (2nd` A))) = ( gcd `
A))
726, 71eqtr3d 1927 . 2 |- ((M e. NN0 /\ N e. NN0) -> (1st` (R` N)) = ( gcd ` A))
732fveq2i 4684 . . 3 |- ( gcd ` A) = ( gcd ` <.M, N>.)
74 df-opr 4886 . . 3 |- (M gcd N) = ( gcd ` <.M, N>.)
7573, 74eqtr4i 1911 . 2 |- ( gcd ` A) = (M gcd N)
7672, 75syl6eq 1944 1 |- ((M e. NN0 /\ N e. NN0) -> (1st` (R` N)) = (M gcd N))
Colors of variables: wff set class
Syntax hints:   -> wi 3   /\ wa 240   = wceq 1298   e. wcel 1300  _Vcvv 2292   C_ wss 2593  ifcif 2982  {csn 3044  <.cop 3046  {copab 3395   X. cxp 3984   |` cres 3988   o. ccom 3990   Fn wfn 3993  -->wf 3994  ` cfv 3998  (class class class)co 4884  1stc1st 5018  2ndc2nd 5019  0cc0 6386  NN0cn0 6450  ZZcz 6451   mod cmo 7499  ZZ>=cuz 7586   seq0 cseq0 7775   gcd cgcd 13713
This theorem is referenced by:  mulgcdlem5 13760
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 1304  ax-gen 1305  ax-8 1306  ax-9 1307  ax-10 1308  ax-11 1309  ax-12 1310  ax-13 1311  ax-14 1312  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588  ax-ext 1865  ax-rep 3428  ax-sep 3438  ax-nul 3445  ax-pow 3481  ax-pr 3524  ax-un 3790  ax-inf2 5731
This theorem depends on definitions:  df-bi 164  df-or 241  df-an 242  df-3or 859  df-3an 860  df-ex 1327  df-sb 1536  df-eu 1775  df-mo 1776  df-clab 1872  df-cleq 1877  df-clel 1880  df-ne 2019  df-nel 2020  df-ral 2109  df-rex 2110  df-reu 2111  df-rab 2112  df-v 2294  df-sbc 2454  df-csb 2541  df-dif 2597  df-un 2600  df-in 2603  df-ss 2605  df-pss 2607  df-nul 2876  df-if 2983  df-pw 3035  df-sn 3049  df-pr 3050  df-tp 3052  df-op 3053  df-uni 3178  df-int 3215  df-iun 3257  df-br 3339  df-opab 3396  df-tr 3412  df-eprel 3583  df-id 3586  df-po 3591  df-so 3604  df-fr 3625  df-we 3644  df-ord 3660  df-on 3661  df-lim 3662  df-suc 3663  df-om 3950  df-xp 4000  df-rel 4001  df-cnv 4002  df-co 4003  df-dm 4004  df-rn 4005  df-res 4006  df-ima 4007  df-fun 4008  df-fn 4009  df-f 4010  df-f1 4011  df-fo 4012  df-f1o 4013  df-fv 4014  df-opr 4886  df-oprab 4887  df-mpt 5006  df-1st 5020  df-2nd 5021  df-iota 5089  df-rdg 5140  df-1o 5177  df-oadd 5179  df-omul 5180  df-er 5318  df-ec 5320  df-qs 5323  df-en 5427  df-dom 5428  df-sdom 5429  df-undef 5556  df-riota 5560  df-sup 5664  df-ni 6152  df-pli 6153  df-mi 6154  df-lti 6155  df-plpq 6187  df-mpq 6188  df-enq 6189  df-nq 6190  df-plq 6191  df-mq 6192  df-rq 6193  df-ltq 6194  df-1q 6195  df-np 6238  df-1p 6239  df-plp 6240  df-mp 6241  df-ltp 6242  df-plpr 6316  df-mpr 6317  df-enr 6318  df-nr 6319  df-plr 6320  df-mr 6321  df-ltr 6322  df-0r 6323  df-1r 6324  df-m1r 6325  df-c 6392  df-0 6393  df-1 6394  df-i 6395  df-r 6396  df-plus 6397  df-mul 6398  df-lt 6399  df-sub 6511  df-neg 6513  df-pnf 6654  df-mnf 6655  df-xr 6656  df-ltxr 6657  df-le 6658  df-div 6892  df-n 7108  df-2 7154  df-rp 7232  df-n0 7309  df-z 7345  df-fl 7463  df-mod 7500  df-uz 7587  df-seq1 7721  df-shft 7754  df-seqz 7776  df-seq0 7777  df-exp 7812  df-sqr 7920  df-re 8001  df-im 8002  df-cj 8003  df-abs 8004  df-divides 13663  df-gcd 13714
Copyright terms: Public domain