:: VECTSP_5 semantic presentation

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3, c4 be Subspace of c2;
func c3 + c4 -> strict Subspace of a2 means :Def1: :: VECTSP_5:def 1
the carrier of a5 = { (b1 + b2) where B is Element of a2, B is Element of a2 : ( b1 in a3 & b2 in a4 ) } ;
existence
ex b1 being strict Subspace of c2 st the carrier of b1 = { (b2 + b3) where B is Element of c2, B is Element of c2 : ( b2 in c3 & b3 in c4 ) }
proof end;
uniqueness
for b1, b2 being strict Subspace of c2 st the carrier of b1 = { (b3 + b4) where B is Element of c2, B is Element of c2 : ( b3 in c3 & b4 in c4 ) } & the carrier of b2 = { (b3 + b4) where B is Element of c2, B is Element of c2 : ( b3 in c3 & b4 in c4 ) } holds
b1 = b2
by VECTSP_4:37;
end;

:: deftheorem Def1 defines + VECTSP_5:def 1 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being strict Subspace of b2 holds
( b5 = b3 + b4 iff the carrier of b5 = { (b6 + b7) where B is Element of b2, B is Element of b2 : ( b6 in b3 & b7 in b4 ) } );

Lemma2: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds b3 + b4 = b4 + b3
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3, c4 be Subspace of c2;
func c3 /\ c4 -> strict Subspace of a2 means :Def2: :: VECTSP_5:def 2
the carrier of a5 = the carrier of a3 /\ the carrier of a4;
existence
ex b1 being strict Subspace of c2 st the carrier of b1 = the carrier of c3 /\ the carrier of c4
proof end;
uniqueness
for b1, b2 being strict Subspace of c2 st the carrier of b1 = the carrier of c3 /\ the carrier of c4 & the carrier of b2 = the carrier of c3 /\ the carrier of c4 holds
b1 = b2
by VECTSP_4:37;
commutativity
for b1 being strict Subspace of c2
for b2, b3 being Subspace of c2 st the carrier of b1 = the carrier of b2 /\ the carrier of b3 holds
the carrier of b1 = the carrier of b3 /\ the carrier of b2
;
end;

:: deftheorem Def2 defines /\ VECTSP_5:def 2 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being strict Subspace of b2 holds
( b5 = b3 /\ b4 iff the carrier of b5 = the carrier of b3 /\ the carrier of b4 );

theorem Th1: :: VECTSP_5:1
canceled;

theorem Th2: :: VECTSP_5:2
canceled;

theorem Th3: :: VECTSP_5:3
canceled;

theorem Th4: :: VECTSP_5:4
canceled;

theorem Th5: :: VECTSP_5:5
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being set holds
( b5 in b3 + b4 iff ex b6, b7 being Element of b2 st
( b6 in b3 & b7 in b4 & b5 = b6 + b7 ) )
proof end;

theorem Th6: :: VECTSP_5:6
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being Element of b2 st ( b5 in b3 or b5 in b4 ) holds
b5 in b3 + b4
proof end;

theorem Th7: :: VECTSP_5:7
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being set holds
( b5 in b3 /\ b4 iff ( b5 in b3 & b5 in b4 ) )
proof end;

Lemma7: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds the carrier of b3 c= the carrier of (b3 + b4)
proof end;

Lemma8: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2
for b4 being strict Subspace of b2 st the carrier of b3 c= the carrier of b4 holds
b3 + b4 = b4
proof end;

theorem Th8: :: VECTSP_5:8
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being strict Subspace of b2 holds b3 + b3 = b3 by Lemma8;

theorem Th9: :: VECTSP_5:9
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds b3 + b4 = b4 + b3 by Lemma2;

theorem Th10: :: VECTSP_5:10
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds b3 + (b4 + b5) = (b3 + b4) + b5
proof end;

theorem Th11: :: VECTSP_5:11
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b3 is Subspace of b3 + b4 & b4 is Subspace of b3 + b4 )
proof end;

theorem Th12: :: VECTSP_5:12
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2
for b4 being strict Subspace of b2 holds
( b3 is Subspace of b4 iff b3 + b4 = b4 )
proof end;

theorem Th13: :: VECTSP_5:13
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being strict Subspace of b2 holds
( ((0). b2) + b3 = b3 & b3 + ((0). b2) = b3 )
proof end;

Lemma13: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2 ex b4 being strict Subspace of b2 st the carrier of b3 = the carrier of b4
proof end;

Lemma14: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st the carrier of b3 = the carrier of b4 holds
( b5 + b3 = b5 + b4 & b3 + b5 = b4 + b5 )
proof end;

