:: RUSUB_2 semantic presentation

definition
let c1 be RealUnitarySpace;
let c2, c3 be Subspace of c1;
func c2 + c3 -> strict Subspace of a1 means :Def1: :: RUSUB_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 RUSUB_1:24;
end;

:: deftheorem Def1 defines + RUSUB_2:def 1 :
for b1 being RealUnitarySpace
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 RealUnitarySpace;
let c2, c3 be Subspace of c1;
func c2 /\ c3 -> strict Subspace of a1 means :Def2: :: RUSUB_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 RUSUB_1:24;
end;

:: deftheorem Def2 defines /\ RUSUB_2:def 2 :
for b1 being RealUnitarySpace
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: :: RUSUB_2:1
for b1 being RealUnitarySpace
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 Th2: :: RUSUB_2:2
for b1 being RealUnitarySpace
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 Th3: :: RUSUB_2:3
for b1 being RealUnitarySpace
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 RealUnitarySpace
for b2, b3 being Subspace of b1 holds b2 + b3 = b3 + b2
proof end;

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

Lemma8: for b1 being RealUnitarySpace
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 Th4: :: RUSUB_2:4
for b1 being RealUnitarySpace
for b2 being strict Subspace of b1 holds b2 + b2 = b2 by Lemma8;

theorem Th5: :: RUSUB_2:5
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds b2 + b3 = b3 + b2 by Lemma6;

theorem Th6: :: RUSUB_2:6
for b1 being RealUnitarySpace
for b2, b3, b4 being Subspace of b1 holds b2 + (b3 + b4) = (b2 + b3) + b4
proof end;

theorem Th7: :: RUSUB_2:7
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds
( b2 is Subspace of b2 + b3 & b3 is Subspace of b2 + b3 )
proof end;

theorem Th8: :: RUSUB_2:8
for b1 being RealUnitarySpace
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 Th9: :: RUSUB_2:9
for b1 being RealUnitarySpace
for b2 being strict Subspace of b1 holds
( ((0). b1) + b2 = b2 & b2 + ((0). b1) = b2 )
proof end;

theorem Th10: :: RUSUB_2:10
for b1 being RealUnitarySpace holds
( ((0). b1) + ((Omega). b1) = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) & ((Omega). b1) + ((0). b1) = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) )
proof end;

theorem Th11: :: RUSUB_2:11
for b1 being RealUnitarySpace
for b2 being Subspace of b1 holds
( ((Omega). b1) + b2 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) & b2 + ((Omega). b1) = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) )
proof end;

theorem Th12: :: RUSUB_2:12
for b1 being strict RealUnitarySpace holds ((Omega). b1) + ((Omega). b1) = b1 by Th11;

theorem Th13: :: RUSUB_2:13
for b1 being RealUnitarySpace
for b2 being strict Subspace of b1 holds b2 /\ b2 = b2
proof end;

theorem Th14: :: RUSUB_2:14
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds b2 /\ b3 = b3 /\ b2
proof end;

theorem Th15: :: RUSUB_2:15
for b1 being RealUnitarySpace
for b2, b3, b4 being Subspace of b1 holds b2 /\ (b3 /\ b4) = (b2 /\ b3) /\ b4
proof end;

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

theorem Th16: :: RUSUB_2:16
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds
( b2 /\ b3 is Subspace of b2 & b2 /\ b3 is Subspace of b3 )
proof end;

theorem Th17: :: RUSUB_2:17
for b1 being RealUnitarySpace
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 Th18: :: RUSUB_2:18
for b1 being RealUnitarySpace
for b2 being Subspace of b1 holds
( ((0). b1) /\ b2 = (0). b1 & b2 /\ ((0). b1) = (0). b1 )
proof end;

theorem Th19: :: RUSUB_2:19
for b1 being RealUnitarySpace holds
( ((0). b1) /\ ((Omega). b1) = (0). b1 & ((Omega). b1) /\ ((0). b1) = (0). b1 ) by Th18;

theorem Th20: :: RUSUB_2:20
for b1 being RealUnitarySpace
for b2 being strict Subspace of b1 holds
( ((Omega). b1) /\ b2 = b2 & b2 /\ ((Omega). b1) = b2 )
proof end;

