:: RLSUB_2 semantic presentation

definition
let c1 be RealLinearSpace;
let c2, c3 be Subspace of c1;
func c2 + c3 -> strict Subspace of a1 means :Def1: :: RLSUB_2:def 1
the carrier of a4 = { (b1 + b2) where B is VECTOR of a1, B is VECTOR of a1 : ( b1 in a2 & b2 in a3 ) } ;
existence
ex b1 being strict Subspace of c1 st the carrier of b1 = { (b2 + b3) where B is VECTOR of c1, B is VECTOR of c1 : ( b2 in c2 & b3 in c3 ) }
proof end;
uniqueness
for b1, b2 being strict Subspace of c1 st the carrier of b1 = { (b3 + b4) where B is VECTOR of c1, B is VECTOR of c1 : ( b3 in c2 & b4 in c3 ) } & the carrier of b2 = { (b3 + b4) where B is VECTOR of c1, B is VECTOR of c1 : ( b3 in c2 & b4 in c3 ) } holds
b1 = b2
by RLSUB_1:38;
end;

:: deftheorem Def1 defines + RLSUB_2:def 1 :
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being strict Subspace of b1 holds
( b4 = b2 + b3 iff the carrier of b4 = { (b5 + b6) where B is VECTOR of b1, B is VECTOR of b1 : ( b5 in b2 & b6 in b3 ) } );

definition
let c1 be RealLinearSpace;
let c2, c3 be Subspace of c1;
func c2 /\ c3 -> strict Subspace of a1 means :Def2: :: RLSUB_2:def 2
the carrier of a4 = the carrier of a2 /\ the carrier of a3;
existence
ex b1 being strict Subspace of c1 st the carrier of b1 = the carrier of c2 /\ the carrier of c3
proof end;
uniqueness
for b1, b2 being strict Subspace of c1 st the carrier of b1 = the carrier of c2 /\ the carrier of c3 & the carrier of b2 = the carrier of c2 /\ the carrier of c3 holds
b1 = b2
by RLSUB_1:38;
end;

:: deftheorem Def2 defines /\ RLSUB_2:def 2 :
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being strict Subspace of b1 holds
( b4 = b2 /\ b3 iff the carrier of b4 = the carrier of b2 /\ the carrier of b3 );

theorem Th1: :: RLSUB_2:1
canceled;

theorem Th2: :: RLSUB_2:2
canceled;

theorem Th3: :: RLSUB_2:3
canceled;

theorem Th4: :: RLSUB_2:4
canceled;

theorem Th5: :: RLSUB_2:5
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being set holds
( b4 in b2 + b3 iff ex b5, b6 being VECTOR of b1 st
( b5 in b2 & b6 in b3 & b4 = b5 + b6 ) )
proof end;

theorem Th6: :: RLSUB_2:6
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being VECTOR of b1 st ( b4 in b2 or b4 in b3 ) holds
b4 in b2 + b3
proof end;

theorem Th7: :: RLSUB_2:7
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being set holds
( b4 in b2 /\ b3 iff ( b4 in b2 & b4 in b3 ) )
proof end;

Lemma6: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds b2 + b3 = b3 + b2
proof end;

Lemma7: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds the carrier of b2 c= the carrier of (b2 + b3)
proof end;

Lemma8: for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 st the carrier of b2 c= the carrier of b3 holds
b2 + b3 = b3
proof end;

theorem Th8: :: RLSUB_2:8
for b1 being RealLinearSpace
for b2 being strict Subspace of b1 holds b2 + b2 = b2 by Lemma8;

theorem Th9: :: RLSUB_2:9
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds b2 + b3 = b3 + b2 by Lemma6;

theorem Th10: :: RLSUB_2:10
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds b2 + (b3 + b4) = (b2 + b3) + b4
proof end;

theorem Th11: :: RLSUB_2:11
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b2 is Subspace of b2 + b3 & b3 is Subspace of b2 + b3 )
proof end;

theorem Th12: :: RLSUB_2:12
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds
( b2 is Subspace of b3 iff b2 + b3 = b3 )
proof end;

theorem Th13: :: RLSUB_2:13
for b1 being RealLinearSpace
for b2 being strict Subspace of b1 holds
( ((0). b1) + b2 = b2 & b2 + ((0). b1) = b2 )
proof end;

theorem Th14: :: RLSUB_2:14
for b1 being RealLinearSpace holds
( ((0). b1) + ((Omega). b1) = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) & ((Omega). b1) + ((0). b1) = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) ) by Th13;