Lemma15: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2 holds b3 is Subspace of (Omega). b2
proof end;

theorem Th14: :: VECTSP_5:14
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds
( ((0). b2) + ((Omega). b2) = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) & ((Omega). b2) + ((0). b2) = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) ) by Th13;

theorem Th15: :: VECTSP_5:15
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2 holds
( ((Omega). b2) + b3 = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) & b3 + ((Omega). b2) = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) )
proof end;

theorem Th16: :: VECTSP_5:16
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of b1 holds ((Omega). b2) + ((Omega). b2) = b2 by Th15;

theorem Th17: :: VECTSP_5:17
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being strict Subspace of b2 holds b3 /\ b3 = b3
proof end;

theorem Th18: :: VECTSP_5:18
canceled;

theorem Th19: :: VECTSP_5:19
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds b3 /\ (b4 /\ b5) = (b3 /\ b4) /\ b5
proof end;

Lemma19: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds the carrier of (b3 /\ b4) c= the carrier of b3
proof end;

theorem Th20: :: VECTSP_5:20
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b3 /\ b4 is Subspace of b3 & b3 /\ b4 is Subspace of b4 )
proof end;

Lemma21: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st the carrier of b3 = the carrier of b4 holds
( b5 /\ b3 = b5 /\ b4 & b3 /\ b5 = b4 /\ b5 )
proof end;

theorem Th21: :: VECTSP_5:21
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2 holds
( ( for b4 being strict Subspace of b2 st b4 is Subspace of b3 holds
b4 /\ b3 = b4 ) & ( for b4 being Subspace of b2 st b4 /\ b3 = b4 holds
b4 is Subspace of b3 ) )
proof end;

theorem Th22: :: VECTSP_5:22
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
b3 /\ b5 is Subspace of b4 /\ b5
proof end;

theorem Th23: :: VECTSP_5:23
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
b3 /\ b5 is Subspace of b4
proof end;

theorem Th24: :: VECTSP_5:24
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 & b3 is Subspace of b5 holds
b3 is Subspace of b4 /\ b5
proof end;

theorem Th25: :: VECTSP_5:25
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2 holds
( ((0). b2) /\ b3 = (0). b2 & b3 /\ ((0). b2) = (0). b2 )
proof end;

theorem Th26: :: VECTSP_5:26
canceled;

theorem Th27: :: VECTSP_5:27
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being strict Subspace of b2 holds
( ((Omega). b2) /\ b3 = b3 & b3 /\ ((Omega). b2) = b3 )
proof end;

theorem Th28: :: VECTSP_5:28
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of b1 holds ((Omega). b2) /\ ((Omega). b2) = b2 by Th27;

Lemma25: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds the carrier of (b3 /\ b4) c= the carrier of (b3 + b4)
proof end;

theorem Th29: :: VECTSP_5:29
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds b3 /\ b4 is Subspace of b3 + b4
proof end;

Lemma26: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds the carrier of ((b3 /\ b4) + b4) = the carrier of b4
proof end;

theorem Th30: :: VECTSP_5:30
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2
for b4 being strict Subspace of b2 holds (b3 /\ b4) + b4 = b4
proof end;

Lemma28: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds the carrier of (b3 /\ (b3 + b4)) = the carrier of b3
proof end;

theorem Th31: :: VECTSP_5:31
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2
for b4 being strict Subspace of b2 holds b4 /\ (b4 + b3) = b4
proof end;

Lemma30: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds the carrier of ((b3 /\ b4) + (b4 /\ b5)) c= the carrier of (b4 /\ (b3 + b5))
proof end;

theorem Th32: :: VECTSP_5:32
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds (b3 /\ b4) + (b4 /\ b5) is Subspace of b4 /\ (b3 + b5)
proof end;

Lemma31: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
the carrier of (b4 /\ (b3 + b5)) = the carrier of ((b3 /\ b4) + (b4 /\ b5))
proof end;

theorem Th33: :: VECTSP_5:33
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
b4 /\ (b3 + b5) = (b3 /\ b4) + (b4 /\ b5)
proof end;

Lemma33: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds the carrier of (b3 + (b4 /\ b5)) c= the carrier of ((b4 + b3) /\ (b3 + b5))
proof end;

theorem Th34: :: VECTSP_5:34
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 holds b3 + (b4 /\ b5) is Subspace of (b4 + b3) /\ (b3 + b5)
proof end;

Lemma34: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
the carrier of (b4 + (b3 /\ b5)) = the carrier of ((b3 + b4) /\ (b4 + b5))
proof end;

