:: HAHNBAN1 semantic presentation

Lemma1: for b1 being non empty Abelian add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2, b3 being Element of b1 holds b2 * (- b3) = - (b2 * b3)
proof end;

theorem Th1: :: HAHNBAN1:1
for b1 being complex number holds abs |.b1.| = |.b1.| ;

theorem Th2: :: HAHNBAN1:2
for b1, b2, b3, b4 being real number holds (b1 + (b2 * <i> )) * (b3 + (b4 * <i> )) = ((b1 * b3) - (b2 * b4)) + (((b1 * b4) + (b3 * b2)) * <i> ) ;

theorem Th3: :: HAHNBAN1:3
for b1 being Real holds [*b1,0*] * <i> = [*0,b1*]
proof end;

theorem Th4: :: HAHNBAN1:4
for b1 being Real holds |.[*b1,0*].| = abs b1
proof end;

theorem Th5: :: HAHNBAN1:5
for b1 being Element of COMPLEX holds |.b1.| + (0 * <i> ) = ((b1 *' ) / (|.b1.| + (0 * <i> ))) * b1
proof end;

definition
let c1, c2 be Real;
func [**c1,c2**] -> Element of F_Complex equals :: HAHNBAN1:def 1
a1 + (a2 * <i> );
coherence
c1 + (c2 * <i> ) is Element of F_Complex
proof end;
end;

:: deftheorem Def1 defines [** HAHNBAN1:def 1 :
for b1, b2 being Real holds [**b1,b2**] = b1 + (b2 * <i> );

definition
func i_FC -> Element of F_Complex equals :: HAHNBAN1:def 2
<i> ;
coherence
<i> is Element of F_Complex
proof end;
end;

:: deftheorem Def2 defines i_FC HAHNBAN1:def 2 :
i_FC = <i> ;

theorem Th6: :: HAHNBAN1:6
( i_FC = [*0,1*] & i_FC = [**0,1**] ) by COMPLEX1:def 8;

theorem Th7: :: HAHNBAN1:7
|.i_FC .| = 1 by COMPLEX1:135;

theorem Th8: :: HAHNBAN1:8
i_FC * i_FC = - (1. F_Complex )
proof end;

theorem Th9: :: HAHNBAN1:9
(- (1. F_Complex )) * (- (1. F_Complex )) = 1. F_Complex
proof end;

theorem Th10: :: HAHNBAN1:10
for b1, b2, b3, b4 being Real holds [**b1,b2**] + [**b3,b4**] = [**(b1 + b3),(b2 + b4)**]
proof end;

theorem Th11: :: HAHNBAN1:11
for b1, b2, b3, b4 being Real holds [**b1,b2**] * [**b3,b4**] = [**((b1 * b3) - (b2 * b4)),((b1 * b4) + (b3 * b2))**]
proof end;

theorem Th12: :: HAHNBAN1:12
for b1 being complex number holds abs |.b1.| = |.b1.| ;

theorem Th13: :: HAHNBAN1:13
for b1 being Real holds |.[**b1,0**].| = abs b1 ;

theorem Th14: :: HAHNBAN1:14
for b1 being Real holds [**b1,0**] * i_FC = [**0,b1**] by COMPLFLD:6;

theorem Th15: :: HAHNBAN1:15
for b1, b2 being Real holds
( Re [**b1,b2**] = b1 & Im [**b1,b2**] = b2 ) by COMPLEX1:28;

theorem Th16: :: HAHNBAN1:16
for b1, b2 being Element of F_Complex holds
( Re (b1 + b2) = (Re b1) + (Re b2) & Im (b1 + b2) = (Im b1) + (Im b2) )
proof end;

theorem Th17: :: HAHNBAN1:17
for b1, b2 being Element of F_Complex holds
( Re (b1 * b2) = ((Re b1) * (Re b2)) - ((Im b1) * (Im b2)) & Im (b1 * b2) = ((Re b1) * (Im b2)) + ((Re b2) * (Im b1)) )
proof end;

definition
let c1 be 1-sorted ;
let c2 be VectSpStr of c1;
mode Functional of a2 is Function of the carrier of a2,the carrier of a1;
end;

definition
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be Functional of c2;
canceled;
canceled;
canceled;
func c3 + c4 -> Functional of a2 means :Def6: :: HAHNBAN1:def 6
for b1 being Element of a2 holds a5 . b1 = (a3 . b1) + (a4 . b1);
existence
ex b1 being Functional of c2 st
for b2 being Element of c2 holds b1 . b2 = (c3 . b2) + (c4 . b2)
proof end;
uniqueness
for b1, b2 being Functional of c2 st ( for b3 being Element of c2 holds b1 . b3 = (c3 . b3) + (c4 . b3) ) & ( for b3 being Element of c2 holds b2 . b3 = (c3 . b3) + (c4 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 HAHNBAN1:def 3 :
canceled;

:: deftheorem Def4 HAHNBAN1:def 4 :
canceled;

:: deftheorem Def5 HAHNBAN1:def 5 :
canceled;

:: deftheorem Def6 defines + HAHNBAN1:def 6 :
for b1 being non empty LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4, b5 being Functional of b2 holds
( b5 = b3 + b4 iff for b6 being Element of b2 holds b5 . b6 = (b3 . b6) + (b4 . b6) );

definition
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
func - c3 -> Functional of a2 means :Def7: :: HAHNBAN1:def 7
for b1 being Element of a2 holds a4 . b1 = - (a3 . b1);
existence
ex b1 being Functional of c2 st
for b2 being Element of c2 holds b1 . b2 = - (c3 . b2)
proof end;
uniqueness
for b1, b2 being Functional of c2 st ( for b3 being Element of c2 holds b1 . b3 = - (c3 . b3) ) & ( for b3 being Element of c2 holds b2 . b3 = - (c3 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines - HAHNBAN1:def 7 :
for b1 being non empty LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Functional of b2 holds
( b4 = - b3 iff for b5 being Element of b2 holds b4 . b5 = - (b3 . b5) );

definition
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be Functional of c2;
func c3 - c4 -> Functional of a2 equals :: HAHNBAN1:def 8
a3 + (- a4);
coherence
c3 + (- c4) is Functional of c2
;
end;

:: deftheorem Def8 defines - HAHNBAN1:def 8 :
for b1 being non empty LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Functional of b2 holds b3 - b4 = b3 + (- b4);

definition
let c1 be non empty HGrStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Element of c1;
let c4 be Functional of c2;
func c3 * c4 -> Functional of a2 means :Def9: :: HAHNBAN1:def 9
for b1 being Element of a2 holds a5 . b1 = a3 * (a4 . b1);
existence
ex b1 being Functional of c2 st
for b2 being Element of c2 holds b1 . b2 = c3 * (c4 . b2)
proof end;
uniqueness
for b1, b2 being Functional of c2 st ( for b3 being Element of c2 holds b1 . b3 = c3 * (c4 . b3) ) & ( for b3 being Element of c2 holds b2 . b3 = c3 * (c4 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def9 defines * HAHNBAN1:def 9 :
for b1 being non empty HGrStr
for b2 being non empty VectSpStr of b1
for b3 being Element of b1
for b4, b5 being Functional of b2 holds
( b5 = b3 * b4 iff for b6 being Element of b2 holds b5 . b6 = b3 * (b4 . b6) );

definition
let c1 be non empty ZeroStr ;
let c2 be VectSpStr of c1;
func 0Functional c2 -> Functional of a2 equals :: HAHNBAN1:def 10
([#] a2) --> (0. a1);
coherence
([#] c2) --> (0. c1) is Functional of c2
proof end;
end;

:: deftheorem Def10 defines 0Functional HAHNBAN1:def 10 :
for b1 being non empty ZeroStr
for b2 being VectSpStr of b1 holds 0Functional b2 = ([#] b2) --> (0. b1);

definition
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
attr a3 is additive means :Def11: :: HAHNBAN1:def 11
for b1, b2 being Vector of a2 holds a3 . (b1 + b2) = (a3 . b1) + (a3 . b2);
end;

:: deftheorem Def11 defines additive HAHNBAN1:def 11 :
for b1 being non empty LoopStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds
( b3 is additive iff for b4, b5 being Vector of b2 holds b3 . (b4 + b5) = (b3 . b4) + (b3 . b5) );

definition
let c1 be non empty HGrStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
attr a3 is homogeneous means :Def12: :: HAHNBAN1:def 12
for b1 being Vector of a2
for b2 being Scalar of holds a3 . (b2 * b1) = b2 * (a3 . b1);
end;

:: deftheorem Def12 defines homogeneous HAHNBAN1:def 12 :
for b1 being non empty HGrStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds
( b3 is homogeneous iff for b4 being Vector of b2
for b5 being Scalar of holds b3 . (b5 * b4) = b5 * (b3 . b4) );

definition
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
attr a3 is 0-preserving means :: HAHNBAN1:def 13
a3 . (0. a2) = 0. a1;
end;

:: deftheorem Def13 defines 0-preserving HAHNBAN1:def 13 :
for b1 being non empty ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds
( b3 is 0-preserving iff b3 . (0. b2) = 0. b1 );

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be VectSp of c1;
cluster homogeneous -> 0-preserving Relation of the carrier of a2,the carrier of a1;
coherence
for b1 being Functional of c2 st b1 is homogeneous holds
b1 is 0-preserving
proof end;
end;

registration
let c1 be non empty right_zeroed LoopStr ;
let c2 be non empty VectSpStr of c1;
cluster 0Functional a2 -> additive ;
coherence
0Functional c2 is additive
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
cluster 0Functional a2 -> additive homogeneous ;
coherence
0Functional c2 is homogeneous
proof end;
end;

registration
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
cluster 0Functional a2 -> 0-preserving ;
coherence
0Functional c2 is 0-preserving
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
cluster additive homogeneous 0-preserving Relation of the carrier of a2,the carrier of a1;
existence
ex b1 being Functional of c2 st
( b1 is additive & b1 is homogeneous & b1 is 0-preserving )
proof end;
end;

theorem Th18: :: HAHNBAN1:18
canceled;

theorem Th19: :: HAHNBAN1:19
canceled;

theorem Th20: :: HAHNBAN1:20
for b1 being non empty Abelian LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Functional of b2 holds b3 + b4 = b4 + b3
proof end;

theorem Th21: :: HAHNBAN1:21
for b1 being non empty add-associative LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4, b5 being Functional of b2 holds (b3 + b4) + b5 = b3 + (b4 + b5)
proof end;

theorem Th22: :: HAHNBAN1:22
for b1 being non empty ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Element of b2 holds (0Functional b2) . b3 = 0. b1
proof end;

theorem Th23: :: HAHNBAN1:23
for b1 being non empty right_zeroed LoopStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds b3 + (0Functional b2) = b3
proof end;

theorem Th24: :: HAHNBAN1:24
for b1 being non empty add-associative right_zeroed right_complementable LoopStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds b3 - b3 = 0Functional b2
proof end;

theorem Th25: :: HAHNBAN1:25
for b1 being non empty right-distributive doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being Element of b1
for b4, b5 being Functional of b2 holds b3 * (b4 + b5) = (b3 * b4) + (b3 * b5)
proof end;

theorem Th26: :: HAHNBAN1:26
for b1 being non empty left-distributive doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Element of b1
for b5 being Functional of b2 holds (b3 + b4) * b5 = (b3 * b5) + (b4 * b5)
proof end;

theorem Th27: :: HAHNBAN1:27
for b1 being non empty associative HGrStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Element of b1
for b5 being Functional of b2 holds (b3 * b4) * b5 = b3 * (b4 * b5)
proof end;

theorem Th28: :: HAHNBAN1:28
for b1 being non empty left_unital doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds (1. b1) * b3 = b3
proof end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be additive Functional of c2;
cluster a3 + a4 -> additive ;
coherence
c3 + c4 is additive
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be additive Functional of c2;
cluster - a3 -> additive ;
coherence
- c3 is additive
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Element of c1;
let c4 be additive Functional of c2;
cluster a3 * a4 -> additive ;
coherence
c3 * c4 is additive
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be homogeneous Functional of c2;
cluster a3 + a4 -> homogeneous ;
coherence
c3 + c4 is homogeneous
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be homogeneous Functional of c2;
cluster - a3 -> homogeneous ;
coherence
- c3 is homogeneous
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Element of c1;
let c4 be homogeneous Functional of c2;
cluster a3 * a4 -> homogeneous ;
coherence
c3 * c4 is homogeneous
proof end;
end;

definition
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
mode linear-Functional of a2 is additive homogeneous Functional of a2;
end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
func c2 *' -> non empty strict VectSpStr of a1 means :Def14: :: HAHNBAN1:def 14
( ( for b1 being set holds
( b1 in the carrier of a3 iff b1 is linear-Functional of a2 ) ) & ( for b1, b2 being linear-Functional of a2 holds the add of a3 . b1,b2 = b1 + b2 ) & the Zero of a3 = 0Functional a2 & ( for b1 being linear-Functional of a2
for b2 being Element of a1 holds the lmult of a3 . b2,b1 = b2 * b1 ) );
existence
ex b1 being non empty strict VectSpStr of c1 st
( ( for b2 being set holds
( b2 in the carrier of b1 iff b2 is linear-Functional of c2 ) ) & ( for b2, b3 being linear-Functional of c2 holds the add of b1 . b2,b3 = b2 + b3 ) & the Zero of b1 = 0Functional c2 & ( for b2 being linear-Functional of c2
for b3 being Element of c1 holds the lmult of b1 . b3,b2 = b3 * b2 ) )
proof end;
uniqueness
for b1, b2 being non empty strict VectSpStr of c1 st ( for b3 being set holds
( b3 in the carrier of b1 iff b3 is linear-Functional of c2 ) ) & ( for b3, b4 being linear-Functional of c2 holds the add of b1 . b3,b4 = b3 + b4 ) & the Zero of b1 = 0Functional c2 & ( for b3 being linear-Functional of c2
for b4 being Element of c1 holds the lmult of b1 . b4,b3 = b4 * b3 ) & ( for b3 being set holds
( b3 in the carrier of b2 iff b3 is linear-Functional of c2 ) ) & ( for b3, b4 being linear-Functional of c2 holds the add of b2 . b3,b4 = b3 + b4 ) & the Zero of b2 = 0Functional c2 & ( for b3 being linear-Functional of c2
for b4 being Element of c1 holds the lmult of b2 . b4,b3 = b4 * b3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def14 defines *' HAHNBAN1:def 14 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being non empty strict VectSpStr of b1 holds
( b3 = b2 *' iff ( ( for b4 being set holds
( b4 in the carrier of b3 iff b4 is linear-Functional of b2 ) ) & ( for b4, b5 being linear-Functional of b2 holds the add of b3 . b4,b5 = b4 + b5 ) & the Zero of b3 = 0Functional b2 & ( for b4 being linear-Functional of b2
for b5 being Element of b1 holds the lmult of b3 . b5,b4 = b5 * b4 ) ) );

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
cluster a2 *' -> non empty Abelian strict ;
coherence
c2 *' is Abelian
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
cluster a2 *' -> non empty Abelian add-associative strict ;
coherence
c2 *' is add-associative
proof end;
cluster a2 *' -> non empty Abelian right_zeroed strict ;
coherence
c2 *' is right_zeroed
proof end;
cluster a2 *' -> non empty Abelian right_complementable strict ;
coherence
c2 *' is right_complementable
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative commutative distributive left_unital doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
cluster a2 *' -> non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like ;
coherence
c2 *' is VectSp-like
proof end;
end;

definition
let c1 be 1-sorted ;
let c2 be VectSpStr of c1;
mode RFunctional of a2 is Function of the carrier of a2, REAL ;
end;

definition
let c1 be 1-sorted ;
let c2 be non empty VectSpStr of c1;
let c3 be RFunctional of c2;
canceled;
attr a3 is subadditive means :Def16: :: HAHNBAN1:def 16
for b1, b2 being Vector of a2 holds a3 . (b1 + b2) <= (a3 . b1) + (a3 . b2);
end;

:: deftheorem Def15 HAHNBAN1:def 15 :
canceled;

:: deftheorem Def16 defines subadditive HAHNBAN1:def 16 :
for b1 being 1-sorted
for b2 being non empty VectSpStr of b1
for b3 being RFunctional of b2 holds
( b3 is subadditive iff for b4, b5 being Vector of b2 holds b3 . (b4 + b5) <= (b3 . b4) + (b3 . b5) );

definition
let c1 be 1-sorted ;
let c2 be non empty VectSpStr of c1;
let c3 be RFunctional of c2;
attr a3 is additive means :Def17: :: HAHNBAN1:def 17
for b1, b2 being Vector of a2 holds a3 . (b1 + b2) = (a3 . b1) + (a3 . b2);
end;

:: deftheorem Def17 defines additive HAHNBAN1:def 17 :
for b1 being 1-sorted
for b2 being non empty VectSpStr of b1
for b3 being RFunctional of b2 holds
( b3 is additive iff for b4, b5 being Vector of b2 holds b3 . (b4 + b5) = (b3 . b4) + (b3 . b5) );

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be RFunctional of c1;
attr a2 is Real_homogeneous means :Def18: :: HAHNBAN1:def 18
for b1 being Vector of a1
for b2 being Real holds a2 . ([**b2,0**] * b1) = b2 * (a2 . b1);
end;

:: deftheorem Def18 defines Real_homogeneous HAHNBAN1:def 18 :
for b1 being non empty VectSpStr of F_Complex
for b2 being RFunctional of b1 holds
( b2 is Real_homogeneous iff for b3 being Vector of b1
for b4 being Real holds b2 . ([**b4,0**] * b3) = b4 * (b2 . b3) );

theorem Th29: :: HAHNBAN1:29
for b1 being non empty VectSp-like VectSpStr of F_Complex
for b2 being RFunctional of b1 st b2 is Real_homogeneous holds
for b3 being Vector of b1
for b4 being Real holds b2 . ([**0,b4**] * b3) = b4 * (b2 . (i_FC * b3))
proof end;

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be RFunctional of c1;
attr a2 is homogeneous means :Def19: :: HAHNBAN1:def 19
for b1 being Vector of a1
for b2 being Scalar of holds a2 . (b2 * b1) = |.b2.| * (a2 . b1);
end;

:: deftheorem Def19 defines homogeneous HAHNBAN1:def 19 :
for b1 being non empty VectSpStr of F_Complex
for b2 being RFunctional of b1 holds
( b2 is homogeneous iff for b3 being Vector of b1
for b4 being Scalar of holds b2 . (b4 * b3) = |.b4.| * (b2 . b3) );

definition
let c1 be 1-sorted ;
let c2 be VectSpStr of c1;
let c3 be RFunctional of c2;
attr a3 is 0-preserving means :: HAHNBAN1:def 20
a3 . (0. a2) = 0;
end;

:: deftheorem Def20 defines 0-preserving HAHNBAN1:def 20 :
for b1 being 1-sorted
for b2 being VectSpStr of b1
for b3 being RFunctional of b2 holds
( b3 is 0-preserving iff b3 . (0. b2) = 0 );

registration
let c1 be 1-sorted ;
let c2 be non empty VectSpStr of c1;
cluster additive -> subadditive Relation of the carrier of a2, REAL ;
coherence
for b1 being RFunctional of c2 st b1 is additive holds
b1 is subadditive
proof end;
end;

Lemma32: 0c = [*0,0*]
by ARYTM_0:def 7, COMPLEX1:def 6;

Lemma33: 1r = [*1,0*]
by ARYTM_0:def 7, COMPLEX1:def 7;

registration
let c1 be VectSp of F_Complex ;
cluster Real_homogeneous -> 0-preserving Relation of the carrier of a1, REAL ;
coherence
for b1 being RFunctional of c1 st b1 is Real_homogeneous holds
b1 is 0-preserving
proof end;
end;

definition
let c1 be 1-sorted ;
let c2 be VectSpStr of c1;
func 0RFunctional c2 -> RFunctional of a2 equals :: HAHNBAN1:def 21
([#] a2) --> 0;
coherence
([#] c2) --> 0 is RFunctional of c2
proof end;
end;

:: deftheorem Def21 defines 0RFunctional HAHNBAN1:def 21 :
for b1 being 1-sorted
for b2 being VectSpStr of b1 holds 0RFunctional b2 = ([#] b2) --> 0;

registration
let c1 be 1-sorted ;
let c2 be non empty VectSpStr of c1;
cluster 0RFunctional a2 -> subadditive additive ;
coherence
0RFunctional c2 is additive
proof end;
cluster 0RFunctional a2 -> 0-preserving ;
coherence
0RFunctional c2 is 0-preserving
proof end;
end;

registration
let c1 be non empty VectSpStr of F_Complex ;
cluster 0RFunctional a1 -> subadditive additive Real_homogeneous 0-preserving ;
coherence
0RFunctional c1 is Real_homogeneous
proof end;
cluster 0RFunctional a1 -> subadditive additive homogeneous 0-preserving ;
coherence
0RFunctional c1 is homogeneous
proof end;
end;

registration
let c1 be 1-sorted ;
let c2 be non empty VectSpStr of c1;
cluster subadditive additive 0-preserving Relation of the carrier of a2, REAL ;
existence
ex b1 being RFunctional of c2 st
( b1 is additive & b1 is 0-preserving )
proof end;
end;

registration
let c1 be non empty VectSpStr of F_Complex ;
cluster subadditive additive Real_homogeneous homogeneous Relation of the carrier of a1, REAL ;
existence
ex b1 being RFunctional of c1 st
( b1 is additive & b1 is Real_homogeneous & b1 is homogeneous )
proof end;
end;

definition
let c1 be non empty VectSpStr of F_Complex ;
mode Semi-Norm of a1 is subadditive homogeneous RFunctional of a1;
end;

definition
let c1 be non empty VectSpStr of F_Complex ;
func RealVS c1 -> strict RLSStruct means :Def22: :: HAHNBAN1:def 22
( LoopStr(# the carrier of a2,the add of a2,the Zero of a2 #) = LoopStr(# the carrier of a1,the add of a1,the Zero of a1 #) & ( for b1 being Real
for b2 being Vector of a1 holds the Mult of a2 . b1,b2 = [**b1,0**] * b2 ) );
existence
ex b1 being strict RLSStruct st
( LoopStr(# the carrier of b1,the add of b1,the Zero of b1 #) = LoopStr(# the carrier of c1,the add of c1,the Zero of c1 #) & ( for b2 being Real
for b3 being Vector of c1 holds the Mult of b1 . b2,b3 = [**b2,0**] * b3 ) )
proof end;
uniqueness
for b1, b2 being strict RLSStruct st LoopStr(# the carrier of b1,the add of b1,the Zero of b1 #) = LoopStr(# the carrier of c1,the add of c1,the Zero of c1 #) & ( for b3 being Real
for b4 being Vector of c1 holds the Mult of b1 . b3,b4 = [**b3,0**] * b4 ) & LoopStr(# the carrier of b2,the add of b2,the Zero of b2 #) = LoopStr(# the carrier of c1,the add of c1,the Zero of c1 #) & ( for b3 being Real
for b4 being Vector of c1 holds the Mult of b2 . b3,b4 = [**b3,0**] * b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def22 defines RealVS HAHNBAN1:def 22 :
for b1 being non empty VectSpStr of F_Complex
for b2 being strict RLSStruct holds
( b2 = RealVS b1 iff ( LoopStr(# the carrier of b2,the add of b2,the Zero of b2 #) = LoopStr(# the carrier of b1,the add of b1,the Zero of b1 #) & ( for b3 being Real
for b4 being Vector of b1 holds the Mult of b2 . b3,b4 = [**b3,0**] * b4 ) ) );

registration
let c1 be non empty VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict ;
coherence
not RealVS c1 is empty
proof end;
end;

registration
let c1 be non empty Abelian VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict Abelian ;
coherence
RealVS c1 is Abelian
proof end;
end;

registration
let c1 be non empty add-associative VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict add-associative ;
coherence
RealVS c1 is add-associative
proof end;
end;

registration
let c1 be non empty right_zeroed VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict right_zeroed ;
coherence
RealVS c1 is right_zeroed
proof end;
end;

registration
let c1 be non empty right_complementable VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict right_complementable ;
coherence
RealVS c1 is right_complementable
proof end;
end;

registration
let c1 be non empty VectSp-like VectSpStr of F_Complex ;
cluster RealVS a1 -> non empty strict RealLinearSpace-like ;
coherence
RealVS c1 is RealLinearSpace-like
proof end;
end;

theorem Th30: :: HAHNBAN1:30
for b1 being non empty VectSp of F_Complex
for b2 being Subspace of b1 holds RealVS b2 is Subspace of RealVS b1
proof end;

theorem Th31: :: HAHNBAN1:31
for b1 being non empty VectSpStr of F_Complex
for b2 being RFunctional of b1 holds b2 is Functional of (RealVS b1)
proof end;

theorem Th32: :: HAHNBAN1:32
for b1 being non empty VectSp of F_Complex
for b2 being Semi-Norm of b1 holds b2 is Banach-Functional of (RealVS b1)
proof end;

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be Functional of c1;
func projRe c2 -> Functional of (RealVS a1) means :Def23: :: HAHNBAN1:def 23
for b1 being Element of a1 holds a3 . b1 = Re (a2 . b1);
existence
ex b1 being Functional of (RealVS c1) st
for b2 being Element of c1 holds b1 . b2 = Re (c2 . b2)
proof end;
uniqueness
for b1, b2 being Functional of (RealVS c1) st ( for b3 being Element of c1 holds b1 . b3 = Re (c2 . b3) ) & ( for b3 being Element of c1 holds b2 . b3 = Re (c2 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def23 defines projRe HAHNBAN1:def 23 :
for b1 being non empty VectSpStr of F_Complex
for b2 being Functional of b1
for b3 being Functional of (RealVS b1) holds
( b3 = projRe b2 iff for b4 being Element of b1 holds b3 . b4 = Re (b2 . b4) );

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be Functional of c1;
func projIm c2 -> Functional of (RealVS a1) means :Def24: :: HAHNBAN1:def 24
for b1 being Element of a1 holds a3 . b1 = Im (a2 . b1);
existence
ex b1 being Functional of (RealVS c1) st
for b2 being Element of c1 holds b1 . b2 = Im (c2 . b2)
proof end;
uniqueness
for b1, b2 being Functional of (RealVS c1) st ( for b3 being Element of c1 holds b1 . b3 = Im (c2 . b3) ) & ( for b3 being Element of c1 holds b2 . b3 = Im (c2 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def24 defines projIm HAHNBAN1:def 24 :
for b1 being non empty VectSpStr of F_Complex
for b2 being Functional of b1
for b3 being Functional of (RealVS b1) holds
( b3 = projIm b2 iff for b4 being Element of b1 holds b3 . b4 = Im (b2 . b4) );

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be Functional of (RealVS c1);
func RtoC c2 -> RFunctional of a1 equals :: HAHNBAN1:def 25
a2;
coherence
c2 is RFunctional of c1
proof end;
end;

:: deftheorem Def25 defines RtoC HAHNBAN1:def 25 :
for b1 being non empty VectSpStr of F_Complex
for b2 being Functional of (RealVS b1) holds RtoC b2 = b2;

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be RFunctional of c1;
func CtoR c2 -> Functional of (RealVS a1) equals :: HAHNBAN1:def 26
a2;
coherence
c2 is Functional of (RealVS c1)
proof end;
end;

:: deftheorem Def26 defines CtoR HAHNBAN1:def 26 :
for b1 being non empty VectSpStr of F_Complex
for b2 being RFunctional of b1 holds CtoR b2 = b2;

registration
let c1 be non empty VectSp of F_Complex ;
let c2 be additive Functional of (RealVS c1);
cluster RtoC a2 -> subadditive additive ;
coherence
RtoC c2 is additive
proof end;
end;

registration
let c1 be non empty VectSp of F_Complex ;
let c2 be additive RFunctional of c1;
cluster CtoR a2 -> additive ;
coherence
CtoR c2 is additive
proof end;
end;

registration
let c1 be non empty VectSp of F_Complex ;
let c2 be homogeneous Functional of (RealVS c1);
cluster RtoC a2 -> Real_homogeneous 0-preserving ;
coherence
RtoC c2 is Real_homogeneous
proof end;
end;

registration
let c1 be non empty VectSp of F_Complex ;
let c2 be Real_homogeneous RFunctional of c1;
cluster CtoR a2 -> homogeneous ;
coherence
CtoR c2 is homogeneous
proof end;
end;

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be RFunctional of c1;
func i-shift c2 -> RFunctional of a1 means :Def27: :: HAHNBAN1:def 27
for b1 being Element of a1 holds a3 . b1 = a2 . (i_FC * b1);
existence
ex b1 being RFunctional of c1 st
for b2 being Element of c1 holds b1 . b2 = c2 . (i_FC * b2)
proof end;
uniqueness
for b1, b2 being RFunctional of c1 st ( for b3 being Element of c1 holds b1 . b3 = c2 . (i_FC * b3) ) & ( for b3 being Element of c1 holds b2 . b3 = c2 . (i_FC * b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def27 defines i-shift HAHNBAN1:def 27 :
for b1 being non empty VectSpStr of F_Complex
for b2, b3 being RFunctional of b1 holds
( b3 = i-shift b2 iff for b4 being Element of b1 holds b3 . b4 = b2 . (i_FC * b4) );

definition
let c1 be non empty VectSpStr of F_Complex ;
let c2 be Functional of (RealVS c1);
func prodReIm c2 -> Functional of a1 means :Def28: :: HAHNBAN1:def 28
for b1 being Element of a1 holds a3 . b1 = [**((RtoC a2) . b1),(- ((i-shift (RtoC a2)) . b1))**];
existence
ex b1 being Functional of c1 st
for b2 being Element of c1 holds b1 . b2 = [**((RtoC c2) . b2),(- ((i-shift (RtoC c2)) . b2))**]
proof end;
uniqueness
for b1, b2 being Functional of c1 st ( for b3 being Element of c1 holds b1 . b3 = [**((RtoC c2) . b3),(- ((i-shift (RtoC c2)) . b3))**] ) & ( for b3 being Element of c1 holds b2 . b3 = [**((RtoC c2) . b3),(- ((i-shift (RtoC c2)) . b3))**] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def28 defines prodReIm HAHNBAN1:def 28 :
for b1 being non empty VectSpStr of F_Complex
for b2 being Functional of (RealVS b1)
for b3 being Functional of b1 holds
( b3 = prodReIm b2 iff for b4 being Element of b1 holds b3 . b4 = [**((RtoC b2) . b4),(- ((i-shift (RtoC b2)) . b4))**] );

theorem Th33: :: HAHNBAN1:33
for b1 being non empty VectSp of F_Complex
for b2 being linear-Functional of b1 holds projRe b2 is linear-Functional of (RealVS b1)
proof end;

theorem Th34: :: HAHNBAN1:34
for b1 being non empty VectSp of F_Complex
for b2 being linear-Functional of b1 holds projIm b2 is linear-Functional of (RealVS b1)
proof end;

theorem Th35: :: HAHNBAN1:35
for b1 being non empty VectSp of F_Complex
for b2 being linear-Functional of (RealVS b1) holds prodReIm b2 is linear-Functional of b1
proof end;

theorem Th36: :: HAHNBAN1:36
for b1 being non empty VectSp of F_Complex
for b2 being Semi-Norm of b1
for b3 being Subspace of b1
for b4 being linear-Functional of b3 st ( for b5 being Vector of b3
for b6 being Vector of b1 st b6 = b5 holds
|.(b4 . b5).| <= b2 . b6 ) holds
ex b5 being linear-Functional of b1 st
( b5 | the carrier of b3 = b4 & ( for b6 being Vector of b1 holds |.(b5 . b6).| <= b2 . b6 ) )
proof end;