theorem Th15: :: RLSUB_2:15
for b1 being RealLinearSpace
for b2 being Subspace of b1 holds
( ((Omega). b1) + b2 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) & b2 + ((Omega). b1) = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) )
proof end;

theorem Th16: :: RLSUB_2:16
for b1 being strict RealLinearSpace holds ((Omega). b1) + ((Omega). b1) = b1 by Th15;

theorem Th17: :: RLSUB_2:17
for b1 being RealLinearSpace
for b2 being strict Subspace of b1 holds b2 /\ b2 = b2
proof end;

theorem Th18: :: RLSUB_2:18
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds b2 /\ b3 = b3 /\ b2
proof end;

theorem Th19: :: RLSUB_2:19
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds b2 /\ (b3 /\ b4) = (b2 /\ b3) /\ b4
proof end;

Lemma17: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds the carrier of (b2 /\ b3) c= the carrier of b2
proof end;

theorem Th20: :: RLSUB_2:20
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b2 /\ b3 is Subspace of b2 & b2 /\ b3 is Subspace of b3 )
proof end;

theorem Th21: :: RLSUB_2:21
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds
( b3 is Subspace of b2 iff b3 /\ b2 = b3 )
proof end;

theorem Th22: :: RLSUB_2:22
for b1 being RealLinearSpace
for b2 being Subspace of b1 holds
( ((0). b1) /\ b2 = (0). b1 & b2 /\ ((0). b1) = (0). b1 )
proof end;

theorem Th23: :: RLSUB_2:23
for b1 being RealLinearSpace holds
( ((0). b1) /\ ((Omega). b1) = (0). b1 & ((Omega). b1) /\ ((0). b1) = (0). b1 ) by Th22;

theorem Th24: :: RLSUB_2:24
for b1 being RealLinearSpace
for b2 being strict Subspace of b1 holds
( ((Omega). b1) /\ b2 = b2 & b2 /\ ((Omega). b1) = b2 )
proof end;

theorem Th25: :: RLSUB_2:25
for b1 being strict RealLinearSpace holds ((Omega). b1) /\ ((Omega). b1) = b1 by Th24;

Lemma22: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds the carrier of (b2 /\ b3) c= the carrier of (b2 + b3)
proof end;

theorem Th26: :: RLSUB_2:26
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds b2 /\ b3 is Subspace of b2 + b3
proof end;

Lemma23: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds the carrier of ((b2 /\ b3) + b3) = the carrier of b3
proof end;

theorem Th27: :: RLSUB_2:27
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds (b2 /\ b3) + b3 = b3
proof end;

Lemma25: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds the carrier of (b2 /\ (b2 + b3)) = the carrier of b2
proof end;

theorem Th28: :: RLSUB_2:28
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds b3 /\ (b3 + b2) = b3
proof end;

Lemma27: for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds the carrier of ((b2 /\ b3) + (b3 /\ b4)) c= the carrier of (b3 /\ (b2 + b4))
proof end;

theorem Th29: :: RLSUB_2:29
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds (b2 /\ b3) + (b3 /\ b4) is Subspace of b3 /\ (b2 + b4)
proof end;

Lemma28: for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 st b2 is Subspace of b3 holds
the carrier of (b3 /\ (b2 + b4)) = the carrier of ((b2 /\ b3) + (b3 /\ b4))
proof end;

theorem Th30: :: RLSUB_2:30
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 st b2 is Subspace of b3 holds
b3 /\ (b2 + b4) = (b2 /\ b3) + (b3 /\ b4)
proof end;

Lemma30: for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds the carrier of (b2 + (b3 /\ b4)) c= the carrier of ((b3 + b2) /\ (b2 + b4))
proof end;

theorem Th31: :: RLSUB_2:31
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 holds b2 + (b3 /\ b4) is Subspace of (b3 + b2) /\ (b2 + b4)
proof end;

Lemma31: for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 st b2 is Subspace of b3 holds
the carrier of (b3 + (b2 /\ b4)) = the carrier of ((b2 + b3) /\ (b3 + b4))
proof end;

theorem Th32: :: RLSUB_2:32
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 st b2 is Subspace of b3 holds
b3 + (b2 /\ b4) = (b2 + b3) /\ (b3 + b4)
proof end;

theorem Th33: :: RLSUB_2:33
for b1 being RealLinearSpace
for b2, b3, b4 being Subspace of b1 st b2 is strict Subspace of b3 holds
b2 + (b4 /\ b3) = (b2 + b4) /\ b3
proof end;