theorem Th21: :: RUSUB_2:21
for b1 being strict RealUnitarySpace holds ((Omega). b1) /\ ((Omega). b1) = b1
proof end;

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

theorem Th22: :: RUSUB_2:22
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds b2 /\ b3 is Subspace of b2 + b3
proof end;

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

theorem Th23: :: RUSUB_2:23
for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds (b2 /\ b3) + b3 = b3
proof end;

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

theorem Th24: :: RUSUB_2:24
for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being strict Subspace of b1 holds b3 /\ (b3 + b2) = b3
proof end;

Lemma27: for b1 being RealUnitarySpace
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 Th25: :: RUSUB_2:25
for b1 being RealUnitarySpace
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 RealUnitarySpace
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 Th26: :: RUSUB_2:26
for b1 being RealUnitarySpace
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 RealUnitarySpace
for b2, b3, b4 being Subspace of b1 holds the carrier of (b3 + (b2 /\ b4)) c= the carrier of ((b2 + b3) /\ (b3 + b4))
proof end;

theorem Th27: :: RUSUB_2:27
for b1 being RealUnitarySpace
for b2, b3, b4 being Subspace of b1 holds b3 + (b2 /\ b4) is Subspace of (b2 + b3) /\ (b3 + b4)
proof end;

Lemma31: for b1 being RealUnitarySpace
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 Th28: :: RUSUB_2:28
for b1 being RealUnitarySpace
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 Th29: :: RUSUB_2:29
for b1 being RealUnitarySpace
for b2, b3, b4 being Subspace of b1 st b2 is strict Subspace of b4 holds
b2 + (b3 /\ b4) = (b2 + b3) /\ b4
proof end;

theorem Th30: :: RUSUB_2:30
for b1 being RealUnitarySpace
for b2, b3 being strict Subspace of b1 holds
( b2 + b3 = b3 iff b2 /\ b3 = b2 )
proof end;

theorem Th31: :: RUSUB_2:31
for b1 being RealUnitarySpace
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 Th32: :: RUSUB_2:32
for b1 being RealUnitarySpace
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 RealUnitarySpace;
func Subspaces c1 -> set means :Def3: :: RUSUB_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 RUSUB_2:def 3 :
for b1 being RealUnitarySpace
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 RealUnitarySpace;
cluster Subspaces a1 -> non empty ;
coherence
not Subspaces c1 is empty
proof end;
end;

theorem Th33: :: RUSUB_2:33
for b1 being strict RealUnitarySpace holds b1 in Subspaces b1
proof end;

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

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

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

Lemma36: for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds
( b2 + b3 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar 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 RealUnitarySpace
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 RealUnitarySpace;
let c2 be Subspace of c1;
mode Linear_Compl of c2 -> Subspace of a1 means :Def5: :: RUSUB_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 RUSUB_2:def 5 :
for b1 being RealUnitarySpace
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 RealUnitarySpace;
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;

Lemma39: for b1 being RealUnitarySpace
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 Th34: :: RUSUB_2:34
for b1 being RealUnitarySpace
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 Th35: :: RUSUB_2:35
for b1 being RealUnitarySpace
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 Th36: :: RUSUB_2:36
for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds
( b2 + b3 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) & b3 + b2 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) )
proof end;

theorem Th37: :: RUSUB_2:37
for b1 being RealUnitarySpace
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 Th38: :: RUSUB_2:38
for b1 being RealUnitarySpace
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 Lemma39;

theorem Th39: :: RUSUB_2:39
for b1 being RealUnitarySpace holds
( b1 is_the_direct_sum_of (0). b1, (Omega). b1 & b1 is_the_direct_sum_of (Omega). b1, (0). b1 )
proof end;

theorem Th40: :: RUSUB_2:40
for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being Linear_Compl of b2 holds b2 is Linear_Compl of b3
proof end;

theorem Th41: :: RUSUB_2:41
for b1 being RealUnitarySpace holds
( (0). b1 is Linear_Compl of (Omega). b1 & (Omega). b1 is Linear_Compl of (0). b1 )
proof end;

