let E be EuclidianRing; E is gcdDomain
set d = the DegreeFunction of E;
now for x, y being Element of E ex z being Element of E st
( z divides x & z divides y & ( for zz being Element of E st zz divides x & zz divides y holds
zz divides z ) )let x,
y be
Element of
E;
ex z being Element of E st
( z divides x & z divides y & ( for zz being Element of E st zz divides x & zz divides y holds
zz divides z ) )now ( ( x = 0. E & ex z being Element of E st
( z divides x & z divides y & ( for zz being Element of E st zz divides x & zz divides y holds
zz divides z ) ) ) or ( x <> 0. E & ex z being Element of E st
( z divides x & z divides y & ( for zz being Element of E st zz divides x & zz divides y holds
zz divides z ) ) ) )per cases
( x = 0. E or x <> 0. E )
;
case A3:
x <> 0. E
;
ex z being Element of E st
( z divides x & z divides y & ( for zz being Element of E st zz divides x & zz divides y holds
zz divides z ) )set M =
{ z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) } ;
defpred S1[
Nat]
means ex
z being
Element of
E st
(
z in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) } &
z <> 0. E & $1
= the
DegreeFunction of
E . z );
((1. E) * x) + ((0. E) * y) =
(1. E) * x
by RLVECT_1:def 4
.=
x
;
then A4:
x in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) }
;
ex
k being
Element of
NAT st
k = the
DegreeFunction of
E . x
;
then A5:
ex
k being
Nat st
S1[
k]
by A3, A4;
ex
k being
Nat st
(
S1[
k] & ( for
n being
Nat st
S1[
n] holds
k <= n ) )
from NAT_1:sch 5(A5);
then consider k being
Nat such that A6:
(
S1[
k] & ( for
n being
Nat st
S1[
n] holds
k <= n ) )
;
consider g being
Element of
E such that A7:
g in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) }
and A8:
g <> 0. E
and A9:
(
k = the
DegreeFunction of
E . g & ( for
n being
Nat st ex
z being
Element of
E st
(
z in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) } &
z <> 0. E &
n = the
DegreeFunction of
E . z ) holds
k <= n ) )
by A6;
set G =
{ z where z is Element of E : ex r being Element of E st z = r * g } ;
A10:
for
z being
object st
z in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) } holds
z in { z where z is Element of E : ex r being Element of E st z = r * g }
A19:
for
z being
Element of
E st
z divides x &
z divides y holds
z divides g
((0. E) * x) + ((1. E) * y) =
(1. E) * y
by RLVECT_1:4
.=
y
;
then A27:
y in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) }
;
for
z being
object st
z in { z where z is Element of E : ex r being Element of E st z = r * g } holds
z in { z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) }
then A34:
{ z where z is Element of E : ex s, t being Element of E st z = (s * x) + (t * y) } = { z where z is Element of E : ex r being Element of E st z = r * g }
by A10, TARSKI:2;
(
g divides x &
g divides y )
hence
ex
z being
Element of
E st
(
z divides x &
z divides y & ( for
zz being
Element of
E st
zz divides x &
zz divides y holds
zz divides z ) )
by A19;
verum end; end; end; hence
ex
z being
Element of
E st
(
z divides x &
z divides y & ( for
zz being
Element of
E st
zz divides x &
zz divides y holds
zz divides z ) )
;
verum end;
hence
E is gcdDomain
by GCD_1:def 11; verum