theorem Th34: :: RLSUB_2:34
for b1 being RealLinearSpace
for b2, b3 being strict Subspace of b1 holds
( b2 + b3 = b3 iff b2 /\ b3 = b2 )
proof end;

theorem Th35: :: RLSUB_2:35
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3, b4 being strict Subspace of b1 st b2 is Subspace of b3 holds
b2 + b4 is Subspace of b3 + b4
proof end;

theorem Th36: :: RLSUB_2:36
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( ( b2 is Subspace of b3 or b3 is Subspace of b2 ) iff ex b4 being Subspace of b1 st the carrier of b4 = the carrier of b2 \/ the carrier of b3 )
proof end;

definition
let c1 be RealLinearSpace;
func Subspaces c1 -> set means :Def3: :: RLSUB_2:def 3
for b1 being set holds
( b1 in a2 iff b1 is strict Subspace of a1 );
existence
ex b1 being set st
for b2 being set holds
( b2 in b1 iff b2 is strict Subspace of c1 )
proof end;
uniqueness
for b1, b2 being set st ( for b3 being set holds
( b3 in b1 iff b3 is strict Subspace of c1 ) ) & ( for b3 being set holds
( b3 in b2 iff b3 is strict Subspace of c1 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Subspaces RLSUB_2:def 3 :
for b1 being RealLinearSpace
for b2 being set holds
( b2 = Subspaces b1 iff for b3 being set holds
( b3 in b2 iff b3 is strict Subspace of b1 ) );

registration
let c1 be RealLinearSpace;
cluster Subspaces a1 -> non empty ;
coherence
not Subspaces c1 is empty
proof end;
end;

theorem Th37: :: RLSUB_2:37
canceled;

theorem Th38: :: RLSUB_2:38
canceled;

theorem Th39: :: RLSUB_2:39
for b1 being strict RealLinearSpace holds b1 in Subspaces b1
proof end;

definition
let c1 be RealLinearSpace;
let c2, c3 be Subspace of c1;
pred c1 is_the_direct_sum_of c2,c3 means :Def4: :: RLSUB_2:def 4
( RLSStruct(# the carrier of a1,the Zero of a1,the add of a1,the Mult of a1 #) = a2 + a3 & a2 /\ a3 = (0). a1 );
end;

:: deftheorem Def4 defines is_the_direct_sum_of RLSUB_2:def 4 :
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b1 is_the_direct_sum_of b2,b3 iff ( RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) = b2 + b3 & b2 /\ b3 = (0). b1 ) );

Lemma35: for b1 being RealLinearSpace
for b2 being strict Subspace of b1 st ( for b3 being VECTOR of b1 holds b3 in b2 ) holds
b2 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #)
proof end;

Lemma36: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b2 + b3 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) iff for b4 being VECTOR of b1 ex b5, b6 being VECTOR of b1 st
( b5 in b2 & b6 in b3 & b4 = b5 + b6 ) )
proof end;

Lemma37: for b1 being non empty add-associative right_zeroed right_complementable LoopStr
for b2, b3, b4 being Element of b1 holds
( b2 = b3 + b4 iff b3 = b2 - b4 )
proof end;

Lemma38: for b1 being RealLinearSpace
for b2 being Subspace of b1 ex b3 being strict Subspace of b1 st b1 is_the_direct_sum_of b3,b2
proof end;

definition
let c1 be RealLinearSpace;
let c2 be Subspace of c1;
mode Linear_Compl of c2 -> Subspace of a1 means :Def5: :: RLSUB_2:def 5
a1 is_the_direct_sum_of a3,a2;
existence
ex b1 being Subspace of c1 st c1 is_the_direct_sum_of b1,c2
proof end;
end;

:: deftheorem Def5 defines Linear_Compl RLSUB_2:def 5 :
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b3 is Linear_Compl of b2 iff b1 is_the_direct_sum_of b3,b2 );

registration
let c1 be RealLinearSpace;
let c2 be Subspace of c1;
cluster strict Linear_Compl of a2;
existence
ex b1 being Linear_Compl of c2 st b1 is strict
proof end;
end;

Lemma40: for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 st b1 is_the_direct_sum_of b2,b3 holds
b1 is_the_direct_sum_of b3,b2
proof end;

theorem Th40: :: RLSUB_2:40
canceled;

theorem Th41: :: RLSUB_2:41
canceled;