theorem Th35: :: VECTSP_5:35
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
b4 + (b3 /\ b5) = (b3 + b4) /\ (b4 + b5)
proof end;

theorem Th36: :: VECTSP_5:36
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being strict Subspace of b2 st b5 is Subspace of b3 holds
b5 + (b4 /\ b3) = (b5 + b4) /\ b3
proof end;

theorem Th37: :: VECTSP_5:37
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being strict Subspace of b2 holds
( b3 + b4 = b4 iff b3 /\ b4 = b3 )
proof end;

theorem Th38: :: VECTSP_5:38
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Subspace of b2
for b4, b5 being strict Subspace of b2 st b3 is Subspace of b4 holds
b3 + b5 is Subspace of b4 + b5
proof end;

theorem Th39: :: VECTSP_5:39
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 holds
b3 is Subspace of b4 + b5
proof end;

theorem Th40: :: VECTSP_5:40
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4, b5 being Subspace of b2 st b3 is Subspace of b4 & b5 is Subspace of b4 holds
b3 + b5 is Subspace of b4
proof end;

theorem Th41: :: VECTSP_5:41
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( ( b3 is Subspace of b4 or b4 is Subspace of b3 ) iff ex b5 being Subspace of b2 st the carrier of b5 = the carrier of b3 \/ the carrier of b4 )
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
func Subspaces c2 -> set means :Def3: :: VECTSP_5:def 3
for b1 being set holds
( b1 in a3 iff ex b2 being strict Subspace of a2 st b2 = b1 );
existence
ex b1 being set st
for b2 being set holds
( b2 in b1 iff ex b3 being strict Subspace of c2 st b3 = b2 )
proof end;
uniqueness
for b1, b2 being set st ( for b3 being set holds
( b3 in b1 iff ex b4 being strict Subspace of c2 st b4 = b3 ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being strict Subspace of c2 st b4 = b3 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Subspaces VECTSP_5:def 3 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being set holds
( b3 = Subspaces b2 iff for b4 being set holds
( b4 in b3 iff ex b5 being strict Subspace of b2 st b5 = b4 ) );

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

theorem Th42: :: VECTSP_5:42
canceled;

theorem Th43: :: VECTSP_5:43
canceled;

theorem Th44: :: VECTSP_5:44
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of b1 holds b2 in Subspaces b2
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3, c4 be Subspace of c2;
pred c2 is_the_direct_sum_of c3,c4 means :Def4: :: VECTSP_5:def 4
( VectSpStr(# the carrier of a2,the add of a2,the Zero of a2,the lmult of a2 #) = a3 + a4 & a3 /\ a4 = (0). a2 );
end;

:: deftheorem Def4 defines is_the_direct_sum_of VECTSP_5:def 4 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b2 is_the_direct_sum_of b3,b4 iff ( VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) = b3 + b4 & b3 /\ b4 = (0). b2 ) );

Lemma38: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b3 + b4 = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) iff for b5 being Element of b2 ex b6, b7 being Element of b2 st
( b6 in b3 & b7 in b4 & b5 = b6 + b7 ) )
proof end;

definition
let c1 be Field;
let c2 be VectSp of c1;
let c3 be Subspace of c2;
mode Linear_Compl of c3 -> Subspace of a2 means :Def5: :: VECTSP_5:def 5
a2 is_the_direct_sum_of a4,a3;
existence
ex b1 being Subspace of c2 st c2 is_the_direct_sum_of b1,c3
proof end;
end;

:: deftheorem Def5 defines Linear_Compl VECTSP_5:def 5 :
for b1 being Field
for b2 being VectSp of b1
for b3, b4 being Subspace of b2 holds
( b4 is Linear_Compl of b3 iff b2 is_the_direct_sum_of b4,b3 );

Lemma40: for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
b2 is_the_direct_sum_of b4,b3
proof end;

theorem Th45: :: VECTSP_5:45
canceled;

theorem Th46: :: VECTSP_5:46
canceled;

theorem Th47: :: VECTSP_5:47
for b1 being Field
for b2 being VectSp of b1
for b3, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
b4 is Linear_Compl of b3
proof end;

theorem Th48: :: VECTSP_5:48
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3 holds
( b2 is_the_direct_sum_of b4,b3 & b2 is_the_direct_sum_of b3,b4 )
proof end;