Lemma44: for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being VECTOR of b1
for b4 being set holds
( b4 in b3 + b2 iff ex b5 being VECTOR of b1 st
( b5 in b2 & b4 = b3 + b5 ) )
proof end;

theorem Th42: :: RUSUB_2:42
for b1 being RealUnitarySpace
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 RealUnitarySpace
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 Th43: :: RUSUB_2:43
for b1 being RealUnitarySpace
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 Th44: :: RUSUB_2:44
for b1 being RealUnitarySpace
for b2, b3 being Subspace of b1 holds
( b2 + b3 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar 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 Th45: :: RUSUB_2:45
for b1 being RealUnitarySpace
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;

theorem Th46: :: RUSUB_2:46
for b1 being RealUnitarySpace
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 RealUnitarySpace;
let c2 be VECTOR of c1;
let c3, c4 be Subspace of c1;
assume E49: c1 is_the_direct_sum_of c3,c4 ;
func c2 |-- c3,c4 -> Element of [:the carrier of a1,the carrier of a1:] means :Def6: :: RUSUB_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 |-- RUSUB_2:def 6 :
for b1 being RealUnitarySpace
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 Th47: :: RUSUB_2:47
for b1 being RealUnitarySpace
for b2 being VECTOR of b1
for b3, b4 being Subspace of b1 st b1 is_the_direct_sum_of b3,b4 holds
(b2 |-- b3,b4) `1 = (b2 |-- b4,b3) `2
proof end;

theorem Th48: :: RUSUB_2:48
for b1 being RealUnitarySpace
for b2 being VECTOR of b1
for b3, b4 being Subspace of b1 st b1 is_the_direct_sum_of b3,b4 holds
(b2 |-- b3,b4) `2 = (b2 |-- b4,b3) `1
proof end;

theorem Th49: :: RUSUB_2:49
for b1 being RealUnitarySpace
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 Th50: :: RUSUB_2:50
for b1 being RealUnitarySpace
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 Th51: :: RUSUB_2:51
for b1 being RealUnitarySpace
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 Th52: :: RUSUB_2:52
for b1 being RealUnitarySpace
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 Th53: :: RUSUB_2:53
for b1 being RealUnitarySpace
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 RealUnitarySpace;
func SubJoin c1 -> BinOp of Subspaces a1 means :Def7: :: RUSUB_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 RUSUB_2:def 7 :
for b1 being RealUnitarySpace
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 RealUnitarySpace;
func SubMeet c1 -> BinOp of Subspaces a1 means :Def8: :: RUSUB_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 RUSUB_2:def 8 :
for b1 being RealUnitarySpace
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 Th54: :: RUSUB_2:54
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is Lattice
proof end;

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

theorem Th55: :: RUSUB_2:55
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is lower-bounded
proof end;

theorem Th56: :: RUSUB_2:56
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is upper-bounded
proof end;

theorem Th57: :: RUSUB_2:57
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is 01_Lattice
proof end;

theorem Th58: :: RUSUB_2:58
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is modular
proof end;

theorem Th59: :: RUSUB_2:59
for b1 being RealUnitarySpace holds LattStr(# (Subspaces b1),(SubJoin b1),(SubMeet b1) #) is complemented
proof end;

registration
let c1 be RealUnitarySpace;
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 Th55, Th56, Th58, Th59;
end;

theorem Th60: :: RUSUB_2:60
for b1 being RealUnitarySpace
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 Th61: :: RUSUB_2:61
for b1 being RealUnitarySpace
for b2 being strict Subspace of b1 st ( for b3 being VECTOR of b1 holds b3 in b2 ) holds
b2 = UNITSTR(# the carrier of b1,the Zero of b1,the add of b1,the Mult of b1,the scalar of b1 #) by Lemma35;

theorem Th62: :: RUSUB_2:62
for b1 being RealUnitarySpace
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 Th63: :: RUSUB_2:63
for b1 being RealUnitarySpace
for b2 being Subspace of b1
for b3 being VECTOR of b1
for b4 being set holds
( b4 in b3 + b2 iff ex b5 being VECTOR of b1 st
( b5 in b2 & b4 = b3 + b5 ) ) by Lemma44;