theorem Th42: :: RLSUB_2:42
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 st b1 is_the_direct_sum_of b2,b3 holds
b3 is Linear_Compl of b2
proof end;

theorem Th43: :: RLSUB_2:43
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds
( b1 is_the_direct_sum_of b3,b2 & b1 is_the_direct_sum_of b2,b3 )
proof end;

theorem Th44: :: RLSUB_2:44
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds
( b2 + b3 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) & b3 + b2 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) )
proof end;

theorem Th45: :: RLSUB_2:45
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds
( b2 /\ b3 = (0). b1 & b3 /\ b2 = (0). b1 )
proof end;

theorem Th46: :: RLSUB_2:46
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 st b1 is_the_direct_sum_of b2,b3 holds
b1 is_the_direct_sum_of b3,b2 by Lemma40;

theorem Th47: :: RLSUB_2:47
for b1 being RealLinearSpace holds
( b1 is_the_direct_sum_of (0). b1, (Omega). b1 & b1 is_the_direct_sum_of (Omega). b1, (0). b1 )
proof end;

theorem Th48: :: RLSUB_2:48
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds b2 is Linear_Compl of b3
proof end;

theorem Th49: :: RLSUB_2:49
for b1 being RealLinearSpace holds
( (0). b1 is Linear_Compl of (Omega). b1 & (Omega). b1 is Linear_Compl of (0). b1 )
proof end;

theorem Th50: :: RLSUB_2:50
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being Coset of b2
for b5 being Coset of b3 st b4 meets b5 holds
b4 /\ b5 is Coset of b2 /\ b3
proof end;

Lemma46: for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being VECTOR of b1 ex b4 being Coset of b2 st b3 in b4
proof end;

theorem Th51: :: RLSUB_2:51
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b1 is_the_direct_sum_of b2,b3 iff for b4 being Coset of b2
for b5 being Coset of b3 ex b6 being VECTOR of b1 st b4 /\ b5 = {b6} )
proof end;

theorem Th52: :: RLSUB_2:52
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 holds
( b2 + b3 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) iff for b4 being VECTOR of b1 ex b5, b6 being VECTOR of b1 st
( b5 in b2 & b6 in b3 & b4 = b5 + b6 ) ) by Lemma36;

theorem Th53: :: RLSUB_2:53
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4, b5, b6, b7, b8 being VECTOR of b1 st b1 is_the_direct_sum_of b2,b3 & b4 = b5 + b6 & b4 = b7 + b8 & b5 in b2 & b7 in b2 & b6 in b3 & b8 in b3 holds
( b5 = b7 & b6 = b8 )
proof end;

Lemma49: for b1, b2 being set st b1 c< b2 holds
ex b3 being set st
( b3 in b2 & not b3 in b1 )
proof end;

theorem Th54: :: RLSUB_2:54
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1 st b1 = b2 + b3 & ex b4 being VECTOR of b1 st
for b5, b6, b7, b8 being VECTOR of b1 st b4 = b5 + b6 & b4 = b7 + b8 & b5 in b2 & b7 in b2 & b6 in b3 & b8 in b3 holds
( b5 = b7 & b6 = b8 ) holds
b1 is_the_direct_sum_of b2,b3
proof end;

definition
let c1 be RealLinearSpace;
let c2 be VECTOR of c1;
let c3, c4 be Subspace of c1;
assume E50: c1 is_the_direct_sum_of c3,c4 ;
func c2 |-- c3,c4 -> Element of [:the carrier of a1,the carrier of a1:] means :Def6: :: RLSUB_2:def 6
( a2 = (a5 `1 ) + (a5 `2 ) & a5 `1 in a3 & a5 `2 in a4 );
existence
ex b1 being Element of [:the carrier of c1,the carrier of c1:] st
( c2 = (b1 `1 ) + (b1 `2 ) & b1 `1 in c3 & b1 `2 in c4 )
proof end;
uniqueness
for b1, b2 being Element of [:the carrier of c1,the carrier of c1:] st c2 = (b1 `1 ) + (b1 `2 ) & b1 `1 in c3 & b1 `2 in c4 & c2 = (b2 `1 ) + (b2 `2 ) & b2 `1 in c3 & b2 `2 in c4 holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines |-- RLSUB_2:def 6 :
for b1 being RealLinearSpace
for b2 being VECTOR of b1
for b3, b4 being Subspace of b1 st b1 is_the_direct_sum_of b3,b4 holds
for b5 being Element of [:the carrier of b1,the carrier of b1:] holds
( b5 = b2 |-- b3,b4 iff ( b2 = (b5 `1 ) + (b5 `2 ) & b5 `1 in b3 & b5 `2 in b4 ) );