theorem Th49: :: VECTSP_5:49
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3 holds
( b3 + b4 = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) & b4 + b3 = VectSpStr(# the carrier of b2,the add of b2,the Zero of b2,the lmult of b2 #) )
proof end;

theorem Th50: :: VECTSP_5:50
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3 holds
( b3 /\ b4 = (0). b2 & b4 /\ b3 = (0). b2 )
proof end;

theorem Th51: :: VECTSP_5:51
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 st b2 is_the_direct_sum_of b3,b4 holds
b2 is_the_direct_sum_of b4,b3 by Lemma40;

theorem Th52: :: VECTSP_5:52
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds
( b2 is_the_direct_sum_of (0). b2, (Omega). b2 & b2 is_the_direct_sum_of (Omega). b2, (0). b2 )
proof end;

theorem Th53: :: VECTSP_5:53
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3 holds b3 is Linear_Compl of b4
proof end;

theorem Th54: :: VECTSP_5:54
for b1 being Field
for b2 being VectSp of b1 holds
( (0). b2 is Linear_Compl of (Omega). b2 & (Omega). b2 is Linear_Compl of (0). b2 )
proof end;

theorem Th55: :: VECTSP_5:55
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being Coset of b3
for b6 being Coset of b4 st b5 meets b6 holds
b5 /\ b6 is Coset of b3 /\ b4
proof end;

theorem Th56: :: VECTSP_5:56
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b2 is_the_direct_sum_of b3,b4 iff for b5 being Coset of b3
for b6 being Coset of b4 ex b7 being Element of b2 st b5 /\ b6 = {b7} )
proof end;

theorem Th57: :: VECTSP_5:57
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable strict VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 holds
( b3 + b4 = b2 iff for b5 being Element of b2 ex b6, b7 being Element of b2 st
( b6 in b3 & b7 in b4 & b5 = b6 + b7 ) ) by Lemma38;

theorem Th58: :: VECTSP_5:58
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5, b6, b7, b8, b9 being Element of b2 st b2 is_the_direct_sum_of b3,b4 & b5 = b6 + b7 & b5 = b8 + b9 & b6 in b3 & b8 in b3 & b7 in b4 & b9 in b4 holds
( b6 = b8 & b7 = b9 )
proof end;

theorem Th59: :: VECTSP_5:59
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2 st b2 = b3 + b4 & ex b5 being Element of b2 st
for b6, b7, b8, b9 being Element of b2 st b5 = b6 + b7 & b5 = b8 + b9 & b6 in b3 & b8 in b3 & b7 in b4 & b9 in b4 holds
( b6 = b8 & b7 = b9 ) holds
b2 is_the_direct_sum_of b3,b4
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
let c3 be Element of c2;
let c4, c5 be Subspace of c2;
assume E48: c2 is_the_direct_sum_of c4,c5 ;
func c3 |-- c4,c5 -> Element of [:the carrier of a2,the carrier of a2:] means :Def6: :: VECTSP_5:def 6
( a3 = (a6 `1 ) + (a6 `2 ) & a6 `1 in a4 & a6 `2 in a5 );
existence
ex b1 being Element of [:the carrier of c2,the carrier of c2:] st
( c3 = (b1 `1 ) + (b1 `2 ) & b1 `1 in c4 & b1 `2 in c5 )
proof end;
uniqueness
for b1, b2 being Element of [:the carrier of c2,the carrier of c2:] st c3 = (b1 `1 ) + (b1 `2 ) & b1 `1 in c4 & b1 `2 in c5 & c3 = (b2 `1 ) + (b2 `2 ) & b2 `1 in c4 & b2 `2 in c5 holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines |-- VECTSP_5:def 6 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being Element of b2
for b4, b5 being Subspace of b2 st b2 is_the_direct_sum_of b4,b5 holds
for b6 being Element of [:the carrier of b2,the carrier of b2:] holds
( b6 = b3 |-- b4,b5 iff ( b3 = (b6 `1 ) + (b6 `2 ) & b6 `1 in b4 & b6 `2 in b5 ) );

theorem Th60: :: VECTSP_5:60
canceled;

theorem Th61: :: VECTSP_5:61
canceled;

theorem Th62: :: VECTSP_5:62
canceled;

theorem Th63: :: VECTSP_5:63
canceled;

theorem Th64: :: VECTSP_5:64
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being Element of b2 st b2 is_the_direct_sum_of b3,b4 holds
(b5 |-- b3,b4) `1 = (b5 |-- b4,b3) `2
proof end;

theorem Th65: :: VECTSP_5:65
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3, b4 being Subspace of b2
for b5 being Element of b2 st b2 is_the_direct_sum_of b3,b4 holds
(b5 |-- b3,b4) `2 = (b5 |-- b4,b3) `1
proof end;

theorem Th66: :: VECTSP_5:66
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3
for b5 being Element of b2
for b6 being Element of [:the carrier of b2,the carrier of b2:] st (b6 `1 ) + (b6 `2 ) = b5 & b6 `1 in b3 & b6 `2 in b4 holds
b6 = b5 |-- b3,b4
proof end;

