Article XCMPLX_0, MML version 4.99.1005

:: XCMPLX_0:funcnot 1 => XCMPLX_0:func 1
definition
  func <i> -> set equals
    (0,1)-->(0,1);
end;

:: XCMPLX_0:def 1
theorem
<i> = (0,1)-->(0,1);

:: XCMPLX_0:attrnot 1 => XCMPLX_0:attr 1
definition
  let a1 be set;
  attr a1 is complex means
    a1 in COMPLEX;
end;

:: XCMPLX_0:dfs 2
definiens
  let a1 be set;
To prove
     a1 is complex
it is sufficient to prove
  thus a1 in COMPLEX;

:: XCMPLX_0:def 2
theorem
for b1 being set holds
      b1 is complex
   iff
      b1 in COMPLEX;

:: XCMPLX_0:funcreg 1
registration
  cluster <i> -> complex;
end;

:: XCMPLX_0:exreg 1
registration
  cluster complex set;
end;

:: XCMPLX_0:attrnot 2 => XBOOLE_0:attr 1
notation
  let a1 be complex set;
  synonym zero for empty;
end;

:: XCMPLX_0:attrnot 3 => XBOOLE_0:attr 1
definition
  let a1 be set;
  attr a1 is zero means
    a1 = 0;
end;

:: XCMPLX_0:dfs 3
definiens
  let a1 be complex set;
To prove
     a1 is empty
it is sufficient to prove
  thus a1 = 0;

:: XCMPLX_0:def 3
theorem
for b1 being complex set holds
      b1 is empty
   iff
      b1 = 0;

:: XCMPLX_0:funcnot 2 => XCMPLX_0:func 2
definition
  let a1, a2 be complex set;
  func A1 + A2 -> set means
    ex b1, b2, b3, b4 being Element of REAL st
       a1 = [*b1,b2*] & a2 = [*b3,b4*] & it = [*+(b1,b3),+(b2,b4)*];
  commutativity;
::  for a1, a2 being complex set holds
::  a1 + a2 = a2 + a1;
end;

:: XCMPLX_0:def 4
theorem
for b1, b2 being complex set
for b3 being set holds
      b3 = b1 + b2
   iff
      ex b4, b5, b6, b7 being Element of REAL st
         b1 = [*b4,b5*] & b2 = [*b6,b7*] & b3 = [*+(b4,b6),+(b5,b7)*];

:: XCMPLX_0:funcnot 3 => XCMPLX_0:func 3
definition
  let a1, a2 be complex set;
  func A1 * A2 -> set means
    ex b1, b2, b3, b4 being Element of REAL st
       a1 = [*b1,b2*] &
        a2 = [*b3,b4*] &
        it = [*+(*(b1,b3),opp *(b2,b4)),+(*(b1,b4),*(b2,b3))*];
  commutativity;
::  for a1, a2 being complex set holds
::  a1 * a2 = a2 * a1;
end;

:: XCMPLX_0:def 5
theorem
for b1, b2 being complex set
for b3 being set holds
      b3 = b1 * b2
   iff
      ex b4, b5, b6, b7 being Element of REAL st
         b1 = [*b4,b5*] &
          b2 = [*b6,b7*] &
          b3 = [*+(*(b4,b6),opp *(b5,b7)),+(*(b4,b7),*(b5,b6))*];

:: XCMPLX_0:funcreg 2
registration
  let a1, a2 be complex set;
  cluster a1 + a2 -> complex;
end;

:: XCMPLX_0:funcreg 3
registration
  let a1, a2 be complex set;
  cluster a1 * a2 -> complex;
end;

:: XCMPLX_0:funcnot 4 => XCMPLX_0:func 4
definition
  let a1 be complex set;
  func - A1 -> complex set means
    a1 + it = 0;
  involutiveness;
::  for a1 being complex set holds
::     - - a1 = a1;
end;

:: XCMPLX_0:def 6
theorem
for b1, b2 being complex set holds
   b2 = - b1
iff
   b1 + b2 = 0;

:: XCMPLX_0:funcnot 5 => XCMPLX_0:func 5
definition
  let a1 be complex set;
  func A1 " -> complex set means
    a1 * it = 1
    if a1 <> 0
    otherwise it = 0;
  involutiveness;
::  for a1 being complex set holds
::     a1 " " = a1;
end;

:: XCMPLX_0:def 7
theorem
for b1, b2 being complex set holds
(b1 = 0 or    (b2 = b1 "
 iff
    b1 * b2 = 1)) &
 (b1 = 0 implies    (b2 = b1 "
 iff
    b2 = 0));

:: XCMPLX_0:funcnot 6 => XCMPLX_0:func 6
definition
  let a1, a2 be complex set;
  func A1 - A2 -> set equals
    a1 + - a2;
end;

:: XCMPLX_0:def 8
theorem
for b1, b2 being complex set holds
b1 - b2 = b1 + - b2;

:: XCMPLX_0:funcnot 7 => XCMPLX_0:func 7
definition
  let a1, a2 be complex set;
  func A1 / A2 -> set equals
    a1 * (a2 ");
end;

:: XCMPLX_0:def 9
theorem
for b1, b2 being complex set holds
b1 / b2 = b1 * (b2 ");

:: XCMPLX_0:funcreg 4
registration
  let a1, a2 be complex set;
  cluster a1 - a2 -> complex;
end;

:: XCMPLX_0:funcreg 5
registration
  let a1, a2 be complex set;
  cluster a1 / a2 -> complex;
end;

:: XCMPLX_0:exreg 2
registration
  cluster non empty complex set;
end;

:: XCMPLX_0:funcreg 6
registration
  let a1 be non empty complex set;
  cluster - a1 -> non empty complex;
end;

:: XCMPLX_0:funcreg 7
registration
  let a1 be non empty complex set;
  cluster a1 " -> non empty complex;
end;

:: XCMPLX_0:funcreg 8
registration
  let a1, a2 be non empty complex set;
  cluster a1 * a2 -> non empty;
end;

:: XCMPLX_0:funcreg 9
registration
  let a1, a2 be non empty complex set;
  cluster a1 / a2 -> non empty;
end;

:: XCMPLX_0:condreg 1
registration
  cluster -> complex (Element of REAL);
end;

:: XCMPLX_0:condreg 2
registration
  cluster natural -> complex (set);
end;

:: XCMPLX_0:condreg 3
registration
  cluster -> complex (Element of COMPLEX);
end;