let x, y be R_eal; :: thesis: |.(x * y).| = |.x.| * |.y.|
per cases ( x = 0 or 0 < x or x < 0 ) ;
suppose x = 0 ; :: thesis: |.(x * y).| = |.x.| * |.y.|
end;
suppose A1: 0 < x ; :: thesis: |.(x * y).| = |.x.| * |.y.|
end;
suppose A4: x < 0 ; :: thesis: |.(x * y).| = |.x.| * |.y.|
now
per cases ( y = 0 or 0 < y or y < 0 ) ;
suppose 0 < y ; :: thesis: |.(x * y).| = |.x.| * |.y.|
then ( not 0 <= x * y & |.y.| = y ) by A4, EXTREAL1:21, EXTREAL1:def 3;
then ( |.(x * y).| = - (x * y) & |.x.| * |.y.| = (- x) * y ) by A4, EXTREAL1:def 3;
hence |.(x * y).| = |.x.| * |.y.| by EXTREAL1:26; :: thesis: verum
end;
suppose y < 0 ; :: thesis: |.(x * y).| = |.x.| * |.y.|
then A5: ( 0 <= x * y & |.y.| = - y ) by A4, EXTREAL1:20, EXTREAL1:def 3;
then ( |.(x * y).| = x * y & |.x.| * |.y.| = (- x) * (- y) ) by A4, EXTREAL1:def 3;
then |.x.| * |.y.| = - (x * (- y)) by EXTREAL1:26
.= - (- (x * y)) by EXTREAL1:26 ;
hence |.(x * y).| = |.x.| * |.y.| by A5, EXTREAL1:def 3; :: thesis: verum
end;
end;
end;
hence |.(x * y).| = |.x.| * |.y.| ; :: thesis: verum
end;
end;