theorem Th67: :: VECTSP_5:67
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3
for b5 being Element of b2 holds ((b5 |-- b3,b4) `1 ) + ((b5 |-- b3,b4) `2 ) = b5
proof end;

theorem Th68: :: VECTSP_5:68
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3
for b5 being Element of b2 holds
( (b5 |-- b3,b4) `1 in b3 & (b5 |-- b3,b4) `2 in b4 )
proof end;

theorem Th69: :: VECTSP_5:69
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3
for b5 being Element of b2 holds (b5 |-- b3,b4) `1 = (b5 |-- b4,b3) `2
proof end;

theorem Th70: :: VECTSP_5:70
for b1 being Field
for b2 being VectSp of b1
for b3 being Subspace of b2
for b4 being Linear_Compl of b3
for b5 being Element of b2 holds (b5 |-- b3,b4) `2 = (b5 |-- b4,b3) `1
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
func SubJoin c2 -> BinOp of Subspaces a2 means :Def7: :: VECTSP_5:def 7
for b1, b2 being Element of Subspaces a2
for b3, b4 being Subspace of a2 st b1 = b3 & b2 = b4 holds
a3 . b1,b2 = b3 + b4;
existence
ex b1 being BinOp of Subspaces c2 st
for b2, b3 being Element of Subspaces c2
for b4, b5 being Subspace of c2 st b2 = b4 & b3 = b5 holds
b1 . b2,b3 = b4 + b5
proof end;
uniqueness
for b1, b2 being BinOp of Subspaces c2 st ( for b3, b4 being Element of Subspaces c2
for b5, b6 being Subspace of c2 st b3 = b5 & b4 = b6 holds
b1 . b3,b4 = b5 + b6 ) & ( for b3, b4 being Element of Subspaces c2
for b5, b6 being Subspace of c2 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 + b6 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines SubJoin VECTSP_5:def 7 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being BinOp of Subspaces b2 holds
( b3 = SubJoin b2 iff for b4, b5 being Element of Subspaces b2
for b6, b7 being Subspace of b2 st b4 = b6 & b5 = b7 holds
b3 . b4,b5 = b6 + b7 );

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of c1;
func SubMeet c2 -> BinOp of Subspaces a2 means :Def8: :: VECTSP_5:def 8
for b1, b2 being Element of Subspaces a2
for b3, b4 being Subspace of a2 st b1 = b3 & b2 = b4 holds
a3 . b1,b2 = b3 /\ b4;
existence
ex b1 being BinOp of Subspaces c2 st
for b2, b3 being Element of Subspaces c2
for b4, b5 being Subspace of c2 st b2 = b4 & b3 = b5 holds
b1 . b2,b3 = b4 /\ b5
proof end;
uniqueness
for b1, b2 being BinOp of Subspaces c2 st ( for b3, b4 being Element of Subspaces c2
for b5, b6 being Subspace of c2 st b3 = b5 & b4 = b6 holds
b1 . b3,b4 = b5 /\ b6 ) & ( for b3, b4 being Element of Subspaces c2
for b5, b6 being Subspace of c2 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 /\ b6 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines SubMeet VECTSP_5:def 8 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1
for b3 being BinOp of Subspaces b2 holds
( b3 = SubMeet b2 iff for b4, b5 being Element of Subspaces b2
for b6, b7 being Subspace of b2 st b4 = b6 & b5 = b7 holds
b3 . b4,b5 = b6 /\ b7 );

theorem Th71: :: VECTSP_5:71
canceled;

theorem Th72: :: VECTSP_5:72
canceled;

theorem Th73: :: VECTSP_5:73
canceled;

theorem Th74: :: VECTSP_5:74
canceled;

theorem Th75: :: VECTSP_5:75
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is Lattice
proof end;

theorem Th76: :: VECTSP_5:76
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is 0_Lattice
proof end;

theorem Th77: :: VECTSP_5:77
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is 1_Lattice
proof end;

theorem Th78: :: VECTSP_5:78
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is 01_Lattice
proof end;

theorem Th79: :: VECTSP_5:79
for b1 being non empty Abelian add-associative right_zeroed right_complementable associative distributive left_unital doubleLoopStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable VectSp-like VectSpStr of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is M_Lattice
proof end;

theorem Th80: :: VECTSP_5:80
for b1 being Field
for b2 being VectSp of b1 holds LattStr(# (Subspaces b2),(SubJoin b2),(SubMeet b2) #) is C_Lattice
proof end;