:: BILINEAR semantic presentation

definition
let c1 be 1-sorted ;
let c2, c3 be VectSpStr of c1;
mode Form of a2,a3 is Function of [:the carrier of a2,the carrier of a3:],the carrier of a1;
end;

definition
let c1 be non empty ZeroStr ;
let c2, c3 be VectSpStr of c1;
canceled;
func NulForm c2,c3 -> Form of a2,a3 equals :: BILINEAR:def 2
[:the carrier of a2,the carrier of a3:] --> (0. a1);
coherence
[:the carrier of c2,the carrier of c3:] --> (0. c1) is Form of c2,c3
;
end;

:: deftheorem Def1 BILINEAR:def 1 :
canceled;

:: deftheorem Def2 defines NulForm BILINEAR:def 2 :
for b1 being non empty ZeroStr
for b2, b3 being VectSpStr of b1 holds NulForm b2,b3 = [:the carrier of b2,the carrier of b3:] --> (0. b1);

definition
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
func c4 + c5 -> Form of a2,a3 means :Def3: :: BILINEAR:def 3
for b1 being Vector of a2
for b2 being Vector of a3 holds a6 . [b1,b2] = (a4 . [b1,b2]) + (a5 . [b1,b2]);
existence
ex b1 being Form of c2,c3 st
for b2 being Vector of c2
for b3 being Vector of c3 holds b1 . [b2,b3] = (c4 . [b2,b3]) + (c5 . [b2,b3])
proof end;
uniqueness
for b1, b2 being Form of c2,c3 st ( for b3 being Vector of c2
for b4 being Vector of c3 holds b1 . [b3,b4] = (c4 . [b3,b4]) + (c5 . [b3,b4]) ) & ( for b3 being Vector of c2
for b4 being Vector of c3 holds b2 . [b3,b4] = (c4 . [b3,b4]) + (c5 . [b3,b4]) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines + BILINEAR:def 3 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5, b6 being Form of b2,b3 holds
( b6 = b4 + b5 iff for b7 being Vector of b2
for b8 being Vector of b3 holds b6 . [b7,b8] = (b4 . [b7,b8]) + (b5 . [b7,b8]) );

definition
let c1 be non empty HGrStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
let c5 be Element of c1;
func c5 * c4 -> Form of a2,a3 means :Def4: :: BILINEAR:def 4
for b1 being Vector of a2
for b2 being Vector of a3 holds a6 . [b1,b2] = a5 * (a4 . [b1,b2]);
existence
ex b1 being Form of c2,c3 st
for b2 being Vector of c2
for b3 being Vector of c3 holds b1 . [b2,b3] = c5 * (c4 . [b2,b3])
proof end;
uniqueness
for b1, b2 being Form of c2,c3 st ( for b3 being Vector of c2
for b4 being Vector of c3 holds b1 . [b3,b4] = c5 * (c4 . [b3,b4]) ) & ( for b3 being Vector of c2
for b4 being Vector of c3 holds b2 . [b3,b4] = c5 * (c4 . [b3,b4]) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines * BILINEAR:def 4 :
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Element of b1
for b6 being Form of b2,b3 holds
( b6 = b5 * b4 iff for b7 being Vector of b2
for b8 being Vector of b3 holds b6 . [b7,b8] = b5 * (b4 . [b7,b8]) );

definition
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
func - c4 -> Form of a2,a3 means :Def5: :: BILINEAR:def 5
for b1 being Vector of a2
for b2 being Vector of a3 holds a5 . [b1,b2] = - (a4 . [b1,b2]);
existence
ex b1 being Form of c2,c3 st
for b2 being Vector of c2
for b3 being Vector of c3 holds b1 . [b2,b3] = - (c4 . [b2,b3])
proof end;
uniqueness
for b1, b2 being Form of c2,c3 st ( for b3 being Vector of c2
for b4 being Vector of c3 holds b1 . [b3,b4] = - (c4 . [b3,b4]) ) & ( for b3 being Vector of c2
for b4 being Vector of c3 holds b2 . [b3,b4] = - (c4 . [b3,b4]) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines - BILINEAR:def 5 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3 holds
( b5 = - b4 iff for b6 being Vector of b2
for b7 being Vector of b3 holds b5 . [b6,b7] = - (b4 . [b6,b7]) );

definition
let c1 be non empty add-associative right_zeroed right_complementable left-distributive left_unital doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
redefine func - as - c4 -> Form of a2,a3 equals :: BILINEAR:def 6
(- (1. a1)) * a4;
coherence
- c4 is Form of c2,c3
;
compatibility
for b1 being Form of c2,c3 holds
( b1 = - c4 iff b1 = (- (1. c1)) * c4 )
proof end;
end;

:: deftheorem Def6 defines - BILINEAR:def 6 :
for b1 being non empty add-associative right_zeroed right_complementable left-distributive left_unital doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds - b4 = (- (1. b1)) * b4;

definition
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
func c4 - c5 -> Form of a2,a3 equals :: BILINEAR:def 7
a4 + (- a5);
correctness
coherence
c4 + (- c5) is Form of c2,c3
;
;
end;

:: deftheorem Def7 defines - BILINEAR:def 7 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3 holds b4 - b5 = b4 + (- b5);

definition
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
redefine func - as c4 - c5 -> Form of a2,a3 means :Def8: :: BILINEAR:def 8
for b1 being Vector of a2
for b2 being Vector of a3 holds a6 . [b1,b2] = (a4 . [b1,b2]) - (a5 . [b1,b2]);
coherence
c4 - c5 is Form of c2,c3
;
compatibility
for b1 being Form of c2,c3 holds
( b1 = c4 - c5 iff for b2 being Vector of c2
for b3 being Vector of c3 holds b1 . [b2,b3] = (c4 . [b2,b3]) - (c5 . [b2,b3]) )
proof end;
end;

:: deftheorem Def8 defines - BILINEAR:def 8 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5, b6 being Form of b2,b3 holds
( b6 = b4 - b5 iff for b7 being Vector of b2
for b8 being Vector of b3 holds b6 . [b7,b8] = (b4 . [b7,b8]) - (b5 . [b7,b8]) );

E5: now
let c1 be non empty Abelian LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
now
let c6 be Vector of c2;
let c7 be Vector of c3;
thus (c4 + c5) . [c6,c7] = (c4 . [c6,c7]) + (c5 . [c6,c7]) by Def3
.= (c5 + c4) . [c6,c7] by Def3 ;
end;
hence c4 + c5 = c5 + c4 by FUNCT_2:120;
end;

definition
let c1 be non empty Abelian LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
redefine func + as c4 + c5 -> Form of a2,a3;
commutativity
for b1, b2 being Form of c2,c3 holds b1 + b2 = b2 + b1
by Lemma5;
end;

theorem Th1: :: BILINEAR:1
for b1 being non empty ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b2
for b5 being Vector of b3 holds (NulForm b2,b3) . [b4,b5] = 0. b1 by FUNCOP_1:13;

theorem Th2: :: BILINEAR:2
for b1 being non empty right_zeroed LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds b4 + (NulForm b2,b3) = b4
proof end;

theorem Th3: :: BILINEAR:3
for b1 being non empty add-associative LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5, b6 being Form of b2,b3 holds (b4 + b5) + b6 = b4 + (b5 + b6)
proof end;

theorem Th4: :: BILINEAR:4
for b1 being non empty add-associative right_zeroed right_complementable LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds b4 - b4 = NulForm b2,b3
proof end;

theorem Th5: :: BILINEAR:5
for b1 being non empty right-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Element of b1
for b5, b6 being Form of b2,b3 holds b4 * (b5 + b6) = (b4 * b5) + (b4 * b6)
proof end;

theorem Th6: :: BILINEAR:6
for b1 being non empty left-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Element of b1
for b6 being Form of b2,b3 holds (b4 + b5) * b6 = (b4 * b6) + (b5 * b6)
proof end;

theorem Th7: :: BILINEAR:7
for b1 being non empty associative doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Element of b1
for b6 being Form of b2,b3 holds (b4 * b5) * b6 = b4 * (b5 * b6)
proof end;

theorem Th8: :: BILINEAR:8
for b1 being non empty left_unital doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds (1. b1) * b4 = b4
proof end;

E7: now
let c1 be non empty 1-sorted ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
let c5 be Element of the carrier of c2;
let c6 be Element of c3;
E8: dom c4 = [:the carrier of c2,the carrier of c3:] by FUNCT_2:def 1;
then consider c7 being Function such that
E9: ( (curry c4) . c5 = c7 & dom c7 = the carrier of c3 & rng c7 c= rng c4 ) and
for b1 being set st b1 in the carrier of c3 holds
c7 . b1 = c4 . [c5,b1] by FUNCT_5:36;
rng c7 c= the carrier of c1 by E9, XBOOLE_1:1;
then reconsider c8 = c7 as Function of the carrier of c3,the carrier of c1 by E9, FUNCT_2:4;
c8 = (curry c4) . c5 by E9;
hence (curry c4) . c5 is Functional of c3 ;
consider c9 being Function such that
E10: ( (curry' c4) . c6 = c9 & dom c9 = the carrier of c2 & rng c9 c= rng c4 ) and
for b1 being set st b1 in the carrier of c2 holds
c9 . b1 = c4 . [b1,c6] by E8, FUNCT_5:39;
rng c9 c= the carrier of c1 by E10, XBOOLE_1:1;
then reconsider c10 = c9 as Function of the carrier of c2,the carrier of c1 by E10, FUNCT_2:4;
c10 = (curry' c4) . c6 by E10;
hence (curry' c4) . c6 is Functional of c2 ;
end;

definition
let c1 be non empty 1-sorted ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
let c5 be Vector of c2;
func FunctionalFAF c4,c5 -> Functional of a3 equals :: BILINEAR:def 9
(curry a4) . a5;
correctness
coherence
(curry c4) . c5 is Functional of c3
;
by Lemma7;
end;

:: deftheorem Def9 defines FunctionalFAF BILINEAR:def 9 :
for b1 being non empty 1-sorted
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b2 holds FunctionalFAF b4,b5 = (curry b4) . b5;

definition
let c1 be non empty 1-sorted ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
let c5 be Vector of c3;
func FunctionalSAF c4,c5 -> Functional of a2 equals :: BILINEAR:def 10
(curry' a4) . a5;
correctness
coherence
(curry' c4) . c5 is Functional of c2
;
by Lemma7;
end;

:: deftheorem Def10 defines FunctionalSAF BILINEAR:def 10 :
for b1 being non empty 1-sorted
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b3 holds FunctionalSAF b4,b5 = (curry' b4) . b5;

theorem Th9: :: BILINEAR:9
for b1 being non empty 1-sorted
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b2 holds
( dom (FunctionalFAF b4,b5) = the carrier of b3 & rng (FunctionalFAF b4,b5) c= the carrier of b1 & ( for b6 being Vector of b3 holds (FunctionalFAF b4,b5) . b6 = b4 . [b5,b6] ) )
proof end;

theorem Th10: :: BILINEAR:10
for b1 being non empty 1-sorted
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b3 holds
( dom (FunctionalSAF b4,b5) = the carrier of b2 & rng (FunctionalSAF b4,b5) c= the carrier of b1 & ( for b6 being Vector of b2 holds (FunctionalSAF b4,b5) . b6 = b4 . [b6,b5] ) )
proof end;

theorem Th11: :: BILINEAR:11
for b1 being non empty ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b2 holds FunctionalFAF (NulForm b2,b3),b4 = 0Functional b3
proof end;

theorem Th12: :: BILINEAR:12
for b1 being non empty ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b3 holds FunctionalSAF (NulForm b2,b3),b4 = 0Functional b2
proof end;

theorem Th13: :: BILINEAR:13
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3
for b6 being Vector of b3 holds FunctionalSAF (b4 + b5),b6 = (FunctionalSAF b4,b6) + (FunctionalSAF b5,b6)
proof end;

theorem Th14: :: BILINEAR:14
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3
for b6 being Vector of b2 holds FunctionalFAF (b4 + b5),b6 = (FunctionalFAF b4,b6) + (FunctionalFAF b5,b6)
proof end;

theorem Th15: :: BILINEAR:15
for b1 being non empty doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Element of b1
for b6 being Vector of b3 holds FunctionalSAF (b5 * b4),b6 = b5 * (FunctionalSAF b4,b6)
proof end;

theorem Th16: :: BILINEAR:16
for b1 being non empty doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Element of b1
for b6 being Vector of b2 holds FunctionalFAF (b5 * b4),b6 = b5 * (FunctionalFAF b4,b6)
proof end;

theorem Th17: :: BILINEAR:17
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b3 holds FunctionalSAF (- b4),b5 = - (FunctionalSAF b4,b5)
proof end;

theorem Th18: :: BILINEAR:18
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3
for b5 being Vector of b2 holds FunctionalFAF (- b4),b5 = - (FunctionalFAF b4,b5)
proof end;

theorem Th19: :: BILINEAR:19
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3
for b6 being Vector of b3 holds FunctionalSAF (b4 - b5),b6 = (FunctionalSAF b4,b6) - (FunctionalSAF b5,b6)
proof end;

theorem Th20: :: BILINEAR:20
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Form of b2,b3
for b6 being Vector of b2 holds FunctionalFAF (b4 - b5),b6 = (FunctionalFAF b4,b6) - (FunctionalFAF b5,b6)
proof end;

definition
let c1 be non empty HGrStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Functional of c2;
let c5 be Functional of c3;
func FormFunctional c4,c5 -> Form of a2,a3 means :Def11: :: BILINEAR:def 11
for b1 being Vector of a2
for b2 being Vector of a3 holds a6 . [b1,b2] = (a4 . b1) * (a5 . b2);
existence
ex b1 being Form of c2,c3 st
for b2 being Vector of c2
for b3 being Vector of c3 holds b1 . [b2,b3] = (c4 . b2) * (c5 . b3)
proof end;
uniqueness
for b1, b2 being Form of c2,c3 st ( for b3 being Vector of c2
for b4 being Vector of c3 holds b1 . [b3,b4] = (c4 . b3) * (c5 . b4) ) & ( for b3 being Vector of c2
for b4 being Vector of c3 holds b2 . [b3,b4] = (c4 . b3) * (c5 . b4) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def11 defines FormFunctional BILINEAR:def 11 :
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3
for b6 being Form of b2,b3 holds
( b6 = FormFunctional b4,b5 iff for b7 being Vector of b2
for b8 being Vector of b3 holds b6 . [b7,b8] = (b4 . b7) * (b5 . b8) );

theorem Th21: :: BILINEAR:21
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Vector of b2
for b6 being Vector of b3 holds (FormFunctional b4,(0Functional b3)) . [b5,b6] = 0. b1
proof end;

theorem Th22: :: BILINEAR:22
for b1 being non empty add-associative right_zeroed right_complementable left-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b3
for b5 being Vector of b2
for b6 being Vector of b3 holds (FormFunctional (0Functional b2),b4) . [b5,b6] = 0. b1
proof end;

theorem Th23: :: BILINEAR:23
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2 holds FormFunctional b4,(0Functional b3) = NulForm b2,b3
proof end;

theorem Th24: :: BILINEAR:24
for b1 being non empty add-associative right_zeroed right_complementable left-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b3 holds FormFunctional (0Functional b2),b4 = NulForm b2,b3
proof end;

theorem Th25: :: BILINEAR:25
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3
for b6 being Vector of b2 holds FunctionalFAF (FormFunctional b4,b5),b6 = (b4 . b6) * b5
proof end;

theorem Th26: :: BILINEAR:26
for b1 being non empty commutative HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3
for b6 being Vector of b3 holds FunctionalSAF (FormFunctional b4,b5),b6 = (b5 . b6) * b4
proof end;

definition
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
attr a4 is additiveFAF means :Def12: :: BILINEAR:def 12
for b1 being Vector of a2 holds FunctionalFAF a4,b1 is additive;
attr a4 is additiveSAF means :Def13: :: BILINEAR:def 13
for b1 being Vector of a3 holds FunctionalSAF a4,b1 is additive;
end;

:: deftheorem Def12 defines additiveFAF BILINEAR:def 12 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is additiveFAF iff for b5 being Vector of b2 holds FunctionalFAF b4,b5 is additive );

:: deftheorem Def13 defines additiveSAF BILINEAR:def 13 :
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is additiveSAF iff for b5 being Vector of b3 holds FunctionalSAF b4,b5 is additive );

definition
let c1 be non empty HGrStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
attr a4 is homogeneousFAF means :Def14: :: BILINEAR:def 14
for b1 being Vector of a2 holds FunctionalFAF a4,b1 is homogeneous;
attr a4 is homogeneousSAF means :Def15: :: BILINEAR:def 15
for b1 being Vector of a3 holds FunctionalSAF a4,b1 is homogeneous;
end;

:: deftheorem Def14 defines homogeneousFAF BILINEAR:def 14 :
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is homogeneousFAF iff for b5 being Vector of b2 holds FunctionalFAF b4,b5 is homogeneous );

:: deftheorem Def15 defines homogeneousSAF BILINEAR:def 15 :
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is homogeneousSAF iff for b5 being Vector of b3 holds FunctionalSAF b4,b5 is homogeneous );

registration
let c1 be non empty right_zeroed LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
cluster NulForm a2,a3 -> additiveFAF ;
coherence
NulForm c2,c3 is additiveFAF
proof end;
cluster NulForm a2,a3 -> additiveSAF ;
coherence
NulForm c2,c3 is additiveSAF
proof end;
end;

registration
let c1 be non empty right_zeroed LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
cluster additiveFAF additiveSAF Relation of [:the carrier of a2,the carrier of a3:],the carrier of a1;
existence
ex b1 being Form of c2,c3 st
( b1 is additiveFAF & b1 is additiveSAF )
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
cluster NulForm a2,a3 -> additiveFAF additiveSAF homogeneousFAF ;
coherence
NulForm c2,c3 is homogeneousFAF
proof end;
cluster NulForm a2,a3 -> additiveFAF additiveSAF homogeneousSAF ;
coherence
NulForm c2,c3 is homogeneousSAF
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
cluster additiveFAF additiveSAF homogeneousFAF homogeneousSAF Relation of [:the carrier of a2,the carrier of a3:],the carrier of a1;
existence
ex b1 being Form of c2,c3 st
( b1 is additiveFAF & b1 is homogeneousFAF & b1 is additiveSAF & b1 is homogeneousSAF )
proof end;
end;

definition
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
mode bilinear-Form of a2,a3 is additiveFAF additiveSAF homogeneousFAF homogeneousSAF Form of a2,a3;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveFAF Form of c2,c3;
let c5 be Vector of c2;
cluster FunctionalFAF a4,a5 -> additive ;
coherence
FunctionalFAF c4,c5 is additive
by Def12;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveSAF Form of c2,c3;
let c5 be Vector of c3;
cluster FunctionalSAF a4,a5 -> additive ;
coherence
FunctionalSAF c4,c5 is additive
by Def13;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be homogeneousFAF Form of c2,c3;
let c5 be Vector of c2;
cluster FunctionalFAF a4,a5 -> homogeneous ;
coherence
FunctionalFAF c4,c5 is homogeneous
by Def14;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be homogeneousSAF Form of c2,c3;
let c5 be Vector of c3;
cluster FunctionalSAF a4,a5 -> homogeneous ;
coherence
FunctionalSAF c4,c5 is homogeneous
by Def15;
end;

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

registration
let c1 be non empty add-associative right_zeroed right_complementable commutative right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additive Functional of c2;
let c5 be Functional of c3;
cluster FormFunctional a4,a5 -> additiveSAF ;
coherence
FormFunctional c4,c5 is additiveSAF
proof end;
end;

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

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

registration
let c1 be non empty non degenerated doubleLoopStr ;
let c2 be non empty non trivial VectSpStr of c1;
let c3 be non empty VectSpStr of c1;
let c4 be Functional of c2;
let c5 be Functional of c3;
cluster FormFunctional a4,a5 -> non trivial ;
coherence
not FormFunctional c4,c5 is trivial
proof end;
end;

registration
let c1 be non empty non degenerated doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be non empty non trivial VectSpStr of c1;
let c4 be Functional of c2;
let c5 be Functional of c3;
cluster FormFunctional a4,a5 -> non trivial ;
coherence
not FormFunctional c4,c5 is trivial
proof end;
end;

registration
let c1 be Field;
let c2, c3 be non trivial VectSp of c1;
let c4 be non constant 0-preserving Functional of c2;
let c5 be non constant 0-preserving Functional of c3;
cluster FormFunctional a4,a5 -> non constant non trivial ;
coherence
not FormFunctional c4,c5 is constant
proof end;
end;

registration
let c1 be Field;
let c2, c3 be non trivial VectSp of c1;
cluster non constant non trivial additiveFAF additiveSAF homogeneousFAF homogeneousSAF Relation of [:the carrier of a2,the carrier of a3:],the carrier of a1;
existence
ex b1 being Form of c2,c3 st
( not b1 is trivial & not b1 is constant & b1 is additiveFAF & b1 is homogeneousFAF & b1 is additiveSAF & b1 is homogeneousSAF )
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be additiveSAF Form of c2,c3;
cluster a4 + a5 -> additiveSAF ;
correctness
coherence
c4 + c5 is additiveSAF
;
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be additiveFAF Form of c2,c3;
cluster a4 + a5 -> additiveFAF ;
correctness
coherence
c4 + c5 is additiveFAF
;
proof end;
end;

registration
let c1 be non empty right_zeroed right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveSAF Form of c2,c3;
let c5 be Element of c1;
cluster a5 * a4 -> additiveSAF ;
correctness
coherence
c5 * c4 is additiveSAF
;
proof end;
end;

registration
let c1 be non empty right_zeroed right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveFAF Form of c2,c3;
let c5 be Element of c1;
cluster a5 * a4 -> additiveFAF ;
correctness
coherence
c5 * c4 is additiveFAF
;
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveSAF Form of c2,c3;
cluster - a4 -> additiveSAF ;
correctness
coherence
- c4 is additiveSAF
;
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be additiveFAF Form of c2,c3;
cluster - a4 -> additiveFAF ;
correctness
coherence
- c4 is additiveFAF
;
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be additiveSAF Form of c2,c3;
cluster a4 - a5 -> additiveSAF ;
correctness
coherence
c4 - c5 is additiveSAF
;
;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be additiveFAF Form of c2,c3;
cluster a4 - a5 -> additiveFAF ;
correctness
coherence
c4 - c5 is additiveFAF
;
;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be homogeneousSAF Form of c2,c3;
cluster a4 + a5 -> homogeneousSAF ;
correctness
coherence
c4 + c5 is homogeneousSAF
;
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be homogeneousFAF Form of c2,c3;
cluster a4 + a5 -> homogeneousFAF ;
correctness
coherence
c4 + c5 is homogeneousFAF
;
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be homogeneousSAF Form of c2,c3;
let c5 be Element of c1;
cluster a5 * a4 -> homogeneousSAF ;
correctness
coherence
c5 * c4 is homogeneousSAF
;
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative commutative right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be homogeneousFAF Form of c2,c3;
let c5 be Element of c1;
cluster a5 * a4 -> homogeneousFAF ;
correctness
coherence
c5 * c4 is homogeneousFAF
;
proof end;
end;

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

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

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be homogeneousSAF Form of c2,c3;
cluster a4 - a5 -> homogeneousSAF ;
correctness
coherence
c4 - c5 is homogeneousSAF
;
;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be homogeneousFAF Form of c2,c3;
cluster a4 - a5 -> homogeneousFAF ;
correctness
coherence
c4 - c5 is homogeneousFAF
;
;
end;

theorem Th27: :: BILINEAR:27
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Vector of b2
for b6 being Vector of b3
for b7 being Form of b2,b3 st b7 is additiveSAF holds
b7 . [(b4 + b5),b6] = (b7 . [b4,b6]) + (b7 . [b5,b6])
proof end;

theorem Th28: :: BILINEAR:28
for b1 being non empty LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b2
for b5, b6 being Vector of b3
for b7 being Form of b2,b3 st b7 is additiveFAF holds
b7 . [b4,(b5 + b6)] = (b7 . [b4,b5]) + (b7 . [b4,b6])
proof end;

theorem Th29: :: BILINEAR:29
for b1 being non empty right_zeroed LoopStr
for b2, b3 being non empty VectSpStr of b1
for b4, b5 being Vector of b2
for b6, b7 being Vector of b3
for b8 being additiveFAF additiveSAF Form of b2,b3 holds b8 . [(b4 + b5),(b6 + b7)] = ((b8 . [b4,b6]) + (b8 . [b4,b7])) + ((b8 . [b5,b6]) + (b8 . [b5,b7]))
proof end;

theorem Th30: :: BILINEAR:30
for b1 being non empty add-associative right_zeroed right_complementable doubleLoopStr
for b2, b3 being non empty right_zeroed VectSpStr of b1
for b4 being additiveFAF Form of b2,b3
for b5 being Vector of b2 holds b4 . [b5,(0. b3)] = 0. b1
proof end;

theorem Th31: :: BILINEAR:31
for b1 being non empty add-associative right_zeroed right_complementable doubleLoopStr
for b2, b3 being non empty right_zeroed VectSpStr of b1
for b4 being additiveSAF Form of b2,b3
for b5 being Vector of b3 holds b4 . [(0. b2),b5] = 0. b1
proof end;

theorem Th32: :: BILINEAR:32
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b2
for b5 being Vector of b3
for b6 being Element of b1
for b7 being Form of b2,b3 st b7 is homogeneousSAF holds
b7 . [(b6 * b4),b5] = b6 * (b7 . [b4,b5])
proof end;

theorem Th33: :: BILINEAR:33
for b1 being non empty HGrStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Vector of b2
for b5 being Vector of b3
for b6 being Element of b1
for b7 being Form of b2,b3 st b7 is homogeneousFAF holds
b7 . [b4,(b6 * b5)] = b6 * (b7 . [b4,b5])
proof end;

theorem Th34: :: BILINEAR:34
for b1 being non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b4 being homogeneousSAF Form of b2,b3
for b5 being Vector of b3 holds b4 . [(0. b2),b5] = 0. b1
proof end;

theorem Th35: :: BILINEAR:35
for b1 being non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b4 being homogeneousFAF Form of b2,b3
for b5 being Vector of b2 holds b4 . [b5,(0. b3)] = 0. b1
proof end;

theorem Th36: :: BILINEAR:36
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4, b5 being Vector of b2
for b6 being Vector of b3
for b7 being additiveSAF homogeneousSAF Form of b2,b3 holds b7 . [(b4 - b5),b6] = (b7 . [b4,b6]) - (b7 . [b5,b6])
proof end;

theorem Th37: :: BILINEAR:37
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being Vector of b2
for b5, b6 being Vector of b3
for b7 being additiveFAF homogeneousFAF Form of b2,b3 holds b7 . [b4,(b5 - b6)] = (b7 . [b4,b5]) - (b7 . [b4,b6])
proof end;

theorem Th38: :: BILINEAR:38
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4, b5 being Vector of b2
for b6, b7 being Vector of b3
for b8 being bilinear-Form of b2,b3 holds b8 . [(b4 - b5),(b6 - b7)] = ((b8 . [b4,b6]) - (b8 . [b4,b7])) - ((b8 . [b5,b6]) - (b8 . [b5,b7]))
proof end;

theorem Th39: :: BILINEAR:39
for b1 being non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b4, b5 being Vector of b2
for b6, b7 being Vector of b3
for b8, b9 being Element of b1
for b10 being bilinear-Form of b2,b3 holds b10 . [(b4 + (b8 * b5)),(b6 + (b9 * b7))] = ((b10 . [b4,b6]) + (b9 * (b10 . [b4,b7]))) + ((b8 * (b10 . [b5,b6])) + (b8 * (b9 * (b10 . [b5,b7]))))
proof end;

theorem Th40: :: BILINEAR:40
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4, b5 being Vector of b2
for b6, b7 being Vector of b3
for b8, b9 being Element of b1
for b10 being bilinear-Form of b2,b3 holds b10 . [(b4 - (b8 * b5)),(b6 - (b9 * b7))] = ((b10 . [b4,b6]) - (b9 * (b10 . [b4,b7]))) - ((b8 * (b10 . [b5,b6])) - (b8 * (b9 * (b10 . [b5,b7]))))
proof end;

theorem Th41: :: BILINEAR:41
for b1 being non empty add-associative right_zeroed right_complementable doubleLoopStr
for b2, b3 being non empty right_zeroed VectSpStr of b1
for b4 being Form of b2,b3 st ( b4 is additiveFAF or b4 is additiveSAF ) holds
( b4 is constant iff for b5 being Vector of b2
for b6 being Vector of b3 holds b4 . [b5,b6] = 0. b1 )
proof end;

definition
let c1 be ZeroStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
func leftker c4 -> Subset of a2 equals :: BILINEAR:def 16
{ b1 where B is Vector of a2 : for b1 being Vector of a3 holds a4 . [b1,b2] = 0. a1 } ;
correctness
coherence
{ b1 where B is Vector of c2 : for b1 being Vector of c3 holds c4 . [b1,b2] = 0. c1 } is Subset of c2
;
proof end;
end;

:: deftheorem Def16 defines leftker BILINEAR:def 16 :
for b1 being ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds leftker b4 = { b5 where B is Vector of b2 : for b1 being Vector of b3 holds b4 . [b5,b6] = 0. b1 } ;

definition
let c1 be ZeroStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
func rightker c4 -> Subset of a3 equals :: BILINEAR:def 17
{ b1 where B is Vector of a3 : for b1 being Vector of a2 holds a4 . [b2,b1] = 0. a1 } ;
correctness
coherence
{ b1 where B is Vector of c3 : for b1 being Vector of c2 holds c4 . [b2,b1] = 0. c1 } is Subset of c3
;
proof end;
end;

:: deftheorem Def17 defines rightker BILINEAR:def 17 :
for b1 being ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds rightker b4 = { b5 where B is Vector of b3 : for b1 being Vector of b2 holds b4 . [b6,b5] = 0. b1 } ;

definition
let c1 be ZeroStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Form of c2,c2;
func diagker c3 -> Subset of a2 equals :: BILINEAR:def 18
{ b1 where B is Vector of a2 : a3 . [b1,b1] = 0. a1 } ;
correctness
coherence
{ b1 where B is Vector of c2 : c3 . [b1,b1] = 0. c1 } is Subset of c2
;
proof end;
end;

:: deftheorem Def18 defines diagker BILINEAR:def 18 :
for b1 being ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Form of b2,b2 holds diagker b3 = { b4 where B is Vector of b2 : b3 . [b4,b4] = 0. b1 } ;

registration
let c1 be non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr ;
let c2 be non empty right_zeroed VectSpStr of c1;
let c3 be non empty VectSpStr of c1;
let c4 be additiveSAF Form of c2,c3;
cluster leftker a4 -> non empty ;
coherence
not leftker c4 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3 be non empty VectSpStr of c1;
let c4 be homogeneousSAF Form of c2,c3;
cluster leftker a4 -> non empty ;
coherence
not leftker c4 is empty
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 non empty right_zeroed VectSpStr of c1;
let c4 be additiveFAF Form of c2,c3;
cluster rightker a4 -> non empty ;
coherence
not rightker c4 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c4 be homogeneousFAF Form of c2,c3;
cluster rightker a4 -> non empty ;
coherence
not rightker c4 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable doubleLoopStr ;
let c2 be non empty right_zeroed VectSpStr of c1;
let c3 be additiveFAF Form of c2,c2;
cluster diagker a3 -> non empty ;
coherence
not diagker c3 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable doubleLoopStr ;
let c2 be non empty right_zeroed VectSpStr of c1;
let c3 be additiveSAF Form of c2,c2;
cluster diagker a3 -> non empty ;
coherence
not diagker c3 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3 be homogeneousFAF Form of c2,c2;
cluster diagker a3 -> non empty ;
coherence
not diagker c3 is empty
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3 be homogeneousSAF Form of c2,c2;
cluster diagker a3 -> non empty ;
coherence
not diagker c3 is empty
proof end;
end;

theorem Th42: :: BILINEAR:42
for b1 being ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Form of b2,b2 holds
( leftker b3 c= diagker b3 & rightker b3 c= diagker b3 )
proof end;

theorem Th43: :: BILINEAR:43
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being additiveSAF homogeneousSAF Form of b2,b3 holds leftker b4 is lineary-closed
proof end;

theorem Th44: :: BILINEAR:44
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being additiveFAF homogeneousFAF Form of b2,b3 holds rightker b4 is lineary-closed
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be VectSp of c1;
let c3 be non empty VectSpStr of c1;
let c4 be additiveSAF homogeneousSAF Form of c2,c3;
func LKer c4 -> non empty strict Subspace of a2 means :Def19: :: BILINEAR:def 19
the carrier of a5 = leftker a4;
existence
ex b1 being non empty strict Subspace of c2 st the carrier of b1 = leftker c4
proof end;
uniqueness
for b1, b2 being non empty strict Subspace of c2 st the carrier of b1 = leftker c4 & the carrier of b2 = leftker c4 holds
b1 = b2
by VECTSP_4:37;
end;

:: deftheorem Def19 defines LKer BILINEAR:def 19 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being VectSp of b1
for b3 being non empty VectSpStr of b1
for b4 being additiveSAF homogeneousSAF Form of b2,b3
for b5 being non empty strict Subspace of b2 holds
( b5 = LKer b4 iff the carrier of b5 = leftker b4 );

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be VectSp of c1;
let c4 be additiveFAF homogeneousFAF Form of c2,c3;
func RKer c4 -> non empty strict Subspace of a3 means :Def20: :: BILINEAR:def 20
the carrier of a5 = rightker a4;
existence
ex b1 being non empty strict Subspace of c3 st the carrier of b1 = rightker c4
proof end;
uniqueness
for b1, b2 being non empty strict Subspace of c3 st the carrier of b1 = rightker c4 & the carrier of b2 = rightker c4 holds
b1 = b2
by VECTSP_4:37;
end;

:: deftheorem Def20 defines RKer BILINEAR:def 20 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being VectSp of b1
for b4 being additiveFAF homogeneousFAF Form of b2,b3
for b5 being non empty strict Subspace of b3 holds
( b5 = RKer b4 iff the carrier of b5 = rightker b4 );

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be VectSp of c1;
let c3 be non empty VectSpStr of c1;
let c4 be additiveSAF homogeneousSAF Form of c2,c3;
func LQForm c4 -> additiveSAF homogeneousSAF Form of (VectQuot a2,(LKer a4)),a3 means :Def21: :: BILINEAR:def 21
for b1 being Vector of (VectQuot a2,(LKer a4))
for b2 being Vector of a3
for b3 being Vector of a2 st b1 = b3 + (LKer a4) holds
a5 . [b1,b2] = a4 . [b3,b2];
existence
ex b1 being additiveSAF homogeneousSAF Form of (VectQuot c2,(LKer c4)),c3 st
for b2 being Vector of (VectQuot c2,(LKer c4))
for b3 being Vector of c3
for b4 being Vector of c2 st b2 = b4 + (LKer c4) holds
b1 . [b2,b3] = c4 . [b4,b3]
proof end;
uniqueness
for b1, b2 being additiveSAF homogeneousSAF Form of (VectQuot c2,(LKer c4)),c3 st ( for b3 being Vector of (VectQuot c2,(LKer c4))
for b4 being Vector of c3
for b5 being Vector of c2 st b3 = b5 + (LKer c4) holds
b1 . [b3,b4] = c4 . [b5,b4] ) & ( for b3 being Vector of (VectQuot c2,(LKer c4))
for b4 being Vector of c3
for b5 being Vector of c2 st b3 = b5 + (LKer c4) holds
b2 . [b3,b4] = c4 . [b5,b4] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def21 defines LQForm BILINEAR:def 21 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being VectSp of b1
for b3 being non empty VectSpStr of b1
for b4 being additiveSAF homogeneousSAF Form of b2,b3
for b5 being additiveSAF homogeneousSAF Form of (VectQuot b2,(LKer b4)),b3 holds
( b5 = LQForm b4 iff for b6 being Vector of (VectQuot b2,(LKer b4))
for b7 being Vector of b3
for b8 being Vector of b2 st b6 = b8 + (LKer b4) holds
b5 . [b6,b7] = b4 . [b8,b7] );

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be VectSp of c1;
let c4 be additiveFAF homogeneousFAF Form of c2,c3;
func RQForm c4 -> additiveFAF homogeneousFAF Form of a2,(VectQuot a3,(RKer a4)) means :Def22: :: BILINEAR:def 22
for b1 being Vector of (VectQuot a3,(RKer a4))
for b2 being Vector of a2
for b3 being Vector of a3 st b1 = b3 + (RKer a4) holds
a5 . [b2,b1] = a4 . [b2,b3];
existence
ex b1 being additiveFAF homogeneousFAF Form of c2,(VectQuot c3,(RKer c4)) st
for b2 being Vector of (VectQuot c3,(RKer c4))
for b3 being Vector of c2
for b4 being Vector of c3 st b2 = b4 + (RKer c4) holds
b1 . [b3,b2] = c4 . [b3,b4]
proof end;
uniqueness
for b1, b2 being additiveFAF homogeneousFAF Form of c2,(VectQuot c3,(RKer c4)) st ( for b3 being Vector of (VectQuot c3,(RKer c4))
for b4 being Vector of c2
for b5 being Vector of c3 st b3 = b5 + (RKer c4) holds
b1 . [b4,b3] = c4 . [b4,b5] ) & ( for b3 being Vector of (VectQuot c3,(RKer c4))
for b4 being Vector of c2
for b5 being Vector of c3 st b3 = b5 + (RKer c4) holds
b2 . [b4,b3] = c4 . [b4,b5] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def22 defines RQForm BILINEAR:def 22 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being VectSp of b1
for b4 being additiveFAF homogeneousFAF Form of b2,b3
for b5 being additiveFAF homogeneousFAF Form of b2,(VectQuot b3,(RKer b4)) holds
( b5 = RQForm b4 iff for b6 being Vector of (VectQuot b3,(RKer b4))
for b7 being Vector of b2
for b8 being Vector of b3 st b6 = b8 + (RKer b4) holds
b5 . [b7,b6] = b4 . [b7,b8] );

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2, c3 be VectSp of c1;
let c4 be bilinear-Form of c2,c3;
cluster LQForm a4 -> additiveFAF additiveSAF homogeneousFAF homogeneousSAF ;
coherence
( LQForm c4 is additiveFAF & LQForm c4 is homogeneousFAF )
proof end;
cluster RQForm a4 -> additiveFAF additiveSAF homogeneousFAF homogeneousSAF ;
coherence
( RQForm c4 is additiveSAF & RQForm c4 is homogeneousSAF )
proof end;
end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2, c3 be VectSp of c1;
let c4 be bilinear-Form of c2,c3;
func QForm c4 -> bilinear-Form of (VectQuot a2,(LKer a4)),(VectQuot a3,(RKer a4)) means :Def23: :: BILINEAR:def 23
for b1 being Vector of (VectQuot a2,(LKer a4))
for b2 being Vector of (VectQuot a3,(RKer a4))
for b3 being Vector of a2
for b4 being Vector of a3 st b1 = b3 + (LKer a4) & b2 = b4 + (RKer a4) holds
a5 . [b1,b2] = a4 . [b3,b4];
existence
ex b1 being bilinear-Form of (VectQuot c2,(LKer c4)),(VectQuot c3,(RKer c4)) st
for b2 being Vector of (VectQuot c2,(LKer c4))
for b3 being Vector of (VectQuot c3,(RKer c4))
for b4 being Vector of c2
for b5 being Vector of c3 st b2 = b4 + (LKer c4) & b3 = b5 + (RKer c4) holds
b1 . [b2,b3] = c4 . [b4,b5]
proof end;
uniqueness
for b1, b2 being bilinear-Form of (VectQuot c2,(LKer c4)),(VectQuot c3,(RKer c4)) st ( for b3 being Vector of (VectQuot c2,(LKer c4))
for b4 being Vector of (VectQuot c3,(RKer c4))
for b5 being Vector of c2
for b6 being Vector of c3 st b3 = b5 + (LKer c4) & b4 = b6 + (RKer c4) holds
b1 . [b3,b4] = c4 . [b5,b6] ) & ( for b3 being Vector of (VectQuot c2,(LKer c4))
for b4 being Vector of (VectQuot c3,(RKer c4))
for b5 being Vector of c2
for b6 being Vector of c3 st b3 = b5 + (LKer c4) & b4 = b6 + (RKer c4) holds
b2 . [b3,b4] = c4 . [b5,b6] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def23 defines QForm BILINEAR:def 23 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being bilinear-Form of b2,b3
for b5 being bilinear-Form of (VectQuot b2,(LKer b4)),(VectQuot b3,(RKer b4)) holds
( b5 = QForm b4 iff for b6 being Vector of (VectQuot b2,(LKer b4))
for b7 being Vector of (VectQuot b3,(RKer b4))
for b8 being Vector of b2
for b9 being Vector of b3 st b6 = b8 + (LKer b4) & b7 = b9 + (RKer b4) holds
b5 . [b6,b7] = b4 . [b8,b9] );

theorem Th45: :: BILINEAR:45
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being VectSp of b1
for b3 being non empty VectSpStr of b1
for b4 being additiveSAF homogeneousSAF Form of b2,b3 holds rightker b4 = rightker (LQForm b4)
proof end;

theorem Th46: :: BILINEAR:46
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being VectSp of b1
for b4 being additiveFAF homogeneousFAF Form of b2,b3 holds leftker b4 = leftker (RQForm b4)
proof end;

theorem Th47: :: BILINEAR:47
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being bilinear-Form of b2,b3 holds RKer b4 = RKer (LQForm b4)
proof end;

theorem Th48: :: BILINEAR:48
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being bilinear-Form of b2,b3 holds LKer b4 = LKer (RQForm b4)
proof end;

theorem Th49: :: BILINEAR:49
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being bilinear-Form of b2,b3 holds
( QForm b4 = RQForm (LQForm b4) & QForm b4 = LQForm (RQForm b4) )
proof end;

theorem Th50: :: BILINEAR:50
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2, b3 being VectSp of b1
for b4 being bilinear-Form of b2,b3 holds
( leftker (QForm b4) = leftker (RQForm (LQForm b4)) & rightker (QForm b4) = rightker (RQForm (LQForm b4)) & leftker (QForm b4) = leftker (LQForm (RQForm b4)) & rightker (QForm b4) = rightker (LQForm (RQForm b4)) )
proof end;

theorem Th51: :: BILINEAR:51
for b1 being non empty add-associative right_zeroed right_complementable distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3 holds ker b4 c= leftker (FormFunctional b4,b5)
proof end;

theorem Th52: :: BILINEAR:52
for b1 being non empty add-associative right_zeroed right_complementable associative commutative distributive left_unital Field-like doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3 st b5 <> 0Functional b3 holds
leftker (FormFunctional b4,b5) = ker b4
proof end;

theorem Th53: :: BILINEAR:53
for b1 being non empty add-associative right_zeroed right_complementable distributive doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3 holds ker b5 c= rightker (FormFunctional b4,b5)
proof end;

theorem Th54: :: BILINEAR:54
for b1 being non empty add-associative right_zeroed right_complementable associative commutative distributive left_unital Field-like doubleLoopStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Functional of b2
for b5 being Functional of b3 st b4 <> 0Functional b2 holds
rightker (FormFunctional b4,b5) = ker b5
proof end;

theorem Th55: :: BILINEAR:55
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative commutative distributive left_unital Field-like doubleLoopStr
for b2 being VectSp of b1
for b3 being non empty VectSpStr of b1
for b4 being linear-Functional of b2
for b5 being Functional of b3 st b5 <> 0Functional b3 holds
( LKer (FormFunctional b4,b5) = Ker b4 & LQForm (FormFunctional b4,b5) = FormFunctional (CQFunctional b4),b5 )
proof end;

theorem Th56: :: BILINEAR:56
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative commutative distributive left_unital Field-like doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being VectSp of b1
for b4 being Functional of b2
for b5 being linear-Functional of b3 st b4 <> 0Functional b2 holds
( RKer (FormFunctional b4,b5) = Ker b5 & RQForm (FormFunctional b4,b5) = FormFunctional b4,(CQFunctional b5) )
proof end;

theorem Th57: :: BILINEAR:57
for b1 being Field
for b2, b3 being non trivial VectSp of b1
for b4 being V126 linear-Functional of b2
for b5 being V126 linear-Functional of b3 holds QForm (FormFunctional b4,b5) = FormFunctional (CQFunctional b4),(CQFunctional b5)
proof end;

definition
let c1 be ZeroStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
attr a4 is degenerated-on-left means :Def24: :: BILINEAR:def 24
leftker a4 <> {(0. a2)};
attr a4 is degenerated-on-right means :Def25: :: BILINEAR:def 25
rightker a4 <> {(0. a3)};
end;

:: deftheorem Def24 defines degenerated-on-left BILINEAR:def 24 :
for b1 being ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is degenerated-on-left iff leftker b4 <> {(0. b2)} );

:: deftheorem Def25 defines degenerated-on-right BILINEAR:def 25 :
for b1 being ZeroStr
for b2, b3 being non empty VectSpStr of b1
for b4 being Form of b2,b3 holds
( b4 is degenerated-on-right iff rightker b4 <> {(0. b3)} );

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be VectSp of c1;
let c3 be non empty right_zeroed VectSpStr of c1;
let c4 be additiveSAF homogeneousSAF Form of c2,c3;
cluster LQForm a4 -> additiveSAF homogeneousSAF non degenerated-on-left ;
coherence
not LQForm c4 is degenerated-on-left
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty right_zeroed VectSpStr of c1;
let c3 be VectSp of c1;
let c4 be additiveFAF homogeneousFAF Form of c2,c3;
cluster RQForm a4 -> additiveFAF homogeneousFAF non degenerated-on-right ;
coherence
not RQForm c4 is degenerated-on-right
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2, c3 be VectSp of c1;
let c4 be bilinear-Form of c2,c3;
cluster QForm a4 -> non degenerated-on-left non degenerated-on-right ;
coherence
( not QForm c4 is degenerated-on-left & not QForm c4 is degenerated-on-right )
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2, c3 be VectSp of c1;
let c4 be bilinear-Form of c2,c3;
cluster RQForm (LQForm a4) -> additiveFAF additiveSAF homogeneousFAF homogeneousSAF non degenerated-on-left non degenerated-on-right ;
coherence
( not RQForm (LQForm c4) is degenerated-on-left & not RQForm (LQForm c4) is degenerated-on-right )
proof end;
cluster LQForm (RQForm a4) -> additiveFAF additiveSAF homogeneousFAF homogeneousSAF non degenerated-on-left non degenerated-on-right ;
coherence
( not LQForm (RQForm c4) is degenerated-on-left & not LQForm (RQForm c4) is degenerated-on-right )
proof end;
end;

registration
let c1 be Field;
let c2, c3 be non trivial VectSp of c1;
let c4 be non constant bilinear-Form of c2,c3;
cluster QForm a4 -> non constant non degenerated-on-left non degenerated-on-right ;
coherence
not QForm c4 is constant
proof end;
end;

definition
let c1 be 1-sorted ;
let c2 be VectSpStr of c1;
let c3 be Form of c2,c2;
attr a3 is symmetric means :Def26: :: BILINEAR:def 26
for b1, b2 being Vector of a2 holds a3 . [b1,b2] = a3 . [b2,b1];
end;

:: deftheorem Def26 defines symmetric BILINEAR:def 26 :
for b1 being 1-sorted
for b2 being VectSpStr of b1
for b3 being Form of b2,b2 holds
( b3 is symmetric iff for b4, b5 being Vector of b2 holds b3 . [b4,b5] = b3 . [b5,b4] );

definition
let c1 be ZeroStr ;
let c2 be VectSpStr of c1;
let c3 be Form of c2,c2;
attr a3 is alternating means :Def27: :: BILINEAR:def 27
for b1 being Vector of a2 holds a3 . [b1,b1] = 0. a1;
end;

:: deftheorem Def27 defines alternating BILINEAR:def 27 :
for b1 being ZeroStr
for b2 being VectSpStr of b1
for b3 being Form of b2,b2 holds
( b3 is alternating iff for b4 being Vector of b2 holds b3 . [b4,b4] = 0. b1 );

registration
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
cluster NulForm a2,a2 -> symmetric ;
coherence
NulForm c2,c2 is symmetric
proof end;
cluster NulForm a2,a2 -> alternating ;
coherence
NulForm c2,c2 is alternating
proof end;
end;

registration
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
cluster symmetric Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st b1 is symmetric
proof end;
cluster alternating Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st b1 is alternating
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 additiveFAF additiveSAF homogeneousFAF homogeneousSAF symmetric Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st
( b1 is symmetric & b1 is additiveFAF & b1 is homogeneousFAF & b1 is additiveSAF & b1 is homogeneousSAF )
proof end;
cluster additiveFAF additiveSAF homogeneousFAF homogeneousSAF alternating Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st
( b1 is alternating & b1 is additiveFAF & b1 is homogeneousFAF & b1 is additiveSAF & b1 is homogeneousSAF )
proof end;
end;

registration
let c1 be Field;
let c2 be non trivial VectSp of c1;
cluster non constant non trivial additiveFAF additiveSAF homogeneousFAF homogeneousSAF symmetric Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st
( b1 is symmetric & not b1 is trivial & not b1 is constant & b1 is additiveFAF & b1 is homogeneousFAF & b1 is additiveSAF & b1 is homogeneousSAF )
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable LoopStr ;
let c2 be non empty VectSpStr of c1;
cluster additiveFAF additiveSAF alternating Relation of [:the carrier of a2,the carrier of a2:],the carrier of a1;
existence
ex b1 being Form of c2,c2 st
( b1 is alternating & b1 is additiveFAF & b1 is additiveSAF )
proof end;
end;

registration
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be symmetric Form of c2,c2;
cluster a3 + a4 -> symmetric ;
coherence
c3 + c4 is symmetric
proof end;
end;

registration
let c1 be non empty doubleLoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be symmetric Form of c2,c2;
let c4 be Element of c1;
cluster a4 * a3 -> symmetric ;
coherence
c4 * c3 is symmetric
proof end;
end;

registration
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be symmetric Form of c2,c2;
cluster - a3 -> symmetric ;
coherence
- c3 is symmetric
proof end;
end;

registration
let c1 be non empty LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be symmetric Form of c2,c2;
cluster a3 - a4 -> symmetric ;
coherence
c3 - c4 is symmetric
;
end;

registration
let c1 be non empty right_zeroed LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be alternating Form of c2,c2;
cluster a3 + a4 -> alternating ;
coherence
c3 + c4 is alternating
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 alternating Form of c2,c2;
let c4 be Scalar of c1;
cluster a4 * a3 -> alternating ;
coherence
c4 * c3 is alternating
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be alternating Form of c2,c2;
cluster - a3 -> alternating ;
coherence
- c3 is alternating
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3, c4 be alternating Form of c2,c2;
cluster a3 - a4 -> alternating ;
coherence
c3 - c4 is alternating
;
end;

theorem Th58: :: BILINEAR:58
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being symmetric bilinear-Form of b2,b2 holds leftker b3 = rightker b3
proof end;

theorem Th59: :: BILINEAR:59
for b1 being non empty add-associative right_zeroed right_complementable LoopStr
for b2 being non empty VectSpStr of b1
for b3 being additiveFAF additiveSAF alternating Form of b2,b2
for b4, b5 being Vector of b2 holds b3 . [b4,b5] = - (b3 . [b5,b4])
proof end;

definition
let c1 be Fanoian Field;
let c2 be non empty VectSpStr of c1;
let c3 be additiveFAF additiveSAF Form of c2,c2;
redefine attr a3 is alternating means :: BILINEAR:def 28
for b1, b2 being Vector of a2 holds a3 . [b1,b2] = - (a3 . [b2,b1]);
compatibility
( c3 is alternating iff for b1, b2 being Vector of c2 holds c3 . [b1,b2] = - (c3 . [b2,b1]) )
proof end;
end;

:: deftheorem Def28 defines alternating BILINEAR:def 28 :
for b1 being Fanoian Field
for b2 being non empty VectSpStr of b1
for b3 being additiveFAF additiveSAF Form of b2,b2 holds
( b3 is alternating iff for b4, b5 being Vector of b2 holds b3 . [b4,b5] = - (b3 . [b5,b4]) );

theorem Th60: :: BILINEAR:60
for b1 being non empty add-associative right_zeroed right_complementable right-distributive doubleLoopStr
for b2 being non empty VectSpStr of b1
for b3 being alternating bilinear-Form of b2,b2 holds leftker b3 = rightker b3
proof end;