:: CFUNCDOM semantic presentation

definition
let c1 be non empty set ;
func ComplexFuncAdd c1 -> BinOp of Funcs a1,COMPLEX means :Def1: :: CFUNCDOM:def 1
for b1, b2 being Element of Funcs a1,COMPLEX holds a2 . b1,b2 = addcomplex .: b1,b2;
existence
ex b1 being BinOp of Funcs c1,COMPLEX st
for b2, b3 being Element of Funcs c1,COMPLEX holds b1 . b2,b3 = addcomplex .: b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of Funcs c1,COMPLEX st ( for b3, b4 being Element of Funcs c1,COMPLEX holds b1 . b3,b4 = addcomplex .: b3,b4 ) & ( for b3, b4 being Element of Funcs c1,COMPLEX holds b2 . b3,b4 = addcomplex .: b3,b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines ComplexFuncAdd CFUNCDOM:def 1 :
for b1 being non empty set
for b2 being BinOp of Funcs b1,COMPLEX holds
( b2 = ComplexFuncAdd b1 iff for b3, b4 being Element of Funcs b1,COMPLEX holds b2 . b3,b4 = addcomplex .: b3,b4 );

definition
let c1 be non empty set ;
func ComplexFuncMult c1 -> BinOp of Funcs a1,COMPLEX means :Def2: :: CFUNCDOM:def 2
for b1, b2 being Element of Funcs a1,COMPLEX holds a2 . b1,b2 = multcomplex .: b1,b2;
existence
ex b1 being BinOp of Funcs c1,COMPLEX st
for b2, b3 being Element of Funcs c1,COMPLEX holds b1 . b2,b3 = multcomplex .: b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of Funcs c1,COMPLEX st ( for b3, b4 being Element of Funcs c1,COMPLEX holds b1 . b3,b4 = multcomplex .: b3,b4 ) & ( for b3, b4 being Element of Funcs c1,COMPLEX holds b2 . b3,b4 = multcomplex .: b3,b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines ComplexFuncMult CFUNCDOM:def 2 :
for b1 being non empty set
for b2 being BinOp of Funcs b1,COMPLEX holds
( b2 = ComplexFuncMult b1 iff for b3, b4 being Element of Funcs b1,COMPLEX holds b2 . b3,b4 = multcomplex .: b3,b4 );

definition
let c1 be non empty set ;
func ComplexFuncExtMult c1 -> Function of [:COMPLEX ,(Funcs a1,COMPLEX ):], Funcs a1,COMPLEX means :Def3: :: CFUNCDOM:def 3
for b1 being Complex
for b2 being Element of Funcs a1,COMPLEX
for b3 being Element of a1 holds (a2 . [b1,b2]) . b3 = b1 * (b2 . b3);
existence
ex b1 being Function of [:COMPLEX ,(Funcs c1,COMPLEX ):], Funcs c1,COMPLEX st
for b2 being Complex
for b3 being Element of Funcs c1,COMPLEX
for b4 being Element of c1 holds (b1 . [b2,b3]) . b4 = b2 * (b3 . b4)
proof end;
uniqueness
for b1, b2 being Function of [:COMPLEX ,(Funcs c1,COMPLEX ):], Funcs c1,COMPLEX st ( for b3 being Complex
for b4 being Element of Funcs c1,COMPLEX
for b5 being Element of c1 holds (b1 . [b3,b4]) . b5 = b3 * (b4 . b5) ) & ( for b3 being Complex
for b4 being Element of Funcs c1,COMPLEX
for b5 being Element of c1 holds (b2 . [b3,b4]) . b5 = b3 * (b4 . b5) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines ComplexFuncExtMult CFUNCDOM:def 3 :
for b1 being non empty set
for b2 being Function of [:COMPLEX ,(Funcs b1,COMPLEX ):], Funcs b1,COMPLEX holds
( b2 = ComplexFuncExtMult b1 iff for b3 being Complex
for b4 being Element of Funcs b1,COMPLEX
for b5 being Element of b1 holds (b2 . [b3,b4]) . b5 = b3 * (b4 . b5) );

definition
let c1 be non empty set ;
func ComplexFuncZero c1 -> Element of Funcs a1,COMPLEX equals :: CFUNCDOM:def 4
a1 --> 0;
coherence
c1 --> 0 is Element of Funcs c1,COMPLEX
proof end;
end;

:: deftheorem Def4 defines ComplexFuncZero CFUNCDOM:def 4 :
for b1 being non empty set holds ComplexFuncZero b1 = b1 --> 0;

definition
let c1 be non empty set ;
func ComplexFuncUnit c1 -> Element of Funcs a1,COMPLEX equals :: CFUNCDOM:def 5
a1 --> 1r ;
coherence
c1 --> 1r is Element of Funcs c1,COMPLEX
proof end;
end;

:: deftheorem Def5 defines ComplexFuncUnit CFUNCDOM:def 5 :
for b1 being non empty set holds ComplexFuncUnit b1 = b1 --> 1r ;

Lemma4: for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function of b1,b2 holds b3 in dom b4
proof end;

theorem Th1: :: CFUNCDOM:1
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,COMPLEX holds
( b2 = (ComplexFuncAdd b1) . b3,b4 iff for b5 being Element of b1 holds b2 . b5 = (b3 . b5) + (b4 . b5) )
proof end;

theorem Th2: :: CFUNCDOM:2
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,COMPLEX holds
( b2 = (ComplexFuncMult b1) . b3,b4 iff for b5 being Element of b1 holds b2 . b5 = (b3 . b5) * (b4 . b5) )
proof end;

theorem Th3: :: CFUNCDOM:3
for b1 being non empty set
for b2 being Element of b1 holds (ComplexFuncUnit b1) . b2 = 1r by FUNCOP_1:13;

theorem Th4: :: CFUNCDOM:4
for b1 being non empty set
for b2 being Element of b1 holds (ComplexFuncZero b1) . b2 = 0 by FUNCOP_1:13;

theorem Th5: :: CFUNCDOM:5
for b1 being non empty set holds ComplexFuncZero b1 <> ComplexFuncUnit b1
proof end;

theorem Th6: :: CFUNCDOM:6
for b1 being non empty set
for b2, b3 being Element of Funcs b1,COMPLEX
for b4 being Complex holds
( b2 = (ComplexFuncExtMult b1) . [b4,b3] iff for b5 being Element of b1 holds b2 . b5 = b4 * (b3 . b5) )
proof end;

theorem Th7: :: CFUNCDOM:7
for b1 being non empty set
for b2, b3 being Element of Funcs b1,COMPLEX holds (ComplexFuncAdd b1) . b2,b3 = (ComplexFuncAdd b1) . b3,b2
proof end;

theorem Th8: :: CFUNCDOM:8
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,COMPLEX holds (ComplexFuncAdd b1) . b2,((ComplexFuncAdd b1) . b3,b4) = (ComplexFuncAdd b1) . ((ComplexFuncAdd b1) . b2,b3),b4
proof end;

theorem Th9: :: CFUNCDOM:9
for b1 being non empty set
for b2, b3 being Element of Funcs b1,COMPLEX holds (ComplexFuncMult b1) . b2,b3 = (ComplexFuncMult b1) . b3,b2
proof end;

theorem Th10: :: CFUNCDOM:10
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,COMPLEX holds (ComplexFuncMult b1) . b2,((ComplexFuncMult b1) . b3,b4) = (ComplexFuncMult b1) . ((ComplexFuncMult b1) . b2,b3),b4
proof end;

theorem Th11: :: CFUNCDOM:11
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX holds (ComplexFuncMult b1) . (ComplexFuncUnit b1),b2 = b2
proof end;

theorem Th12: :: CFUNCDOM:12
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX holds (ComplexFuncAdd b1) . (ComplexFuncZero b1),b2 = b2
proof end;

theorem Th13: :: CFUNCDOM:13
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX holds (ComplexFuncAdd b1) . b2,((ComplexFuncExtMult b1) . [(- 1r ),b2]) = ComplexFuncZero b1
proof end;

theorem Th14: :: CFUNCDOM:14
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX holds (ComplexFuncExtMult b1) . [1r ,b2] = b2
proof end;

theorem Th15: :: CFUNCDOM:15
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX
for b3, b4 being Complex holds (ComplexFuncExtMult b1) . [b3,((ComplexFuncExtMult b1) . [b4,b2])] = (ComplexFuncExtMult b1) . [(b3 * b4),b2]
proof end;

theorem Th16: :: CFUNCDOM:16
for b1 being non empty set
for b2 being Element of Funcs b1,COMPLEX
for b3, b4 being Complex holds (ComplexFuncAdd b1) . ((ComplexFuncExtMult b1) . [b3,b2]),((ComplexFuncExtMult b1) . [b4,b2]) = (ComplexFuncExtMult b1) . [(b3 + b4),b2]
proof end;

Lemma20: for b1 being non empty set
for b2, b3 being Element of Funcs b1,COMPLEX
for b4 being Complex holds (ComplexFuncAdd b1) . ((ComplexFuncExtMult b1) . [b4,b2]),((ComplexFuncExtMult b1) . [b4,b3]) = (ComplexFuncExtMult b1) . [b4,((ComplexFuncAdd b1) . b2,b3)]
proof end;

theorem Th17: :: CFUNCDOM:17
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,COMPLEX holds (ComplexFuncMult b1) . b2,((ComplexFuncAdd b1) . b3,b4) = (ComplexFuncAdd b1) . ((ComplexFuncMult b1) . b2,b3),((ComplexFuncMult b1) . b2,b4)
proof end;

theorem Th18: :: CFUNCDOM:18
for b1 being non empty set
for b2, b3 being Element of Funcs b1,COMPLEX
for b4 being Complex holds (ComplexFuncMult b1) . ((ComplexFuncExtMult b1) . [b4,b2]),b3 = (ComplexFuncExtMult b1) . [b4,((ComplexFuncMult b1) . b2,b3)]
proof end;

theorem Th19: :: CFUNCDOM:19
for b1 being set
for b2 being non empty set ex b3, b4 being Element of Funcs b2,COMPLEX st
( ( for b5 being set st b5 in b2 holds
( ( b5 = b1 implies b3 . b5 = 1r ) & ( b5 <> b1 implies b3 . b5 = 0 ) ) ) & ( for b5 being set st b5 in b2 holds
( ( b5 = b1 implies b4 . b5 = 0 ) & ( b5 <> b1 implies b4 . b5 = 1r ) ) ) )
proof end;

theorem Th20: :: CFUNCDOM:20
for b1, b2 being set
for b3 being non empty set
for b4, b5 being Element of Funcs b3,COMPLEX st b1 in b3 & b2 in b3 & b1 <> b2 & ( for b6 being set st b6 in b3 holds
( ( b6 = b1 implies b4 . b6 = 1r ) & ( b6 <> b1 implies b4 . b6 = 0 ) ) ) & ( for b6 being set st b6 in b3 holds
( ( b6 = b1 implies b5 . b6 = 0 ) & ( b6 <> b1 implies b5 . b6 = 1r ) ) ) holds
for b6, b7 being Complex st (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b6,b4]),((ComplexFuncExtMult b3) . [b7,b5]) = ComplexFuncZero b3 holds
( b6 = 0c & b7 = 0c )
proof end;

theorem Th21: :: CFUNCDOM:21
for b1, b2 being set
for b3 being non empty set st b1 in b3 & b2 in b3 & b1 <> b2 holds
ex b4, b5 being Element of Funcs b3,COMPLEX st
for b6, b7 being Complex st (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b6,b4]),((ComplexFuncExtMult b3) . [b7,b5]) = ComplexFuncZero b3 holds
( b6 = 0 & b7 = 0 )
proof end;

theorem Th22: :: CFUNCDOM:22
for b1, b2 being set
for b3 being non empty set
for b4, b5 being Element of Funcs b3,COMPLEX st b3 = {b1,b2} & b1 <> b2 & ( for b6 being set st b6 in b3 holds
( ( b6 = b1 implies b4 . b6 = 1r ) & ( b6 <> b1 implies b4 . b6 = 0 ) ) ) & ( for b6 being set st b6 in b3 holds
( ( b6 = b1 implies b5 . b6 = 0 ) & ( b6 <> b1 implies b5 . b6 = 1r ) ) ) holds
for b6 being Element of Funcs b3,COMPLEX ex b7, b8 being Complex st b6 = (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b7,b4]),((ComplexFuncExtMult b3) . [b8,b5])
proof end;

