:: VECTSP10 semantic presentation

definition
let c1 be doubleLoopStr ;
func StructVectSp c1 -> strict VectSpStr of a1 equals :: VECTSP10:def 1
VectSpStr(# the carrier of a1,the add of a1,the Zero of a1,the mult of a1 #);
coherence
VectSpStr(# the carrier of c1,the add of c1,the Zero of c1,the mult of c1 #) is strict VectSpStr of c1
;
end;

:: deftheorem Def1 defines StructVectSp VECTSP10:def 1 :
for b1 being doubleLoopStr holds StructVectSp b1 = VectSpStr(# the carrier of b1,the add of b1,the Zero of b1,the mult of b1 #);

registration
let c1 be non empty doubleLoopStr ;
cluster StructVectSp a1 -> non empty strict ;
coherence
not StructVectSp c1 is empty
;
end;

registration
let c1 be non empty Abelian doubleLoopStr ;
cluster StructVectSp a1 -> non empty Abelian strict ;
coherence
StructVectSp c1 is Abelian
proof end;
end;

registration
let c1 be non empty add-associative doubleLoopStr ;
cluster StructVectSp a1 -> non empty add-associative strict ;
coherence
StructVectSp c1 is add-associative
proof end;
end;

registration
let c1 be non empty right_zeroed doubleLoopStr ;
cluster StructVectSp a1 -> non empty right_zeroed strict ;
coherence
StructVectSp c1 is right_zeroed
proof end;
end;

registration
let c1 be non empty right_complementable doubleLoopStr ;
cluster StructVectSp a1 -> non empty right_complementable strict ;
coherence
StructVectSp c1 is right_complementable
proof end;
end;

registration
let c1 be non empty associative distributive left_unital doubleLoopStr ;
cluster StructVectSp a1 -> non empty strict VectSp-like ;
coherence
StructVectSp c1 is VectSp-like
proof end;
end;

registration
let c1 be non empty non degenerated doubleLoopStr ;
cluster StructVectSp a1 -> non empty strict non trivial ;
coherence
not StructVectSp c1 is trivial
proof end;
end;

registration
let c1 be non empty non degenerated doubleLoopStr ;
cluster non empty non trivial VectSpStr of a1;
existence
not for b1 being non empty VectSpStr of c1 holds b1 is trivial
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable doubleLoopStr ;
cluster non empty add-associative right_zeroed right_complementable strict VectSpStr of a1;
correctness
existence
ex b1 being non empty VectSpStr of c1 st
( b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is strict )
;
proof end;
end;

registration
let c1 be non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
cluster non empty add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of a1;
correctness
existence
ex b1 being non empty VectSpStr of c1 st
( b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is VectSp-like & b1 is strict )
;
proof end;
end;

registration
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital non degenerated doubleLoopStr ;
cluster non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like non trivial VectSpStr of a1;
existence
ex b1 being non empty VectSpStr of c1 st
( b1 is Abelian & b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is VectSp-like & b1 is strict & not b1 is trivial )
proof end;
end;

theorem Th1: :: VECTSP10:1
canceled;

theorem Th2: :: VECTSP10:2
for b1 being non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being Element of b1
for b3 being non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b4 being Vector of b3 holds
( (0. b1) * b4 = 0. b3 & b2 * (0. b3) = 0. b3 )
proof end;

theorem Th3: :: VECTSP10:3
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, b4 being Subspace of b2
for b5 being Vector of b2 st b3 /\ b4 = (0). b2 & b5 in b3 & b5 in b4 holds
b5 = 0. b2
proof end;

theorem Th4: :: VECTSP10:4
for b1 being Field
for b2 being VectSp of b1
for b3 being set
for b4 being Vector of b2 holds
( b3 in Lin {b4} iff ex b5 being Element of b1 st b3 = b5 * b4 )
proof end;

theorem Th5: :: VECTSP10:5
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4, b5 being Scalar of st b3 <> 0. b2 & b4 * b3 = b5 * b3 holds
b4 = b5
proof end;

theorem Th6: :: VECTSP10:6
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5, b6, b7 being Vector of b2 st b6 in b3 & b7 in b4 & b5 = b6 + b7 holds
b5 |-- b3,b4 = [b6,b7]
proof end;

theorem Th7: :: VECTSP10:7
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5, b6, b7 being Vector of b2 st b5 |-- b3,b4 = [b6,b7] holds
b5 = b6 + b7
proof end;

theorem Th8: :: VECTSP10:8
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5, b6, b7 being Vector of b2 st b5 |-- b3,b4 = [b6,b7] holds
( b6 in b3 & b7 in b4 )
proof end;

theorem Th9: :: VECTSP10:9
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5, b6, b7 being Vector of b2 st b5 |-- b3,b4 = [b6,b7] holds
b5 |-- b4,b3 = [b7,b6]
proof end;

theorem Th10: :: VECTSP10:10
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5 being Vector of b2 st b5 in b3 holds
b5 |-- b3,b4 = [b5,(0. b2)]
proof end;

theorem Th11: :: VECTSP10:11
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, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
for b5 being Vector of b2 st b5 in b4 holds
b5 |-- b3,b4 = [(0. b2),b5]
proof end;

theorem Th12: :: VECTSP10:12
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 Subspace of b2
for b4 being Subspace of b3
for b5 being Vector of b2 st b5 in b4 holds
b5 is Vector of b3
proof end;

theorem Th13: :: VECTSP10:13
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, b4, b5 being Subspace of b2
for b6, b7 being Subspace of b5 st b6 = b3 & b7 = b4 holds
b6 + b7 = b3 + b4
proof end;

theorem Th14: :: VECTSP10:14
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Vector of b2
for b5 being Vector of b3 st b4 = b5 holds
Lin {b5} = Lin {b4}
proof end;

theorem Th15: :: VECTSP10:15
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2 st not b3 in b4 holds
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b6 = b4 holds
b4 + (Lin {b3}) is_the_direct_sum_of b6, Lin {b5}
proof end;

theorem Th16: :: VECTSP10:16
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b4 = b6 & not b3 in b4 holds
b5 |-- b6,(Lin {b5}) = [(0. b6),b5]
proof end;

theorem Th17: :: VECTSP10:17
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b4 = b6 & not b3 in b4 holds
for b7 being Vector of (b4 + (Lin {b3})) st b7 in b4 holds
b7 |-- b6,(Lin {b5}) = [b7,(0. b2)]
proof end;

theorem Th18: :: VECTSP10:18
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 Vector of b2
for b4, b5 being Subspace of b2 ex b6, b7 being Vector of b2 st b3 |-- b4,b5 = [b6,b7]
proof end;

theorem Th19: :: VECTSP10:19
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b4 = b6 & not b3 in b4 holds
for b7 being Vector of (b4 + (Lin {b3})) ex b8 being Vector of b4ex b9 being Element of b1 st b7 |-- b6,(Lin {b5}) = [b8,(b9 * b3)]
proof end;

theorem Th20: :: VECTSP10:20
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b4 = b6 & not b3 in b4 holds
for b7, b8 being Vector of (b4 + (Lin {b3}))
for b9, b10 being Vector of b4
for b11, b12 being Element of b1 st b7 |-- b6,(Lin {b5}) = [b9,(b11 * b3)] & b8 |-- b6,(Lin {b5}) = [b10,(b12 * b3)] holds
(b7 + b8) |-- b6,(Lin {b5}) = [(b9 + b10),((b11 + b12) * b3)]
proof end;

theorem Th21: :: VECTSP10:21
for b1 being Field
for b2 being VectSp of b1
for b3 being Vector of b2
for b4 being Subspace of b2
for b5 being Vector of (b4 + (Lin {b3}))
for b6 being Subspace of b4 + (Lin {b3}) st b3 = b5 & b4 = b6 & not b3 in b4 holds
for b7 being Vector of (b4 + (Lin {b3}))
for b8 being Vector of b4
for b9, b10 being Element of b1 st b7 |-- b6,(Lin {b5}) = [b8,(b10 * b3)] holds
(b9 * b7) |-- b6,(Lin {b5}) = [(b9 * b8),((b9 * b10) * b3)]
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 Subspace of c2;
func CosetSet c2,c3 -> non empty Subset-Family of a2 equals :: VECTSP10:def 2
{ b1 where B is Coset of a3 : verum } ;
correctness
coherence
{ b1 where B is Coset of c3 : verum } is non empty Subset-Family of c2
;
proof end;
end;

:: deftheorem Def2 defines CosetSet VECTSP10:def 2 :
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 Subspace of b2 holds CosetSet b2,b3 = { b4 where B is Coset of b3 : verum } ;

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 Subspace of c2;
func addCoset c2,c3 -> BinOp of CosetSet a2,a3 means :Def3: :: VECTSP10:def 3
for b1, b2 being Element of CosetSet a2,a3
for b3, b4 being Vector of a2 st b1 = b3 + a3 & b2 = b4 + a3 holds
a4 . b1,b2 = (b3 + b4) + a3;
existence
ex b1 being BinOp of CosetSet c2,c3 st
for b2, b3 being Element of CosetSet c2,c3
for b4, b5 being Vector of c2 st b2 = b4 + c3 & b3 = b5 + c3 holds
b1 . b2,b3 = (b4 + b5) + c3
proof end;
uniqueness
for b1, b2 being BinOp of CosetSet c2,c3 st ( for b3, b4 being Element of CosetSet c2,c3
for b5, b6 being Vector of c2 st b3 = b5 + c3 & b4 = b6 + c3 holds
b1 . b3,b4 = (b5 + b6) + c3 ) & ( for b3, b4 being Element of CosetSet c2,c3
for b5, b6 being Vector of c2 st b3 = b5 + c3 & b4 = b6 + c3 holds
b2 . b3,b4 = (b5 + b6) + c3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines addCoset VECTSP10:def 3 :
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 Subspace of b2
for b4 being BinOp of CosetSet b2,b3 holds
( b4 = addCoset b2,b3 iff for b5, b6 being Element of CosetSet b2,b3
for b7, b8 being Vector of b2 st b5 = b7 + b3 & b6 = b8 + b3 holds
b4 . b5,b6 = (b7 + b8) + b3 );

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 Subspace of c2;
func zeroCoset c2,c3 -> Element of CosetSet a2,a3 equals :: VECTSP10:def 4
the carrier of a3;
coherence
the carrier of c3 is Element of CosetSet c2,c3
proof end;
end;

:: deftheorem Def4 defines zeroCoset VECTSP10:def 4 :
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 Subspace of b2 holds zeroCoset b2,b3 = the carrier of b3;

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 Subspace of c2;
func lmultCoset c2,c3 -> Function of [:the carrier of a1,(CosetSet a2,a3):], CosetSet a2,a3 means :Def5: :: VECTSP10:def 5
for b1 being Element of a1
for b2 being Element of CosetSet a2,a3
for b3 being Vector of a2 st b2 = b3 + a3 holds
a4 . b1,b2 = (b1 * b3) + a3;
existence
ex b1 being Function of [:the carrier of c1,(CosetSet c2,c3):], CosetSet c2,c3 st
for b2 being Element of c1
for b3 being Element of CosetSet c2,c3
for b4 being Vector of c2 st b3 = b4 + c3 holds
b1 . b2,b3 = (b2 * b4) + c3
proof end;
uniqueness
for b1, b2 being Function of [:the carrier of c1,(CosetSet c2,c3):], CosetSet c2,c3 st ( for b3 being Element of c1
for b4 being Element of CosetSet c2,c3
for b5 being Vector of c2 st b4 = b5 + c3 holds
b1 . b3,b4 = (b3 * b5) + c3 ) & ( for b3 being Element of c1
for b4 being Element of CosetSet c2,c3
for b5 being Vector of c2 st b4 = b5 + c3 holds
b2 . b3,b4 = (b3 * b5) + c3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines lmultCoset VECTSP10:def 5 :
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 Subspace of b2
for b4 being Function of [:the carrier of b1,(CosetSet b2,b3):], CosetSet b2,b3 holds
( b4 = lmultCoset b2,b3 iff for b5 being Element of b1
for b6 being Element of CosetSet b2,b3
for b7 being Vector of b2 st b6 = b7 + b3 holds
b4 . b5,b6 = (b5 * b7) + b3 );

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 Subspace of c2;
func VectQuot c2,c3 -> non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of a1 means :Def6: :: VECTSP10:def 6
( the carrier of a4 = CosetSet a2,a3 & the add of a4 = addCoset a2,a3 & the Zero of a4 = zeroCoset a2,a3 & the lmult of a4 = lmultCoset a2,a3 );
existence
ex b1 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of c1 st
( the carrier of b1 = CosetSet c2,c3 & the add of b1 = addCoset c2,c3 & the Zero of b1 = zeroCoset c2,c3 & the lmult of b1 = lmultCoset c2,c3 )
proof end;
uniqueness
for b1, b2 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of c1 st the carrier of b1 = CosetSet c2,c3 & the add of b1 = addCoset c2,c3 & the Zero of b1 = zeroCoset c2,c3 & the lmult of b1 = lmultCoset c2,c3 & the carrier of b2 = CosetSet c2,c3 & the add of b2 = addCoset c2,c3 & the Zero of b2 = zeroCoset c2,c3 & the lmult of b2 = lmultCoset c2,c3 holds
b1 = b2
;
end;

:: deftheorem Def6 defines VectQuot VECTSP10:def 6 :
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 Subspace of b2
for b4 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of b1 holds
( b4 = VectQuot b2,b3 iff ( the carrier of b4 = CosetSet b2,b3 & the add of b4 = addCoset b2,b3 & the Zero of b4 = zeroCoset b2,b3 & the lmult of b4 = lmultCoset b2,b3 ) );

theorem Th22: :: VECTSP10:22
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 Subspace of b2 holds
( zeroCoset b2,b3 = (0. b2) + b3 & 0. (VectQuot b2,b3) = zeroCoset b2,b3 )
proof end;

theorem Th23: :: VECTSP10:23
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 Subspace of b2
for b4 being Vector of (VectQuot b2,b3) holds
( b4 is Coset of b3 & ex b5 being Vector of b2 st b4 = b5 + b3 )
proof end;

theorem Th24: :: VECTSP10:24
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 Subspace of b2
for b4 being Vector of b2 holds
( b4 + b3 is Coset of b3 & b4 + b3 is Vector of (VectQuot b2,b3) )
proof end;

theorem Th25: :: VECTSP10:25
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 Subspace of b2
for b4 being Coset of b3 holds b4 is Vector of (VectQuot b2,b3)
proof end;

theorem Th26: :: VECTSP10:26
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 Subspace of b2
for b4 being Vector of (VectQuot b2,b3)
for b5 being Vector of b2
for b6 being Scalar of st b4 = b5 + b3 holds
b6 * b4 = (b6 * b5) + b3
proof end;

theorem Th27: :: VECTSP10:27
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 Subspace of b2
for b4, b5 being Vector of (VectQuot b2,b3)
for b6, b7 being Vector of b2 st b4 = b6 + b3 & b5 = b7 + b3 holds
b4 + b5 = (b6 + b7) + b3
proof end;

theorem Th28: :: VECTSP10:28
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being linear-Functional of b3
for b5 being Vector of b2
for b6 being Vector of (b3 + (Lin {b5})) st b5 = b6 & not b5 in b3 holds
for b7 being Element of b1 ex b8 being linear-Functional of (b3 + (Lin {b5})) st
( b8 | the carrier of b3 = b4 & b8 . b6 = b7 )
proof end;

registration
let c1 be non empty right_zeroed LoopStr ;
let c2 be non empty VectSpStr of c1;
cluster additive 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 0-preserving )
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;
cluster additive -> 0-preserving Relation of the carrier of a2,the carrier of a1;
coherence
for b1 being Functional of c2 st b1 is additive holds
b1 is 0-preserving
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;
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 ZeroStr ;
let c2 be non empty VectSpStr of c1;
cluster 0Functional a2 -> constant ;
coherence
0Functional c2 is constant
proof end;
end;

registration
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
cluster constant Relation of the carrier of a2,the carrier of a1;
existence
ex b1 being Functional of c2 st b1 is constant
proof end;
end;

definition
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 0-preserving Functional of c2;
redefine attr constant as a3 is constant means :Def7: :: VECTSP10:def 7
a3 = 0Functional a2;
compatibility
( c3 is constant iff c3 = 0Functional c2 )
proof end;
end;

:: deftheorem Def7 defines constant VECTSP10:def 7 :
for b1 being non empty add-associative right_zeroed right_complementable doubleLoopStr
for b2 being non empty right_zeroed VectSpStr of b1
for b3 being 0-preserving Functional of b2 holds
( b3 is constant iff b3 = 0Functional b2 );

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

registration
let c1 be non empty 1-sorted ;
let c2 be non empty VectSpStr of c1;
cluster non constant -> non trivial Relation of the carrier of a2,the carrier of a1;
coherence
for b1 being Functional of c2 st not b1 is constant holds
not b1 is trivial
proof end;
end;

registration
let c1 be Field;
let c2 be non trivial VectSp of c1;
cluster non constant additive homogeneous 0-preserving non trivial Relation of the carrier of a2,the carrier of a1;
existence
ex b1 being Functional of c2 st
( b1 is additive & b1 is homogeneous & not b1 is constant & not b1 is trivial )
proof end;
end;

registration
let c1 be Field;
let c2 be non trivial VectSp of c1;
cluster trivial -> constant Relation of the carrier of a2,the carrier of a1;
coherence
for b1 being Functional of c2 st b1 is trivial holds
b1 is constant
proof end;
end;

definition
let c1 be Field;
let c2 be non trivial VectSp of c1;
let c3 be Vector of c2;
let c4 be Linear_Compl of Lin {c3};
assume E28: c3 <> 0. c2 ;
func coeffFunctional c3,c4 -> V71 non trivial linear-Functional of a2 means :Def8: :: VECTSP10:def 8
( a5 . a3 = 1. a1 & a5 | the carrier of a4 = 0Functional a4 );
existence
ex b1 being V71 non trivial linear-Functional of c2 st
( b1 . c3 = 1. c1 & b1 | the carrier of c4 = 0Functional c4 )
proof end;
uniqueness
for b1, b2 being V71 non trivial linear-Functional of c2 st b1 . c3 = 1. c1 & b1 | the carrier of c4 = 0Functional c4 & b2 . c3 = 1. c1 & b2 | the carrier of c4 = 0Functional c4 holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines coeffFunctional VECTSP10:def 8 :
for b1 being Field
for b2 being non trivial VectSp of b1
for b3 being Vector of b2
for b4 being Linear_Compl of Lin {b3} st b3 <> 0. b2 holds
for b5 being V71 non trivial linear-Functional of b2 holds
( b5 = coeffFunctional b3,b4 iff ( b5 . b3 = 1. b1 & b5 | the carrier of b4 = 0Functional b4 ) );

theorem Th29: :: VECTSP10:29
for b1 being Field
for b2 being non trivial VectSp of b1
for b3 being non constant 0-preserving Functional of b2 ex b4 being Vector of b2 st
( b4 <> 0. b2 & b3 . b4 <> 0. b1 )
proof end;

theorem Th30: :: VECTSP10:30
for b1 being Field
for b2 being non trivial VectSp of b1
for b3 being Vector of b2
for b4 being Scalar of
for b5 being Linear_Compl of Lin {b3} st b3 <> 0. b2 holds
(coeffFunctional b3,b5) . (b4 * b3) = b4
proof end;

theorem Th31: :: VECTSP10:31
for b1 being Field
for b2 being non trivial VectSp of b1
for b3, b4 being Vector of b2
for b5 being Linear_Compl of Lin {b3} st b3 <> 0. b2 & b4 in b5 holds
(coeffFunctional b3,b5) . b4 = 0. b1
proof end;

theorem Th32: :: VECTSP10:32
for b1 being Field
for b2 being non trivial VectSp of b1
for b3, b4 being Vector of b2
for b5 being Scalar of
for b6 being Linear_Compl of Lin {b3} st b3 <> 0. b2 & b4 in b6 holds
(coeffFunctional b3,b6) . ((b5 * b3) + b4) = b5
proof end;

theorem Th33: :: VECTSP10:33
for b1 being non empty LoopStr
for b2 being non empty VectSpStr of b1
for b3, b4 being Functional of b2
for b5 being Vector of b2 holds (b3 - b4) . b5 = (b3 . b5) - (b4 . b5)
proof end;

registration
let c1 be Field;
let c2 be non trivial VectSp of c1;
cluster a2 *' -> non trivial ;
coherence
not c2 *' is trivial
proof end;
end;

definition
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
func ker c3 -> Subset of a2 equals :: VECTSP10:def 9
{ b1 where B is Vector of a2 : a3 . b1 = 0. a1 } ;
coherence
{ b1 where B is Vector of c2 : c3 . b1 = 0. c1 } is Subset of c2
proof end;
end;

:: deftheorem Def9 defines ker VECTSP10:def 9 :
for b1 being non empty ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds ker b3 = { b4 where B is Vector of b2 : b3 . b4 = 0. b1 } ;

registration
let c1 be non empty right_zeroed LoopStr ;
let c2 be non empty VectSpStr of c1;
let c3 be 0-preserving Functional of c2;
cluster ker a3 -> non empty ;
coherence
not ker c3 is empty
proof end;
end;

theorem Th34: :: VECTSP10:34
for b1 being non empty add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being linear-Functional of b2 holds ker b3 is lineary-closed
proof end;

definition
let c1 be non empty ZeroStr ;
let c2 be non empty VectSpStr of c1;
let c3 be Functional of c2;
attr a3 is degenerated means :Def10: :: VECTSP10:def 10
ker a3 <> {(0. a2)};
end;

:: deftheorem Def10 defines degenerated VECTSP10:def 10 :
for b1 being non empty ZeroStr
for b2 being non empty VectSpStr of b1
for b3 being Functional of b2 holds
( b3 is degenerated iff ker b3 <> {(0. b2)} );

registration
let c1 be non empty non degenerated doubleLoopStr ;
let c2 be non empty non trivial VectSpStr of c1;
cluster 0-preserving non degenerated -> non constant non trivial Relation of the carrier of a2,the carrier of a1;
coherence
for b1 being Functional of c2 st not b1 is degenerated & b1 is 0-preserving holds
not b1 is constant
proof end;
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 linear-Functional of c2;
func Ker c3 -> non empty strict Subspace of a2 means :Def11: :: VECTSP10:def 11
the carrier of a4 = ker a3;
existence
ex b1 being non empty strict Subspace of c2 st the carrier of b1 = ker c3
proof end;
uniqueness
for b1, b2 being non empty strict Subspace of c2 st the carrier of b1 = ker c3 & the carrier of b2 = ker c3 holds
b1 = b2
by VECTSP_4:37;
end;

:: deftheorem Def11 defines Ker VECTSP10:def 11 :
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 linear-Functional of b2
for b4 being non empty strict Subspace of b2 holds
( b4 = Ker b3 iff the carrier of b4 = ker b3 );

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 Subspace of c2;
let c4 be additive Functional of c2;
assume E35: the carrier of c3 c= ker c4 ;
func QFunctional c4,c3 -> additive Functional of (VectQuot a2,a3) means :Def12: :: VECTSP10:def 12
for b1 being Vector of (VectQuot a2,a3)
for b2 being Vector of a2 st b1 = b2 + a3 holds
a5 . b1 = a4 . b2;
existence
ex b1 being additive Functional of (VectQuot c2,c3) st
for b2 being Vector of (VectQuot c2,c3)
for b3 being Vector of c2 st b2 = b3 + c3 holds
b1 . b2 = c4 . b3
proof end;
uniqueness
for b1, b2 being additive Functional of (VectQuot c2,c3) st ( for b3 being Vector of (VectQuot c2,c3)
for b4 being Vector of c2 st b3 = b4 + c3 holds
b1 . b3 = c4 . b4 ) & ( for b3 being Vector of (VectQuot c2,c3)
for b4 being Vector of c2 st b3 = b4 + c3 holds
b2 . b3 = c4 . b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def12 defines QFunctional VECTSP10:def 12 :
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 Subspace of b2
for b4 being additive Functional of b2 st the carrier of b3 c= ker b4 holds
for b5 being additive Functional of (VectQuot b2,b3) holds
( b5 = QFunctional b4,b3 iff for b6 being Vector of (VectQuot b2,b3)
for b7 being Vector of b2 st b6 = b7 + b3 holds
b5 . b6 = b4 . b7 );

theorem Th35: :: VECTSP10:35
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 Subspace of b2
for b4 being linear-Functional of b2 st the carrier of b3 c= ker b4 holds
QFunctional b4,b3 is homogeneous
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 linear-Functional of c2;
func CQFunctional c3 -> linear-Functional of (VectQuot a2,(Ker a3)) equals :: VECTSP10:def 13
QFunctional a3,(Ker a3);
correctness
coherence
QFunctional c3,(Ker c3) is linear-Functional of (VectQuot c2,(Ker c3))
;
proof end;
end;

:: deftheorem Def13 defines CQFunctional VECTSP10:def 13 :
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 linear-Functional of b2 holds CQFunctional b3 = QFunctional b3,(Ker b3);

theorem Th36: :: VECTSP10:36
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 linear-Functional of b2
for b4 being Vector of (VectQuot b2,(Ker b3))
for b5 being Vector of b2 st b4 = b5 + (Ker b3) holds
(CQFunctional b3) . b4 = b3 . b5
proof end;

registration
let c1 be Field;
let c2 be non trivial VectSp of c1;
let c3 be V71 linear-Functional of c2;
cluster CQFunctional a3 -> V71 0-preserving non trivial ;
coherence
not CQFunctional c3 is constant
proof end;
end;

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 linear-Functional of c2;
cluster CQFunctional a3 -> 0-preserving non degenerated ;
coherence
not CQFunctional c3 is degenerated
proof end;
end;