theorem Th55: :: RLSUB_2:55
canceled;

theorem Th56: :: RLSUB_2:56
canceled;

theorem Th57: :: RLSUB_2:57
canceled;

theorem Th58: :: RLSUB_2:58
canceled;

theorem Th59: :: RLSUB_2:59
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being VECTOR of b1 st b1 is_the_direct_sum_of b2,b3 holds
(b4 |-- b2,b3) `1 = (b4 |-- b3,b2) `2
proof end;

theorem Th60: :: RLSUB_2:60
for b1 being RealLinearSpace
for b2, b3 being Subspace of b1
for b4 being VECTOR of b1 st b1 is_the_direct_sum_of b2,b3 holds
(b4 |-- b2,b3) `2 = (b4 |-- b3,b2) `1
proof end;

theorem Th61: :: RLSUB_2:61
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2
for b4 being VECTOR of b1
for b5 being Element of [:the carrier of b1,the carrier of b1:] st (b5 `1 ) + (b5 `2 ) = b4 & b5 `1 in b2 & b5 `2 in b3 holds
b5 = b4 |-- b2,b3
proof end;

theorem Th62: :: RLSUB_2:62
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2
for b4 being VECTOR of b1 holds ((b4 |-- b2,b3) `1 ) + ((b4 |-- b2,b3) `2 ) = b4
proof end;

theorem Th63: :: RLSUB_2:63
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2
for b4 being VECTOR of b1 holds
( (b4 |-- b2,b3) `1 in b2 & (b4 |-- b2,b3) `2 in b3 )
proof end;

theorem Th64: :: RLSUB_2:64
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2
for b4 being VECTOR of b1 holds (b4 |-- b2,b3) `1 = (b4 |-- b3,b2) `2
proof end;

theorem Th65: :: RLSUB_2:65
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2
for b4 being VECTOR of b1 holds (b4 |-- b2,b3) `2 = (b4 |-- b3,b2) `1
proof end;