theorem Th23: :: CFUNCDOM:23
for b1, b2 being set
for b3 being non empty set st b3 = {b1,b2} & b1 <> b2 holds
ex b4, b5 being Element of Funcs b3,COMPLEX st
for b6 being Element of Funcs b3,COMPLEX ex b7, b8 being Complex st b6 = (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b7,b4]),((ComplexFuncExtMult b3) . [b8,b5])
proof end;

theorem Th24: :: CFUNCDOM:24
for b1, b2 being set
for b3 being non empty set st b3 = {b1,b2} & b1 <> b2 holds
ex b4, b5 being Element of Funcs b3,COMPLEX st
( ( for b6, b7 being Complex st (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b6,b4]),((ComplexFuncExtMult b3) . [b7,b5]) = ComplexFuncZero b3 holds
( b6 = 0 & b7 = 0 ) ) & ( for b6 being Element of Funcs b3,COMPLEX ex b7, b8 being Complex st b6 = (ComplexFuncAdd b3) . ((ComplexFuncExtMult b3) . [b7,b4]),((ComplexFuncExtMult b3) . [b8,b5]) ) )
proof end;

theorem Th25: :: CFUNCDOM:25
for b1 being non empty set holds CLSStruct(# (Funcs b1,COMPLEX ),(ComplexFuncZero b1),(ComplexFuncAdd b1),(ComplexFuncExtMult b1) #) is ComplexLinearSpace
proof end;

definition
let c1 be non empty set ;
func ComplexVectSpace c1 -> strict ComplexLinearSpace equals :: CFUNCDOM:def 6
CLSStruct(# (Funcs a1,COMPLEX ),(ComplexFuncZero a1),(ComplexFuncAdd a1),(ComplexFuncExtMult a1) #);
coherence
CLSStruct(# (Funcs c1,COMPLEX ),(ComplexFuncZero c1),(ComplexFuncAdd c1),(ComplexFuncExtMult c1) #) is strict ComplexLinearSpace
by Th25;
end;

:: deftheorem Def6 defines ComplexVectSpace CFUNCDOM:def 6 :
for b1 being non empty set holds ComplexVectSpace b1 = CLSStruct(# (Funcs b1,COMPLEX ),(ComplexFuncZero b1),(ComplexFuncAdd b1),(ComplexFuncExtMult b1) #);

Lemma28: ex b1 being non empty set ex b2, b3 being set st
( b1 = {b2,b3} & b2 <> b3 )
proof end;

theorem Th26: :: CFUNCDOM:26
ex b1 being strict ComplexLinearSpaceex b2, b3 being VECTOR of b1 st
( ( for b4, b5 being Complex st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) ) & ( for b4 being VECTOR of b1 ex b5, b6 being Complex st b4 = (b5 * b2) + (b6 * b3) ) )
proof end;

definition
let c1 be non empty set ;
func CRing c1 -> strict doubleLoopStr equals :: CFUNCDOM:def 7
doubleLoopStr(# (Funcs a1,COMPLEX ),(ComplexFuncAdd a1),(ComplexFuncMult a1),(ComplexFuncUnit a1),(ComplexFuncZero a1) #);
correctness
coherence
doubleLoopStr(# (Funcs c1,COMPLEX ),(ComplexFuncAdd c1),(ComplexFuncMult c1),(ComplexFuncUnit c1),(ComplexFuncZero c1) #) is strict doubleLoopStr
;
;
end;

:: deftheorem Def7 defines CRing CFUNCDOM:def 7 :
for b1 being non empty set holds CRing b1 = doubleLoopStr(# (Funcs b1,COMPLEX ),(ComplexFuncAdd b1),(ComplexFuncMult b1),(ComplexFuncUnit b1),(ComplexFuncZero b1) #);

registration
let c1 be non empty set ;
cluster CRing a1 -> non empty strict ;
coherence
not CRing c1 is empty
proof end;
end;

Lemma29: for b1 being non empty set
for b2, b3 being Element of (CRing b1) holds b2 * b3 = b3 * b2
by Th9;

E30: now
let c1 be non empty set ;
let c2, c3 be Element of (CRing c1);
assume E31: c3 = ComplexFuncUnit c1 ;
reconsider c4 = c2 as Element of Funcs c1,COMPLEX ;
thus E32: c3 * c2 = the mult of (CRing c1) . c3,c2
.= (ComplexFuncMult c1) . (ComplexFuncUnit c1),c4 by E31
.= c2 by Th11 ;
thus c2 * c3 = c3 * c2 by Lemma29
.= c2 by E32 ;
end;

registration
let c1 be non empty set ;
cluster CRing a1 -> non empty unital strict ;
coherence
CRing c1 is unital
proof end;
end;

E31: now
let c1 be non empty set ;
reconsider c2 = ComplexFuncUnit c1 as Element of (CRing c1) ;
for b1 being Element of (CRing c1) holds
( b1 * c2 = b1 & c2 * b1 = b1 ) by Lemma30;
hence 1. (CRing c1) = ComplexFuncUnit c1 by GROUP_1:def 5;
end;

theorem Th27: :: CFUNCDOM:27
for b1 being non empty set
for b2, b3, b4 being Element of (CRing b1) holds
( b2 + b3 = b3 + b2 & (b2 + b3) + b4 = b2 + (b3 + b4) & b2 + (0. (CRing b1)) = b2 & ex b5 being Element of (CRing b1) st b2 + b5 = 0. (CRing b1) & b2 * b3 = b3 * b2 & (b2 * b3) * b4 = b2 * (b3 * b4) & b2 * (1. (CRing b1)) = b2 & (1. (CRing b1)) * b2 = b2 & b2 * (b3 + b4) = (b2 * b3) + (b2 * b4) & (b3 + b4) * b2 = (b3 * b2) + (b4 * b2) )
proof end;

theorem Th28: :: CFUNCDOM:28
for b1 being non empty set holds CRing b1 is commutative Ring
proof end;

definition
attr a1 is strict;
struct ComplexAlgebraStr -> doubleLoopStr , CLSStruct ;
aggr ComplexAlgebraStr(# carrier, mult, add, Mult, unity, Zero #) -> ComplexAlgebraStr ;
end;

registration
cluster non empty ComplexAlgebraStr ;
existence
not for b1 being ComplexAlgebraStr holds b1 is empty
proof end;
end;

definition
let c1 be non empty set ;
func CAlgebra c1 -> strict ComplexAlgebraStr equals :: CFUNCDOM:def 8
ComplexAlgebraStr(# (Funcs a1,COMPLEX ),(ComplexFuncMult a1),(ComplexFuncAdd a1),(ComplexFuncExtMult a1),(ComplexFuncUnit a1),(ComplexFuncZero a1) #);
correctness
coherence
ComplexAlgebraStr(# (Funcs c1,COMPLEX ),(ComplexFuncMult c1),(ComplexFuncAdd c1),(ComplexFuncExtMult c1),(ComplexFuncUnit c1),(ComplexFuncZero c1) #) is strict ComplexAlgebraStr
;
;
end;

:: deftheorem Def8 defines CAlgebra CFUNCDOM:def 8 :
for b1 being non empty set holds CAlgebra b1 = ComplexAlgebraStr(# (Funcs b1,COMPLEX ),(ComplexFuncMult b1),(ComplexFuncAdd b1),(ComplexFuncExtMult b1),(ComplexFuncUnit b1),(ComplexFuncZero b1) #);

registration
let c1 be non empty set ;
cluster CAlgebra a1 -> non empty strict ;
coherence
not CAlgebra c1 is empty
proof end;
end;

Lemma33: for b1 being non empty set
for b2, b3 being Element of (CAlgebra b1) holds b2 * b3 = b3 * b2
by Th9;

E34: now
let c1 be non empty set ;
let c2, c3 be Element of (CAlgebra c1);
assume E35: c3 = ComplexFuncUnit c1 ;
reconsider c4 = c2 as Element of Funcs c1,COMPLEX ;
thus E36: c3 * c2 = the mult of (CAlgebra c1) . c3,c2
.= (ComplexFuncMult c1) . (ComplexFuncUnit c1),c4 by E35
.= c2 by Th11 ;
thus c2 * c3 = c3 * c2 by Lemma33
.= c2 by E36 ;
end;

registration
let c1 be non empty set ;
cluster CAlgebra a1 -> non empty unital strict ;
coherence
CAlgebra c1 is unital
proof end;
end;

E35: now
let c1 be non empty set ;
reconsider c2 = ComplexFuncUnit c1 as Element of (CAlgebra c1) ;
for b1 being Element of (CAlgebra c1) holds
( b1 * c2 = b1 & c2 * b1 = b1 ) by Lemma34;
hence 1. (CAlgebra c1) = ComplexFuncUnit c1 by GROUP_1:def 5;
end;

theorem Th29: :: CFUNCDOM:29
for b1 being non empty set
for b2, b3, b4 being Element of (CAlgebra b1)
for b5, b6 being Complex holds
( b2 + b3 = b3 + b2 & (b2 + b3) + b4 = b2 + (b3 + b4) & b2 + (0. (CAlgebra b1)) = b2 & ex b7 being Element of (CAlgebra b1) st b2 + b7 = 0. (CAlgebra b1) & b2 * b3 = b3 * b2 & (b2 * b3) * b4 = b2 * (b3 * b4) & b2 * (1. (CAlgebra b1)) = b2 & b2 * (b3 + b4) = (b2 * b3) + (b2 * b4) & b5 * (b2 * b3) = (b5 * b2) * b3 & b5 * (b2 + b3) = (b5 * b2) + (b5 * b3) & (b5 + b6) * b2 = (b5 * b2) + (b6 * b2) & (b5 * b6) * b2 = b5 * (b6 * b2) )
proof end;

definition
let c1 be non empty ComplexAlgebraStr ;
attr a1 is ComplexAlgebra-like means :Def9: :: CFUNCDOM:def 9
for b1, b2, b3 being Element of a1
for b4, b5 being Complex holds
( b1 * (1. a1) = b1 & b1 * (b2 + b3) = (b1 * b2) + (b1 * b3) & b4 * (b1 * b2) = (b4 * b1) * b2 & b4 * (b1 + b2) = (b4 * b1) + (b4 * b2) & (b4 + b5) * b1 = (b4 * b1) + (b5 * b1) & (b4 * b5) * b1 = b4 * (b5 * b1) );
end;

:: deftheorem Def9 defines ComplexAlgebra-like CFUNCDOM:def 9 :
for b1 being non empty ComplexAlgebraStr holds
( b1 is ComplexAlgebra-like iff for b2, b3, b4 being Element of b1
for b5, b6 being Complex holds
( b2 * (1. b1) = b2 & b2 * (b3 + b4) = (b2 * b3) + (b2 * b4) & b5 * (b2 * b3) = (b5 * b2) * b3 & b5 * (b2 + b3) = (b5 * b2) + (b5 * b3) & (b5 + b6) * b2 = (b5 * b2) + (b6 * b2) & (b5 * b6) * b2 = b5 * (b6 * b2) ) );

registration
cluster non empty Abelian add-associative right_zeroed right_complementable associative commutative strict ComplexAlgebra-like ComplexAlgebraStr ;
existence
ex b1 being non empty ComplexAlgebraStr st
( b1 is strict & b1 is Abelian & b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is commutative & b1 is associative & b1 is ComplexAlgebra-like )
proof end;
end;

definition
mode ComplexAlgebra is non empty Abelian add-associative right_zeroed right_complementable associative commutative ComplexAlgebra-like ComplexAlgebraStr ;
end;

theorem Th30: :: CFUNCDOM:30
for b1 being non empty set holds CAlgebra b1 is ComplexAlgebra
proof end;

theorem Th31: :: CFUNCDOM:31
for b1 being non empty set holds 1. (CRing b1) = ComplexFuncUnit b1 by Lemma31;

theorem Th32: :: CFUNCDOM:32
for b1 being non empty set holds 1. (CAlgebra b1) = ComplexFuncUnit b1 by Lemma35;