Article ABSVALUE, MML version 4.99.1005

:: ABSVALUE:funcnot 1 => COMPLEX1:func 16
definition
  let a1 be complex set;
  func |.A1.| -> complex set equals
    a1
    if 0 <= a1
    otherwise - a1;
  projectivity;
::  for a1 being complex set holds
::     |.|.a1.|.| = |.a1.|;
end;

:: ABSVALUE:def 1
theorem
for b1 being real set holds
   (0 <= b1 implies |.b1.| = b1) &
    (0 <= b1 or |.b1.| = - b1);

:: ABSVALUE:th 1
theorem
for b1 being real set
      st abs b1 <> b1
   holds abs b1 = - b1;

:: ABSVALUE:th 7
theorem
for b1 being real set holds
      b1 = 0
   iff
      abs b1 = 0;

:: ABSVALUE:th 9
theorem
for b1 being real set
      st abs b1 = - b1 & b1 <> 0
   holds b1 < 0;

:: ABSVALUE:th 11
theorem
for b1 being real set holds
   - abs b1 <= b1 & b1 <= abs b1;

:: ABSVALUE:th 12
theorem
for b1, b2 being real set holds
   - b1 <= b2 & b2 <= b1
iff
   abs b2 <= b1;

:: ABSVALUE:th 14
theorem
for b1 being real set
      st b1 <> 0
   holds (abs b1) * abs (1 / b1) = 1;

:: ABSVALUE:th 15
theorem
for b1 being real set holds
   abs (1 / b1) = 1 / abs b1;

:: ABSVALUE:th 20
theorem
for b1, b2 being real set
      st 0 <= b1 * b2
   holds sqrt (b1 * b2) = (sqrt abs b1) * sqrt abs b2;

:: ABSVALUE:th 21
theorem
for b1, b2, b3, b4 being real set
      st abs b1 <= b2 & abs b3 <= b4
   holds abs (b1 + b3) <= b2 + b4;

:: ABSVALUE:th 23
theorem
for b1, b2 being real set
      st 0 < b1 / b2
   holds sqrt (b1 / b2) = (sqrt abs b1) / sqrt abs b2;

:: ABSVALUE:th 24
theorem
for b1, b2 being real set
      st 0 <= b1 * b2
   holds abs (b1 + b2) = (abs b1) + abs b2;

:: ABSVALUE:th 25
theorem
for b1, b2 being real set
      st abs (b1 + b2) = (abs b1) + abs b2
   holds 0 <= b1 * b2;

:: ABSVALUE:th 26
theorem
for b1, b2 being real set holds
(abs (b1 + b2)) / (1 + abs (b1 + b2)) <= ((abs b1) / (1 + abs b1)) + ((abs b2) / (1 + abs b2));

:: ABSVALUE:funcnot 2 => ABSVALUE:func 1
definition
  let a1 be real set;
  func sgn A1 -> set equals
    1
    if 0 < a1,
- 1
    if a1 < 0
    otherwise 0;
end;

:: ABSVALUE:def 2
theorem
for b1 being real set holds
   (b1 <= 0 or sgn b1 = 1) &
    (0 <= b1 or sgn b1 = - 1) &
    (b1 <= 0 & 0 <= b1 implies sgn b1 = 0);

:: ABSVALUE:funcreg 1
registration
  let a1 be real set;
  cluster sgn a1 -> real;
end;

:: ABSVALUE:funcnot 3 => ABSVALUE:func 2
definition
  let a1 be Element of REAL;
  redefine func sgn a1 -> Element of REAL;
end;

:: ABSVALUE:th 31
theorem
for b1 being real set
      st sgn b1 = 1
   holds 0 < b1;

:: ABSVALUE:th 32
theorem
for b1 being real set
      st sgn b1 = - 1
   holds b1 < 0;

:: ABSVALUE:th 33
theorem
for b1 being real set
      st sgn b1 = 0
   holds b1 = 0;

:: ABSVALUE:th 34
theorem
for b1 being real set holds
   b1 = (abs b1) * sgn b1;

:: ABSVALUE:th 35
theorem
for b1, b2 being real set holds
sgn (b1 * b2) = (sgn b1) * sgn b2;

:: ABSVALUE:th 36
theorem
for b1 being real set holds
   sgn sgn b1 = sgn b1;

:: ABSVALUE:th 37
theorem
for b1, b2 being real set holds
sgn (b1 + b2) <= ((sgn b1) + sgn b2) + 1;

:: ABSVALUE:th 38
theorem
for b1 being real set
      st b1 <> 0
   holds (sgn b1) * sgn (1 / b1) = 1;

:: ABSVALUE:th 39
theorem
for b1 being real set holds
   1 / sgn b1 = sgn (1 / b1);

:: ABSVALUE:th 40
theorem
for b1, b2 being real set holds
((sgn b1) + sgn b2) - 1 <= sgn (b1 + b2);

:: ABSVALUE:th 41
theorem
for b1 being real set holds
   sgn b1 = sgn (1 / b1);

:: ABSVALUE:th 42
theorem
for b1, b2 being real set holds
sgn (b1 / b2) = (sgn b1) / sgn b2;