definition
let c1 be RealLinearSpace;
func SubJoin c1 -> BinOp of Subspaces a1 means :Def7: :: RLSUB_2:def 7
for b1, b2 being Element of Subspaces a1
for b3, b4 being Subspace of a1 st b1 = b3 & b2 = b4 holds
a2 . b1,b2 = b3 + b4;
existence
ex b1 being BinOp of Subspaces c1 st
for b2, b3 being Element of Subspaces c1
for b4, b5 being Subspace of c1 st b2 = b4 & b3 = b5 holds
b1 . b2,b3 = b4 + b5
proof end;
uniqueness
for b1, b2 being BinOp of Subspaces c1 st ( for b3, b4 being Element of Subspaces c1
for b5, b6 being Subspace of c1 st b3 = b5 & b4 = b6 holds
b1 . b3,b4 = b5 + b6 ) & ( for b3, b4 being Element of Subspaces c1
for b5, b6 being Subspace of c1 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 + b6 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines SubJoin RLSUB_2:def 7 :
for b1 being RealLinearSpace
for b2 being BinOp of Subspaces b1 holds
( b2 = SubJoin b1 iff for b3, b4 being Element of Subspaces b1
for b5, b6 being Subspace of b1 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 + b6 );

definition
let c1 be RealLinearSpace;
func SubMeet c1 -> BinOp of Subspaces a1 means :Def8: :: RLSUB_2:def 8
for b1, b2 being Element of Subspaces a1
for b3, b4 being Subspace of a1 st b1 = b3 & b2 = b4 holds
a2 . b1,b2 = b3 /\ b4;
existence
ex b1 being BinOp of Subspaces c1 st
for b2, b3 being Element of Subspaces c1
for b4, b5 being Subspace of c1 st b2 = b4 & b3 = b5 holds
b1 . b2,b3 = b4 /\ b5
proof end;
uniqueness
for b1, b2 being BinOp of Subspaces c1 st ( for b3, b4 being Element of Subspaces c1
for b5, b6 being Subspace of c1 st b3 = b5 & b4 = b6 holds
b1 . b3,b4 = b5 /\ b6 ) & ( for b3, b4 being Element of Subspaces c1
for b5, b6 being Subspace of c1 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 /\ b6 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines SubMeet RLSUB_2:def 8 :
for b1 being RealLinearSpace
for b2 being BinOp of Subspaces b1 holds
( b2 = SubMeet b1 iff for b3, b4 being Element of Subspaces b1
for b5, b6 being Subspace of b1 st b3 = b5 & b4 = b6 holds
b2 . b3,b4 = b5 /\ b6 );

theorem Th66: :: RLSUB_2:66
canceled;

theorem Th67: :: RLSUB_2:67
canceled;

theorem Th68: :: RLSUB_2:68
canceled;

theorem Th69: :: RLSUB_2:69
canceled;

theorem Th70: :: RLSUB_2:70
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is Lattice
proof end;

registration
let c1 be RealLinearSpace;
cluster LattStr(# (Subspaces a1),(SubJoin a1),(SubMeet a1) #) -> Lattice-like ;
coherence
LattStr(# (Subspaces c1),(SubJoin c1),(SubMeet c1) #) is Lattice-like
by Th70;
end;

theorem Th71: :: RLSUB_2:71
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is lower-bounded
proof end;

theorem Th72: :: RLSUB_2:72
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is upper-bounded
proof end;

theorem Th73: :: RLSUB_2:73
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is 01_Lattice
proof end;

theorem Th74: :: RLSUB_2:74
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is modular
proof end;

Lemma60: for b1 being Lattice
for b2, b3 being Element of b1 holds
( b2 is_a_complement_of b3 iff ( b2 "\/" b3 = Top b1 & b2 "/\" b3 = Bottom b1 ) )
proof end;

Lemma61: for b1 being Lattice
for b2 being Element of b1 st ( for b3 being Element of b1 holds b3 "/\" b2 = b2 ) holds
b2 = Bottom b1
proof end;

Lemma62: for b1 being Lattice
for b2 being Element of b1 st ( for b3 being Element of b1 holds b3 "\/" b2 = b2 ) holds
b2 = Top b1
proof end;

theorem Th75: :: RLSUB_2:75
for b1 being RealLinearSpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is complemented
proof end;

registration
let c1 be RealLinearSpace;
cluster LattStr(# (Subspaces a1),(SubJoin a1),(SubMeet a1) #) -> Lattice-like modular lower-bounded upper-bounded complemented ;
coherence
( LattStr(# (Subspaces c1),(SubJoin c1),(SubMeet c1) #) is lower-bounded & LattStr(# (Subspaces c1),(SubJoin c1),(SubMeet c1) #) is upper-bounded & LattStr(# (Subspaces c1),(SubJoin c1),(SubMeet c1) #) is modular & LattStr(# (Subspaces c1),(SubJoin c1),(SubMeet c1) #) is complemented )
by Th71, Th72, Th74, Th75;
end;

theorem Th76: :: RLSUB_2:76
for b1 being RealLinearSpace
for b2, b3, b4 being strict Subspace of b1 st b2 is Subspace of b3 holds
b2 /\ b4 is Subspace of b3 /\ b4
proof end;

theorem Th77: :: RLSUB_2:77
for b1, b2 being set st b1 c< b2 holds
ex b3 being set st
( b3 in b2 & not b3 in b1 ) by Lemma49;

theorem Th78: :: RLSUB_2:78
for b1 being non empty add-associative right_zeroed right_complementable LoopStr
for b2, b3, b4 being Element of b1 holds
( b2 = b3 + b4 iff b3 = b2 - b4 ) by Lemma37;

theorem Th79: :: RLSUB_2:79
for b1 being RealLinearSpace
for b2 being strict Subspace of b1 st ( for b3 being VECTOR of b1 holds b3 in b2 ) holds
b2 = RLSStruct(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1 #) by Lemma35;

theorem Th80: :: RLSUB_2:80
for b1 being RealLinearSpace
for b2 being Subspace of b1
for b3 being VECTOR of b1 ex b4 being Coset of b2 st b3 in b4 by Lemma46;

theorem Th81: :: RLSUB_2:81
canceled;

theorem Th82: :: RLSUB_2:82
canceled;

theorem Th83: :: RLSUB_2:83
canceled;

theorem Th84: :: RLSUB_2:84
for b1 being Lattice
for b2 being Element of b1 st ( for b3 being Element of b1 holds b3 "/\" b2 = b2 ) holds
b2 = Bottom b1 by Lemma61;

theorem Th85: :: RLSUB_2:85
for b1 being Lattice
for b2 being Element of b1 st ( for b3 being Element of b1 holds b3 "\/" b2 = b2 ) holds
b2 = Top b1 by Lemma62;