let m, n be Element of NAT ; ( m divides n iff m ^2 divides n ^2 )
defpred S1[ Nat] means for n being Element of NAT holds
( $1 divides n iff $1 ^2 divides n ^2 );
A1:
for m being Nat st ( for k being Nat st k < m holds
S1[k] ) holds
S1[m]
proof
let m be
Nat;
( ( for k being Nat st k < m holds
S1[k] ) implies S1[m] )
assume A2:
for
k being
Nat st
k < m holds
for
n being
Element of
NAT holds
(
k divides n iff
k ^2 divides n ^2 )
;
S1[m]
let n be
Element of
NAT ;
( m divides n iff m ^2 divides n ^2 )
assume A4:
m ^2 divides n ^2
;
m divides n
per cases
( m = 0 or m = 1 or m > 1 )
by NAT_1:26;
suppose A5:
m > 1
;
m divides nconsider k' being
Nat such that A6:
n ^2 = (m ^2 ) * k'
by A4, NAT_D:def 3;
m >= 1
+ 1
by A5, NAT_1:13;
then consider p' being
Element of
NAT such that A7:
p' is
prime
and A8:
p' divides m
by INT_2:48;
reconsider p =
p' as
prime Element of
NAT by A7;
consider m' being
Nat such that A9:
m = p * m'
by A8, NAT_D:def 3;
reconsider m' =
m' as
Element of
NAT by ORDINAL1:def 13;
m ^2 = (m * m') * p
by A9;
then
p divides m ^2
by NAT_D:def 3;
then
p divides n ^2
by A4, NAT_D:4;
then
p divides n
by NEWTON:98;
then consider n' being
Nat such that A10:
n = p * n'
by NAT_D:def 3;
A11:
p > 1
by INT_2:def 5;
then A12:
p ^2 > 0
by SQUARE_1:74;
reconsider n' =
n' as
Element of
NAT by ORDINAL1:def 13;
(p ^2 ) * (n' ^2 ) = (p ^2 ) * ((m' ^2 ) * k')
by A9, A10, A6;
then
n' ^2 = (m' ^2 ) * k'
by A12, XCMPLX_1:5;
then A13:
m' ^2 divides n' ^2
by NAT_D:def 3;
p * m' > 1
* m'
by A5, A9, A11, XREAL_1:100;
then
m' divides n'
by A2, A9, A13;
then consider k being
Nat such that A14:
n' = m' * k
by NAT_D:def 3;
n = m * k
by A9, A10, A14;
hence
m divides n
by NAT_D:def 3;
verum end; end;
end;
for m being Nat holds S1[m]
from NAT_1:sch 4(A1);
hence
( m divides n iff m ^2 divides n ^2 )
; verum