let m, n be Nat; ( m > 1 & n > 1 & m,n are_relative_prime implies Euler (m * n) = (Euler m) * (Euler n) )
assume that
A1:
m > 1
and
A2:
n > 1
and
A3:
m,n are_relative_prime
; Euler (m * n) = (Euler m) * (Euler n)
set X = { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) } ;
set C = { i where i is Element of NAT : ex x, y being Integer st
( i = ((m * y) + (n * x)) mod (m * n) & m * n,i are_relative_prime & y <= n & x <= m & i >= 0 ) } ;
A4:
m * n <> 0
by A1, A2, XCMPLX_1:6;
A5:
{ i where i is Element of NAT : ex x, y being Integer st
( i = ((m * y) + (n * x)) mod (m * n) & m * n,i are_relative_prime & y <= n & x <= m & i >= 0 ) } c= (Seg (m * n)) \/ {0 }
then reconsider C = { i where i is Element of NAT : ex x, y being Integer st
( i = ((m * y) + (n * x)) mod (m * n) & m * n,i are_relative_prime & y <= n & x <= m & i >= 0 ) } as finite set ;
set A = { i where i is Element of NAT : ( n,i are_relative_prime & i >= 1 & i <= n ) } ;
A13:
{ i where i is Element of NAT : ( n,i are_relative_prime & i >= 1 & i <= n ) } c= Seg n
A14:
for y, x being Integer st y = 1 & x = 1 holds
((m * y) + (n * x)) mod (m * n) in C
proof
let y,
x be
Integer;
( y = 1 & x = 1 implies ((m * y) + (n * x)) mod (m * n) in C )
A15:
m gcd n = 1
by A3, INT_2:def 4;
then
(m + n) gcd m = 1
by Th8;
then A16:
m,
m + n are_relative_prime
by INT_2:def 4;
(m + n) gcd n = 1
by A15, Th8;
then
n,
m + n are_relative_prime
by INT_2:def 4;
then
m * n,
m + n are_relative_prime
by A1, A16, Th15;
then A17:
(m * n) gcd (m + n) = 1
by INT_2:def 4;
assume A18:
(
y = 1 &
x = 1 )
;
((m * y) + (n * x)) mod (m * n) in C
then reconsider y9 =
y,
x9 =
x as
Element of
NAT ;
((m * y9) + (n * x9)) mod (m * n) = ((m * y) + (n * x)) mod (m * n)
;
then consider t being
Element of
NAT such that A19:
t = ((m * y) + (n * x)) mod (m * n)
;
ex
d being
Nat st
(
m + n = ((m * n) * d) + ((m + n) mod (m * n)) &
(m + n) mod (m * n) < m * n )
by A4, NAT_D:def 2;
then
((m + n) mod (m * n)) gcd (m * n) = 1
by A17, Th9;
then
m * n,
t are_relative_prime
by A18, A19, INT_2:def 4;
hence
((m * y) + (n * x)) mod (m * n) in C
by A1, A2, A18, A19;
verum
end;
reconsider A = { i where i is Element of NAT : ( n,i are_relative_prime & i >= 1 & i <= n ) } as finite set by A13;
A20:
for a being Nat st a = 1 holds
a in A
set B = { i where i is Element of NAT : ( m,i are_relative_prime & i >= 1 & i <= m ) } ;
A22:
{ i where i is Element of NAT : ( m,i are_relative_prime & i >= 1 & i <= m ) } c= Seg m
A23:
m * n <> 1
by A1, NAT_1:15;
A24:
C = { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) }
proof
thus
C c= { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) }
XBOOLE_0:def 10 { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) } c= C
let z be
set ;
TARSKI:def 3 ( not z in { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) } or z in C )
assume
z in { i where i is Element of NAT : ( m * n,i are_relative_prime & i >= 1 & i <= m * n ) }
;
z in C
then consider i being
Element of
NAT such that A31:
i = z
and A32:
m * n,
i are_relative_prime
and
i >= 1
and A33:
i <= m * n
;
i <> m * n
then A34:
i < m * n
by A33, XXREAL_0:1;
consider y0,
x0 being
Integer such that A35:
(y0 * m) + (x0 * n) = i
by A3, Th11;
A36:
((m * y0) + (n * x0)) mod (m * n) =
((m * y0) + (n * x0)) - ((((m * y0) + (n * x0)) div (m * n)) * (m * n))
by A4, INT_1:def 8
.=
((m * y0) + (n * x0)) - (0 * (m * n))
by A34, A35, PRE_FF:4
.=
(m * y0) + (n * x0)
;
set k =
y0 div n;
set j =
x0 div m;
consider x1,
y1 being
Integer such that A37:
x1 = x0 mod m
and A38:
y1 = y0 mod n
;
(
x0 mod m = x0 - ((x0 div m) * m) &
y0 mod n = y0 - ((y0 div n) * n) )
by A1, A2, INT_1:def 8;
then
(m * y0) + (n * x0) = ((m * y1) + (n * x1)) + ((m * n) * ((y0 div n) + (x0 div m)))
by A37, A38;
then A39:
(m * y0) + (n * x0) = ((m * y1) + (n * x1)) mod (m * n)
by A36, Th13;
A40:
[\(y0 / n)/] + 1
>= y0 / n
by INT_1:52;
A41:
[\(x0 / m)/] + 1
>= x0 / m
by INT_1:52;
y1 =
y0 - ((y0 div n) * n)
by A2, A38, INT_1:def 8
.=
y0 - ([\(y0 / n)/] * n)
by INT_1:def 7
;
then A42:
y1 <= n
by A2, A40, Lm1;
x1 =
x0 - ((x0 div m) * m)
by A1, A37, INT_1:def 8
.=
x0 - ([\(x0 / m)/] * m)
by INT_1:def 7
;
then
x1 <= m
by A1, A41, Lm1;
hence
z in C
by A31, A32, A35, A42, A39;
verum
end;
reconsider B = { i where i is Element of NAT : ( m,i are_relative_prime & i >= 1 & i <= m ) } as finite set by A22;
A43:
for b being Nat st b = 1 holds
b in B
{0 } c= NAT
by ZFMISC_1:37;
then
(Seg (m * n)) \/ {0 } c= NAT
by XBOOLE_1:8;
then reconsider A = A, B = B, C = C as non empty finite Subset of NAT by A13, A22, A5, A20, A43, A14, XBOOLE_1:1;
deffunc H1( Element of A, Element of B) -> Element of NAT = ((m * $1) + (n * $2)) mod (m * n);
A45:
for y being Element of A
for x being Element of B holds H1(y,x) in C
proof
set l =
n * m;
let y be
Element of
A;
for x being Element of B holds H1(y,x) in Clet x be
Element of
B;
H1(y,x) in C
y in A
;
then consider i being
Element of
NAT such that A46:
i = y
and A47:
n,
i are_relative_prime
and A48:
i >= 1
and A49:
i <= n
;
x in B
;
then consider j being
Element of
NAT such that A50:
j = x
and A51:
m,
j are_relative_prime
and
j >= 1
and A52:
j <= m
;
i * m,
n are_relative_prime
by A1, A2, A3, A47, Th15;
then
(i * m) gcd n = 1
by INT_2:def 4;
then
((m * i) + (n * j)) gcd n = 1
by Th9;
then A53:
n,
(m * i) + (n * j) are_relative_prime
by INT_2:def 4;
j * n,
m are_relative_prime
by A1, A2, A3, A51, Th15;
then
(j * n) gcd m = 1
by INT_2:def 4;
then
((m * i) + (n * j)) gcd m = 1
by Th9;
then A54:
m,
(m * i) + (n * j) are_relative_prime
by INT_2:def 4;
i * m <> 0 * m
by A1, A48, XCMPLX_1:5;
then
n * m,
(m * i) + (n * j) are_relative_prime
by A1, A53, A54, Th15;
then A55:
(n * m) gcd ((m * i) + (n * j)) = 1
by INT_2:def 4;
reconsider ii =
i,
jj =
j as
Integer ;
((m * ii) + (n * jj)) mod (m * n) = ((m * i) + (n * j)) mod (m * n)
;
then consider q being
Element of
NAT such that A56:
q = ((m * ii) + (n * jj)) mod (m * n)
;
ex
t being
Nat st
(
(m * i) + (n * j) = ((n * m) * t) + (((m * i) + (n * j)) mod (n * m)) &
((m * i) + (n * j)) mod (n * m) < n * m )
by A4, NAT_D:def 2;
then
(((m * i) + (n * j)) mod (n * m)) gcd (n * m) = 1
by A55, Th9;
then
n * m,
q are_relative_prime
by A56, INT_2:def 4;
hence
H1(
y,
x)
in C
by A46, A49, A50, A52, A56;
verum
end;
consider f being Function of [:A,B:],C such that
A57:
for y being Element of A
for x being Element of B holds f . y,x = H1(y,x)
from FUNCT_7:sch 1(A45);
A58:
f is onto
proof
thus
rng f c= C
by RELAT_1:def 19;
FUNCT_2:def 3,
XBOOLE_0:def 10 C c= proj2 f
let z be
set ;
TARSKI:def 3 ( not z in C or z in proj2 f )
assume
z in C
;
z in proj2 f
then consider i being
Element of
NAT such that A59:
i = z
and A60:
ex
x0,
y0 being
Integer st
(
i = ((m * y0) + (n * x0)) mod (m * n) &
m * n,
i are_relative_prime &
y0 <= n &
x0 <= m &
i >= 0 )
;
consider x0,
y0 being
Integer such that A61:
i = ((m * y0) + (n * x0)) mod (m * n)
and A62:
m * n,
i are_relative_prime
and
y0 <= n
and
x0 <= m
and
i >= 0
by A60;
consider x,
y being
Integer such that A63:
x = x0 mod m
and A64:
y = y0 mod n
;
A65:
x <= m
by A1, A63, NEWTON:79;
A66:
((m * y) + (n * x)) mod (m * n) = ((m * y0) + (n * x0)) mod (m * n)
A67:
y <= n
by A2, A64, NEWTON:79;
reconsider x =
x,
y =
y as
Element of
NAT by A63, A64, INT_1:16, NEWTON:78;
A68:
x <> 0
proof
set j =
x0 div m;
set jj =
(y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n)));
assume
x = 0
;
contradiction
then
x0 - ((x0 div m) * m) = 0
by A1, A63, INT_1:def 8;
then A69:
((m * y0) + (n * x0)) mod (m * n) =
(m * (y0 + (n * (x0 div m)))) - (((m * (y0 + (n * (x0 div m)))) div (m * n)) * (m * n))
by A4, INT_1:def 8
.=
m * ((y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n))))
;
then reconsider g =
m * ((y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n)))) as
Element of
NAT by A61;
A70:
(m * n) gcd (m * ((y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n))))) = 1
by A61, A62, A69, INT_2:def 4;
A71:
(
g > 0 or
g = 0 )
;
not
(y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n))) < 0
then reconsider jj =
(y0 + (n * (x0 div m))) - (n * ((m * (y0 + (n * (x0 div m)))) div (m * n))) as
Element of
NAT by INT_1:16;
jj = 0
then
(m * n) gcd 0 = 1
by A61, A62, A69, INT_2:def 4;
hence
contradiction
by A23, NEWTON:65;
verum
end;
A72:
y <> 0
proof
set j =
y0 div n;
set jj =
((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n)));
assume
y = 0
;
contradiction
then
y0 - ((y0 div n) * n) = 0
by A2, A64, INT_1:def 8;
then A73:
((m * y0) + (n * x0)) mod (m * n) =
(n * ((m * (y0 div n)) + x0)) - (((n * ((m * (y0 div n)) + x0)) div (m * n)) * (m * n))
by A4, INT_1:def 8
.=
n * (((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n))))
;
then reconsider g =
n * (((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n)))) as
Element of
NAT by A61;
A74:
(m * n) gcd (n * (((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n))))) = 1
by A61, A62, A73, INT_2:def 4;
A75:
(
g > 0 or
g = 0 )
;
not
((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n))) < 0
then reconsider jj =
((m * (y0 div n)) + x0) - (m * ((n * ((m * (y0 div n)) + x0)) div (m * n))) as
Element of
NAT by INT_1:16;
jj = 0
then
(m * n) gcd 0 = 1
by A61, A62, A73, INT_2:def 4;
hence
contradiction
by A23, NEWTON:65;
verum
end;
A76:
m,
x0 are_relative_prime
n,
y0 are_relative_prime
then A91:
y0 gcd n = 1
by INT_2:def 4;
x = x0 - ((x0 div m) * m)
by A1, A63, INT_1:def 8;
then
x0 gcd m = (x + ((x0 div m) * m)) gcd m
;
then
x0 gcd m = x gcd m
by A68, Th17;
then
m gcd x = 1
by A76, INT_2:def 4;
then A92:
m,
x are_relative_prime
by INT_2:def 4;
x >= 0 + 1
by A68, INT_1:20;
then A93:
x in B
by A65, A92;
y = y0 - ((y0 div n) * n)
by A2, A64, INT_1:def 8;
then
y0 gcd n = (y + ((y0 div n) * n)) gcd n
;
then
y0 gcd n = y gcd n
by A72, Th17;
then A94:
n,
y are_relative_prime
by A91, INT_2:def 4;
y >= 0 + 1
by A72, INT_1:20;
then
y in A
by A67, A94;
then reconsider y =
y as
Element of
A ;
reconsider x =
x as
Element of
B by A93;
A95:
i = f . y,
x
by A57, A61, A66;
consider w being
set such that A96:
w = [y,x]
;
dom f = [:A,B:]
by FUNCT_2:def 1;
then
w in dom f
by A96, ZFMISC_1:106;
hence
z in rng f
by A59, A96, A95, FUNCT_1:def 5;
verum
end;
A97:
m * n >= 1
by A1, A2, NAT_1:14, XCMPLX_1:6;
f is one-to-one
proof
let x,
y be
set ;
FUNCT_1:def 8 ( not x in proj1 f or not y in proj1 f or not f . x = f . y or x = y )
A98:
dom f = [:A,B:]
by FUNCT_2:def 1;
assume
x in dom f
;
( not y in proj1 f or not f . x = f . y or x = y )
then consider xx1 being
Element of
A,
xx2 being
Element of
B such that A99:
x = [xx1,xx2]
by A98, DOMAIN_1:9;
assume
y in dom f
;
( not f . x = f . y or x = y )
then consider yy1 being
Element of
A,
yy2 being
Element of
B such that A100:
y = [yy1,yy2]
by A98, DOMAIN_1:9;
xx1 in A
;
then consider x1 being
Element of
NAT such that A101:
xx1 = x1
and
n,
x1 are_relative_prime
and A102:
x1 >= 1
and A103:
x1 <= n
;
xx2 in B
;
then consider x2 being
Element of
NAT such that A104:
xx2 = x2
and
m,
x2 are_relative_prime
and A105:
x2 >= 1
and A106:
x2 <= m
;
consider p being
Integer such that A107:
p = m
;
assume A108:
f . x = f . y
;
x = y
yy2 in B
;
then consider y2 being
Element of
NAT such that A109:
yy2 = y2
and
m,
y2 are_relative_prime
and A110:
y2 >= 1
and A111:
y2 <= m
;
yy1 in A
;
then consider y1 being
Element of
NAT such that A112:
yy1 = y1
and
n,
y1 are_relative_prime
and A113:
y1 >= 1
and A114:
y1 <= n
;
A115:
((x1 * m) + (x2 * n)) mod (m * n) =
f . xx1,
xx2
by A57, A101, A104
.=
f . yy1,
yy2
by A99, A100, A108
.=
((y1 * m) + (y2 * n)) mod (m * n)
by A57, A112, A109
;
reconsider y1 =
y1,
y2 =
y2,
x1 =
x1,
x2 =
x2 as
Element of
NAT ;
set k =
((x1 * m) + (x2 * n)) mod (m * n);
A116:
(
((x1 * m) + (x2 * n)) - ((y1 * m) + (y2 * n)) = (m * (x1 - y1)) + (n * (x2 - y2)) &
((((x1 * m) + (x2 * n)) mod (m * n)) + ((((x1 * m) + (x2 * n)) div (m * n)) * (m * n))) - ((((x1 * m) + (x2 * n)) mod (m * n)) + ((((y1 * m) + (y2 * n)) div (m * n)) * (m * n))) = (m * n) * ((((x1 * m) + (x2 * n)) div (m * n)) - (((y1 * m) + (y2 * n)) div (m * n))) )
;
set w =
(((x1 * m) + (x2 * n)) div (m * n)) - (((y1 * m) + (y2 * n)) div (m * n));
(y1 * m) + (y2 * n) = (((x1 * m) + (x2 * n)) mod (m * n)) + ((((y1 * m) + (y2 * n)) div (m * n)) * (m * n))
by A97, A115, NAT_D:2;
then A117:
(m * (x1 - y1)) + (n * (x2 - y2)) = (m * n) * ((((x1 * m) + (x2 * n)) div (m * n)) - (((y1 * m) + (y2 * n)) div (m * n)))
by A97, A116, NAT_D:2;
then
n * (x2 - y2) = m * ((n * ((((x1 * m) + (x2 * n)) div (m * n)) - (((y1 * m) + (y2 * n)) div (m * n)))) - (x1 - y1))
;
then A118:
p divides n * (x2 - y2)
by A107, INT_1:def 9;
consider p being
Integer such that A119:
p = n
;
m * (x1 - y1) = n * ((m * ((((x1 * m) + (x2 * n)) div (m * n)) - (((y1 * m) + (y2 * n)) div (m * n)))) - (x2 - y2))
by A117;
then A120:
p divides m * (x1 - y1)
by A119, INT_1:def 9;
then A121:
n divides x1 - y1
by A3, A119, INT_2:40;
A122:
x1 - y1 = 0
proof
per cases
( 0 <= x1 - y1 or x1 - y1 <= 0 )
;
suppose A123:
0 <= x1 - y1
;
x1 - y1 = 0 consider k being
Integer such that A124:
k = x1 - y1
;
reconsider k =
k as
Element of
NAT by A123, A124, INT_1:16;
k = 0
proof
set b =
n + (- 1);
- y1 <= - 1
by A113, XREAL_1:26;
then A125:
x1 + (- y1) <= n + (- 1)
by A103, XREAL_1:9;
then
n + (- 1) is
Element of
NAT
by A123, INT_1:16;
then A126:
k < (n + (- 1)) + 1
by A124, A125, NAT_1:13;
assume
k <> 0
;
contradiction
hence
contradiction
by A3, A119, A120, A124, A126, INT_2:40, NAT_D:7;
verum
end; hence
x1 - y1 = 0
by A124;
verum end; end;
end;
A133:
m divides x2 - y2
by A3, A107, A118, INT_2:40;
x2 - y2 = 0
proof
per cases
( 0 <= x2 - y2 or x2 - y2 <= 0 )
;
suppose A134:
0 <= x2 - y2
;
x2 - y2 = 0 consider k being
Integer such that A135:
k = x2 - y2
;
reconsider k =
k as
Element of
NAT by A134, A135, INT_1:16;
k = 0
proof
set b =
m + (- 1);
- y2 <= - 1
by A110, XREAL_1:26;
then A136:
x2 + (- y2) <= m + (- 1)
by A106, XREAL_1:9;
then
m + (- 1) is
Element of
NAT
by A134, INT_1:16;
then A137:
k < (m + (- 1)) + 1
by A135, A136, NAT_1:13;
assume
k <> 0
;
contradiction
hence
contradiction
by A3, A107, A118, A135, A137, INT_2:40, NAT_D:7;
verum
end; hence
x2 - y2 = 0
by A135;
verum end; end;
end;
hence
x = y
by A99, A101, A104, A100, A112, A109, A122;
verum
end;
then
card [:A,B:] = card C
by A58, Th12;
hence
Euler (m * n) = (Euler m) * (Euler n)
by A24, CARD_2:65; verum