A1:
uInt . 0 = 0_No
by Def1;
defpred S1[ Nat] means for n, m being Nat st n + m = $1 holds
(uInt . n) * (uInt . m) == uInt . (n * m);
A2:
for k being Nat st ( for n being Nat st n < k holds
S1[n] ) holds
S1[k]
proof
let k be
Nat;
( ( for n being Nat st n < k holds
S1[n] ) implies S1[k] )
assume A3:
for
n being
Nat st
n < k holds
S1[
n]
;
S1[k]
let n,
m be
Nat;
( n + m = k implies (uInt . n) * (uInt . m) == uInt . (n * m) )
assume A4:
n + m = k
;
(uInt . n) * (uInt . m) == uInt . (n * m)
per cases
( n = 0 or m = 0 or ( n <> 0 & m <> 0 ) )
;
suppose
(
n <> 0 &
m <> 0 )
;
(uInt . n) * (uInt . m) == uInt . (n * m)then reconsider n1 =
n - 1,
m1 =
m - 1,
nm1 =
(n * m) - 1 as
Nat by NAT_1:20;
A5:
(
uInt . (n1 + 1) = [{(uInt . n1)},{}] &
uInt . (m1 + 1) = [{(uInt . m1)},{}] )
by Def1;
A6:
uInt . (nm1 + 1) = [{(uInt . nm1)},{}]
by Def1;
set x =
uInt . n;
set y =
uInt . m;
reconsider nm1 =
(n * m) - 1 as
Nat by A6;
comp (
(R_ (uInt . n)),
(uInt . n),
(uInt . m),
(L_ (uInt . m)))
= comp (
(L_ (uInt . m)),
(uInt . m),
(uInt . n),
(R_ (uInt . n)))
by SURREALR:53;
then A7:
comp (
(R_ (uInt . n)),
(uInt . n),
(uInt . m),
(L_ (uInt . m)))
= {}
by A5, SURREALR:49;
A8:
(
comp (
(L_ (uInt . n)),
(uInt . n),
(uInt . m),
(R_ (uInt . m)))
= {} &
{} = comp (
(R_ (uInt . n)),
(uInt . n),
(uInt . m),
(R_ (uInt . m))) )
by A5, SURREALR:49;
A9:
(
n1 < n1 + 1 &
m1 < m1 + 1 )
by NAT_1:13;
then A10:
(
n1 + m < n + m &
n1 + m1 < n + m1 &
n + m1 < n + m )
by XREAL_1:8;
n1 + m1 < n + m
by A9, XREAL_1:8;
then
(
(uInt . n1) * (uInt . m) == uInt . (n1 * m) &
(uInt . n1) * (uInt . m1) == uInt . (n1 * m1) &
(uInt . n) * (uInt . m1) == uInt . (n * m1) )
by A4, A3, A10;
then
(
((uInt . n1) * (uInt . m)) + ((uInt . n) * (uInt . m1)) == (uInt . (n1 * m)) + (uInt . (n * m1)) &
(uInt . (n1 * m)) + (uInt . (n * m1)) = uInt . ((n1 * m) + (n * m1)) &
- ((uInt . n1) * (uInt . m1)) == - (uInt . (n1 * m1)) &
- (uInt . (n1 * m1)) = uInt . (- (n1 * m1)) )
by Th13, SURREALR:10, SURREALR:43, Th12;
then
(
(((uInt . n1) * (uInt . m)) + ((uInt . n) * (uInt . m1))) + (- ((uInt . n1) * (uInt . m1))) == (uInt . ((n1 * m) + (n * m1))) + (uInt . (- (n1 * m1))) &
(uInt . ((n1 * m) + (n * m1))) + (uInt . (- (n1 * m1))) == uInt . (((n1 * m) + (n * m1)) + (- (n1 * m1))) )
by Th14, SURREALR:43;
then
(((uInt . n1) * (uInt . m)) + ((uInt . n) * (uInt . m1))) + (- ((uInt . n1) * (uInt . m1))) == uInt . nm1
by SURREALO:4;
then
{((((uInt . n1) * (uInt . m)) + ((uInt . n) * (uInt . m1))) - ((uInt . n1) * (uInt . m1)))} <==> {(uInt . nm1)}
by SURREALO:32;
then A11:
comp (
(L_ (uInt . n)),
(uInt . n),
(uInt . m),
(L_ (uInt . m)))
<==> {(uInt . nm1)}
by A5, SURREALR:52;
(uInt . n) * (uInt . m) =
[((comp ((L_ (uInt . n)),(uInt . n),(uInt . m),(L_ (uInt . m)))) \/ {}),({} \/ {})]
by A7, A8, SURREALR:50
.=
[(comp ((L_ (uInt . n)),(uInt . n),(uInt . m),(L_ (uInt . m)))),{}]
;
hence
(uInt . n) * (uInt . m) == uInt . (n * m)
by A6, A11, SURREALO:29;
verum end; end;
end;
A12:
for k being Nat holds S1[k]
from NAT_1:sch 4(A2);
let i, j be Integer; (uInt . i) * (uInt . j) == uInt . (i * j)
i in INT
by INT_1:def 2;
then consider k being Nat such that
A13:
( i = k or i = - k )
by INT_1:def 1;
j in INT
by INT_1:def 2;
then consider n being Nat such that
A14:
( j = n or j = - n )
by INT_1:def 1;
A15:
S1[n + k]
by A12;
then A16:
(uInt . n) * (uInt . k) == uInt . (n * k)
;