| Step |
Hyp |
Ref |
Expression |
| 1 |
|
eucalgval.1 |
|- E = ( x e. NN0 , y e. NN0 |-> if ( y = 0 , <. x , y >. , <. y , ( x mod y ) >. ) ) |
| 2 |
1
|
eucalgval |
|- ( X e. ( NN0 X. NN0 ) -> ( E ` X ) = if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) ) |
| 3 |
2
|
adantr |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( E ` X ) = if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) ) |
| 4 |
|
simpr |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` ( E ` X ) ) =/= 0 ) |
| 5 |
|
iftrue |
|- ( ( 2nd ` X ) = 0 -> if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) = X ) |
| 6 |
5
|
eqeq2d |
|- ( ( 2nd ` X ) = 0 -> ( ( E ` X ) = if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) <-> ( E ` X ) = X ) ) |
| 7 |
|
fveq2 |
|- ( ( E ` X ) = X -> ( 2nd ` ( E ` X ) ) = ( 2nd ` X ) ) |
| 8 |
6 7
|
biimtrdi |
|- ( ( 2nd ` X ) = 0 -> ( ( E ` X ) = if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) -> ( 2nd ` ( E ` X ) ) = ( 2nd ` X ) ) ) |
| 9 |
|
eqeq2 |
|- ( ( 2nd ` X ) = 0 -> ( ( 2nd ` ( E ` X ) ) = ( 2nd ` X ) <-> ( 2nd ` ( E ` X ) ) = 0 ) ) |
| 10 |
8 9
|
sylibd |
|- ( ( 2nd ` X ) = 0 -> ( ( E ` X ) = if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) -> ( 2nd ` ( E ` X ) ) = 0 ) ) |
| 11 |
3 10
|
syl5com |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( ( 2nd ` X ) = 0 -> ( 2nd ` ( E ` X ) ) = 0 ) ) |
| 12 |
11
|
necon3ad |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( ( 2nd ` ( E ` X ) ) =/= 0 -> -. ( 2nd ` X ) = 0 ) ) |
| 13 |
4 12
|
mpd |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> -. ( 2nd ` X ) = 0 ) |
| 14 |
13
|
iffalsed |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) = <. ( 2nd ` X ) , ( mod ` X ) >. ) |
| 15 |
3 14
|
eqtrd |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( E ` X ) = <. ( 2nd ` X ) , ( mod ` X ) >. ) |
| 16 |
15
|
fveq2d |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` ( E ` X ) ) = ( 2nd ` <. ( 2nd ` X ) , ( mod ` X ) >. ) ) |
| 17 |
|
fvex |
|- ( 2nd ` X ) e. _V |
| 18 |
|
fvex |
|- ( mod ` X ) e. _V |
| 19 |
17 18
|
op2nd |
|- ( 2nd ` <. ( 2nd ` X ) , ( mod ` X ) >. ) = ( mod ` X ) |
| 20 |
16 19
|
eqtrdi |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` ( E ` X ) ) = ( mod ` X ) ) |
| 21 |
|
1st2nd2 |
|- ( X e. ( NN0 X. NN0 ) -> X = <. ( 1st ` X ) , ( 2nd ` X ) >. ) |
| 22 |
21
|
adantr |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> X = <. ( 1st ` X ) , ( 2nd ` X ) >. ) |
| 23 |
22
|
fveq2d |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( mod ` X ) = ( mod ` <. ( 1st ` X ) , ( 2nd ` X ) >. ) ) |
| 24 |
|
df-ov |
|- ( ( 1st ` X ) mod ( 2nd ` X ) ) = ( mod ` <. ( 1st ` X ) , ( 2nd ` X ) >. ) |
| 25 |
23 24
|
eqtr4di |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( mod ` X ) = ( ( 1st ` X ) mod ( 2nd ` X ) ) ) |
| 26 |
20 25
|
eqtrd |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` ( E ` X ) ) = ( ( 1st ` X ) mod ( 2nd ` X ) ) ) |
| 27 |
|
xp1st |
|- ( X e. ( NN0 X. NN0 ) -> ( 1st ` X ) e. NN0 ) |
| 28 |
27
|
adantr |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 1st ` X ) e. NN0 ) |
| 29 |
28
|
nn0red |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 1st ` X ) e. RR ) |
| 30 |
|
xp2nd |
|- ( X e. ( NN0 X. NN0 ) -> ( 2nd ` X ) e. NN0 ) |
| 31 |
30
|
adantr |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` X ) e. NN0 ) |
| 32 |
|
elnn0 |
|- ( ( 2nd ` X ) e. NN0 <-> ( ( 2nd ` X ) e. NN \/ ( 2nd ` X ) = 0 ) ) |
| 33 |
31 32
|
sylib |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( ( 2nd ` X ) e. NN \/ ( 2nd ` X ) = 0 ) ) |
| 34 |
33
|
ord |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( -. ( 2nd ` X ) e. NN -> ( 2nd ` X ) = 0 ) ) |
| 35 |
13 34
|
mt3d |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` X ) e. NN ) |
| 36 |
35
|
nnrpd |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` X ) e. RR+ ) |
| 37 |
|
modlt |
|- ( ( ( 1st ` X ) e. RR /\ ( 2nd ` X ) e. RR+ ) -> ( ( 1st ` X ) mod ( 2nd ` X ) ) < ( 2nd ` X ) ) |
| 38 |
29 36 37
|
syl2anc |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( ( 1st ` X ) mod ( 2nd ` X ) ) < ( 2nd ` X ) ) |
| 39 |
26 38
|
eqbrtrd |
|- ( ( X e. ( NN0 X. NN0 ) /\ ( 2nd ` ( E ` X ) ) =/= 0 ) -> ( 2nd ` ( E ` X ) ) < ( 2nd ` X ) ) |
| 40 |
39
|
ex |
|- ( X e. ( NN0 X. NN0 ) -> ( ( 2nd ` ( E ` X ) ) =/= 0 -> ( 2nd ` ( E ` X ) ) < ( 2nd ` X ) ) ) |