:: BILINEAR semantic presentation

definition
let c1 be 1-sorted ;
let c2, c3 be VectSpStr of c1;
mode Form 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
set c6 = the carrier of c2;
set c7 = the carrier of c3;
set c8 = the carrier of c1;
deffunc H1( Element of the carrier of c2, Element of the carrier of c3) -> Element of the carrier of c1 = (c4 . a1,a2) + (c5 . a1,a2);
consider c9 being Function of [:the carrier of c2,the carrier of c3:],the carrier of c1 such that
E1: for b1 being Element of the carrier of c2
for b2 being Element of the carrier of c3 holds c9 . b1,b2 = H1(b1,b2) from BINOP_1:sch 4();
reconsider c10 = c9 as Form of c2,c3 ;
take c10 ;
thus for b1 being Vector of c2
for b2 being Vector of c3 holds c10 . b1,b2 = (c4 . b1,b2) + (c5 . b1,b2) by E1;
end;
uniqueness
for b1, b2 being Form of c2,c3 holds
( ( 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) ) implies b1 = b2 )
proof
let c6, c7 be Form of c2,c3;
assume that
E1: for b1 being Vector of c2
for b2 being Vector of c3 holds c6 . b1,b2 = (c4 . b1,b2) + (c5 . b1,b2) and
E2: for b1 being Vector of c2
for b2 being Vector of c3 holds c7 . b1,b2 = (c4 . b1,b2) + (c5 . b1,b2) ;
now
let c8 be Vector of c2;
let c9 be Vector of c3;
thus c6 . c8,c9 = (c4 . c8,c9) + (c5 . c8,c9) by E1
.= c7 . c8,c9 by E2 ;
end;
hence c6 = c7 by BINOP_1:2;
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
set c6 = the carrier of c2;
set c7 = the carrier of c3;
set c8 = the carrier of c1;
deffunc H1( Element of the carrier of c2, Element of the carrier of c3) -> Element of the carrier of c1 = c5 * (c4 . a1,a2);
consider c9 being Function of [:the carrier of c2,the carrier of c3:],the carrier of c1 such that
E2: for b1 being Element of the carrier of c2
for b2 being Element of the carrier of c3 holds c9 . b1,b2 = H1(b1,b2) from BINOP_1:sch 4();
reconsider c10 = c9 as Form of c2,c3 ;
take c10 ;
thus for b1 being Vector of c2
for b2 being Vector of c3 holds c10 . b1,b2 = c5 * (c4 . b1,b2) by E2;
end;
uniqueness
for b1, b2 being Form of c2,c3 holds
( ( 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) ) implies b1 = b2 )
proof
let c6, c7 be Form of c2,c3;
assume that
E2: for b1 being Vector of c2
for b2 being Vector of c3 holds c6 . b1,b2 = c5 * (c4 . b1,b2) and
E3: for b1 being Vector of c2
for b2 being Vector of c3 holds c7 . b1,b2 = c5 * (c4 . b1,b2) ;
now
let c8 be Vector of c2;
let c9 be Vector of c3;
thus c6 . c8,c9 = c5 * (c4 . c8,c9) by E2
.= c7 . c8,c9 by E3 ;
end;
hence c6 = c7 by BINOP_1:2;
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
set c5 = the carrier of c2;
set c6 = the carrier of c3;
set c7 = the carrier of c1;
deffunc H1( Element of the carrier of c2, Element of the carrier of c3) -> Element of the carrier of c1 = - (c4 . a1,a2);
consider c8 being Function of [:the carrier of c2,the carrier of c3:],the carrier of c1 such that
E3: for b1 being Element of the carrier of c2
for b2 being Element of the carrier of c3 holds c8 . b1,b2 = H1(b1,b2) from BINOP_1:sch 4();
reconsider c9 = c8 as Form of c2,c3 ;
take c9 ;
thus for b1 being Vector of c2
for b2 being Vector of c3 holds c9 . b1,b2 = - (c4 . b1,b2) by E3;
end;
uniqueness
for b1, b2 being Form of c2,c3 holds
( ( 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) ) implies b1 = b2 )
proof
let c5, c6 be Form of c2,c3;
assume that
E3: for b1 being Vector of c2
for b2 being Vector of c3 holds c5 . b1,b2 = - (c4 . b1,b2) and
E4: for b1 being Vector of c2
for b2 being Vector of c3 holds c6 . b1,b2 = - (c4 . b1,b2) ;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus c5 . c7,c8 = - (c4 . c7,c8) by E3
.= c6 . c7,c8 by E4 ;
end;
hence c5 = c6 by BINOP_1:2;
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
let c5 be Form of c2,c3;
thus ( c5 = - c4 implies c5 = (- (1. c1)) * c4 )
proof
assume E4: c5 = - c4 ;
now
let c6 be Vector of c2;
let c7 be Vector of c3;
thus c5 . c6,c7 = - (c4 . c6,c7) by E4, Def5
.= (- (1. c1)) * (c4 . c6,c7) by MOD_1:14
.= ((- (1. c1)) * c4) . c6,c7 by Def4 ;
end;
hence c5 = (- (1. c1)) * c4 by BINOP_1:2;
end;
assume E4: c5 = (- (1. c1)) * c4 ;
now
let c6 be Vector of c2;
let c7 be Vector of c3;
thus c5 . c6,c7 = (- (1. c1)) * (c4 . c6,c7) by E4, Def4
.= - (c4 . c6,c7) by MOD_1:14
.= (- c4) . c6,c7 by Def5 ;
end;
hence c5 = - c4 by BINOP_1:2;
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
let c6 be Form of c2,c3;
thus ( c6 = c4 - c5 implies for b1 being Vector of c2
for b2 being Vector of c3 holds c6 . b1,b2 = (c4 . b1,b2) - (c5 . b1,b2) )
proof
assume E4: c6 = c4 - c5 ;
let c7 be Vector of c2;
let c8 be Vector of c3;
thus c6 . c7,c8 = (c4 + (- c5)) . c7,c8 by E4
.= (c4 . c7,c8) + ((- c5) . c7,c8) by Def3
.= (c4 . c7,c8) + (- (c5 . c7,c8)) by Def5
.= (c4 . c7,c8) - (c5 . c7,c8) by RLVECT_1:def 11 ;
end;
assume E4: for b1 being Vector of c2
for b2 being Vector of c3 holds c6 . b1,b2 = (c4 . b1,b2) - (c5 . b1,b2) ;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus c6 . c7,c8 = (c4 . c7,c8) - (c5 . c7,c8) by E4
.= (c4 . c7,c8) + (- (c5 . c7,c8)) by RLVECT_1:def 11
.= (c4 . c7,c8) + ((- c5) . c7,c8) by Def5
.= (c4 + (- c5)) . c7,c8 by Def3
.= (c4 - c5) . c7,c8 ;
end;
hence c6 = c4 - c5 by BINOP_1:2;
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 BINOP_1:2;
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:85;

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
let c1 be non empty right_zeroed LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
set c5 = NulForm c2,c3;
now
let c6 be Vector of c2;
let c7 be Vector of c3;
thus (c4 + (NulForm c2,c3)) . c6,c7 = (c4 . c6,c7) + ((NulForm c2,c3) . c6,c7) by Def3
.= (c4 . c6,c7) + (0. c1) by Th1
.= c4 . c6,c7 by RLVECT_1:def 7 ;
end;
hence c4 + (NulForm c2,c3) = c4 by BINOP_1:2;
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
let c1 be non empty add-associative LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5, c6 be Form of c2,c3;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus ((c4 + c5) + c6) . c7,c8 = ((c4 + c5) . c7,c8) + (c6 . c7,c8) by Def3
.= ((c4 . c7,c8) + (c5 . c7,c8)) + (c6 . c7,c8) by Def3
.= (c4 . c7,c8) + ((c5 . c7,c8) + (c6 . c7,c8)) by RLVECT_1:def 6
.= (c4 . c7,c8) + ((c5 + c6) . c7,c8) by Def3
.= (c4 + (c5 + c6)) . c7,c8 by Def3 ;
end;
hence (c4 + c5) + c6 = c4 + (c5 + c6) by BINOP_1:2;
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
let c1 be non empty add-associative right_zeroed right_complementable LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
now
let c5 be Vector of c2;
let c6 be Vector of c3;
thus (c4 - c4) . c5,c6 = (c4 . c5,c6) - (c4 . c5,c6) by Def8
.= 0. c1 by RLVECT_1:28
.= (NulForm c2,c3) . c5,c6 by Th1 ;
end;
hence c4 - c4 = NulForm c2,c3 by BINOP_1:2;
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
let c1 be non empty right-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Element of c1;
let c5, c6 be Form of c2,c3;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus (c4 * (c5 + c6)) . c7,c8 = c4 * ((c5 + c6) . c7,c8) by Def4
.= c4 * ((c5 . c7,c8) + (c6 . c7,c8)) by Def3
.= (c4 * (c5 . c7,c8)) + (c4 * (c6 . c7,c8)) by VECTSP_1:def 11
.= ((c4 * c5) . c7,c8) + (c4 * (c6 . c7,c8)) by Def4
.= ((c4 * c5) . c7,c8) + ((c4 * c6) . c7,c8) by Def4
.= ((c4 * c5) + (c4 * c6)) . c7,c8 by Def3 ;
end;
hence c4 * (c5 + c6) = (c4 * c5) + (c4 * c6) by BINOP_1:2;
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
let c1 be non empty left-distributive doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Element of c1;
let c6 be Form of c2,c3;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus ((c4 + c5) * c6) . c7,c8 = (c4 + c5) * (c6 . c7,c8) by Def4
.= (c4 * (c6 . c7,c8)) + (c5 * (c6 . c7,c8)) by VECTSP_1:def 12
.= ((c4 * c6) . c7,c8) + (c5 * (c6 . c7,c8)) by Def4
.= ((c4 * c6) . c7,c8) + ((c5 * c6) . c7,c8) by Def4
.= ((c4 * c6) + (c5 * c6)) . c7,c8 by Def3 ;
end;
hence (c4 + c5) * c6 = (c4 * c6) + (c5 * c6) by BINOP_1:2;
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
let c1 be non empty associative doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Element of c1;
let c6 be Form of c2,c3;
now
let c7 be Vector of c2;
let c8 be Vector of c3;
thus ((c4 * c5) * c6) . c7,c8 = (c4 * c5) * (c6 . c7,c8) by Def4
.= c4 * (c5 * (c6 . c7,c8)) by GROUP_1:def 4
.= c4 * ((c5 * c6) . c7,c8) by Def4
.= (c4 * (c5 * c6)) . c7,c8 by Def4 ;
end;
hence (c4 * c5) * c6 = c4 * (c5 * c6) by BINOP_1:2;
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
let c1 be non empty left_unital doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
now
let c5 be Vector of c2;
let c6 be Vector of c3;
thus ((1. c1) * c4) . c5,c6 = (1. c1) * (c4 . c5,c6) by Def4
.= c4 . c5,c6 by VECTSP_1:def 19 ;
end;
hence (1. c1) * c4 = c4 by BINOP_1:2;
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 holds
( b1 in the carrier of c3 implies 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 holds
( b1 in the carrier of c2 implies 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
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;
set c6 = FunctionalFAF c4,c5;
E9: ( dom c4 = [:the carrier of c2,the carrier of c3:] & rng c4 c= the carrier of c1 ) by FUNCT_2:def 1;
consider c7 being Function such that
E10: ( (curry c4) . c5 = c7 & dom c7 = the carrier of c3 & rng c7 c= rng c4 ) and
E11: for b1 being set holds
( b1 in the carrier of c3 implies c7 . b1 = c4 . c5,b1 ) by E9, FUNCT_5:36;
thus ( dom (FunctionalFAF c4,c5) = the carrier of c3 & rng (FunctionalFAF c4,c5) c= the carrier of c1 ) by E10;
let c8 be Vector of c3;
thus (FunctionalFAF c4,c5) . c8 = c4 . c5,c8 by E10, E11;
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
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;
set c6 = FunctionalSAF c4,c5;
E10: ( dom c4 = [:the carrier of c2,the carrier of c3:] & rng c4 c= the carrier of c1 ) by FUNCT_2:def 1;
consider c7 being Function such that
E11: ( (curry' c4) . c5 = c7 & dom c7 = the carrier of c2 & rng c7 c= rng c4 ) and
E12: for b1 being set holds
( b1 in the carrier of c2 implies c7 . b1 = c4 . b1,c5 ) by E10, FUNCT_5:39;
thus ( dom (FunctionalSAF c4,c5) = the carrier of c2 & rng (FunctionalSAF c4,c5) c= the carrier of c1 ) by E11;
let c8 be Vector of c2;
thus (FunctionalSAF c4,c5) . c8 = c4 . c8,c5 by E11, E12;
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
let c1 be non empty ZeroStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Vector of c2;
set c5 = NulForm c2,c3;
now
let c6 be Vector of c3;
thus (FunctionalFAF (NulForm c2,c3),c4) . c6 = (NulForm c2,c3) . c4,c6 by Th9
.= 0. c1 by Th1
.= (0Functional c3) . c6 by HAHNBAN1:22 ;
end;
hence FunctionalFAF (NulForm c2,c3),c4 = 0Functional c3 by FUNCT_2:113;
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
let c1 be non empty ZeroStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Vector of c3;
set c5 = NulForm c2,c3;
now
let c6 be Vector of c2;
thus (FunctionalSAF (NulForm c2,c3),c4) . c6 = (NulForm c2,c3) . c6,c4 by Th10
.= 0. c1 by Th1
.= (0Functional c2) . c6 by HAHNBAN1:22 ;
end;
hence FunctionalSAF (NulForm c2,c3),c4 = 0Functional c2 by FUNCT_2:113;
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
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
let c6 be Vector of c3;
now
let c7 be Vector of c2;
thus (FunctionalSAF (c4 + c5),c6) . c7 = (c4 + c5) . c7,c6 by Th10
.= (c4 . c7,c6) + (c5 . c7,c6) by Def3
.= ((FunctionalSAF c4,c6) . c7) + (c5 . c7,c6) by Th10
.= ((FunctionalSAF c4,c6) . c7) + ((FunctionalSAF c5,c6) . c7) by Th10
.= ((FunctionalSAF c4,c6) + (FunctionalSAF c5,c6)) . c7 by HAHNBAN1:def 6 ;
end;
hence FunctionalSAF (c4 + c5),c6 = (FunctionalSAF c4,c6) + (FunctionalSAF c5,c6) by FUNCT_2:113;
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
let c1 be non empty LoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4, c5 be Form of c2,c3;
let c6 be Vector of c2;
now
let c7 be Vector of c3;
thus (FunctionalFAF (c4 + c5),c6) . c7 = (c4 + c5) . c6,c7 by Th9
.= (c4 . c6,c7) + (c5 . c6,c7) by Def3
.= ((FunctionalFAF c4,c6) . c7) + (c5 . c6,c7) by Th9
.= ((FunctionalFAF c4,c6) . c7) + ((FunctionalFAF c5,c6) . c7) by Th9
.= ((FunctionalFAF c4,c6) + (FunctionalFAF c5,c6)) . c7 by HAHNBAN1:def 6 ;
end;
hence FunctionalFAF (c4 + c5),c6 = (FunctionalFAF c4,c6) + (FunctionalFAF c5,c6) by FUNCT_2:113;
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
let c1 be non empty doubleLoopStr ;
let c2, c3 be non empty VectSpStr of c1;
let c4 be Form of c2,c3;
let c5 be Element of c1;
let c6 be Vector of c3;
now
let c7 be Vector of c2;
thus (FunctionalSAF (c5 * c4),c6) . c7 = (c5 * c4) . c7,c6 by Th10
.= c5 * (c4