:: Operations on Subspaces in Real Unitary Space
:: by Noboru Endou , Takashi Mitsuishi and Yasunari Shidama
::
:: Received October 9, 2002
:: Copyright (c) 2002-2016 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies BHSP_1, RLSUB_1, ARYTM_3, STRUCT_0, RLVECT_1, SUBSET_1, TARSKI,
SUPINF_2, XBOOLE_0, ARYTM_1, RLSUB_2, ZFMISC_1, FUNCT_1, RELAT_1, REAL_1,
CARD_1, FINSEQ_4, MCART_1, BINOP_1, LATTICES, EQREL_1, PBOOLE;
notations TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, RELAT_1, ORDINAL1, XCMPLX_0,
XREAL_0, STRUCT_0, FUNCT_1, NUMBERS, BINOP_1, LATTICES, RELSET_1, REAL_1,
DOMAIN_1, RLVECT_1, RLSUB_1, BHSP_1, RUSUB_1;
constructors BINOP_1, REAL_1, MEMBERED, REALSET1, LATTICES, RLSUB_1, RUSUB_1;
registrations SUBSET_1, MEMBERED, STRUCT_0, LATTICES, BHSP_1, RUSUB_1,
RELAT_1, XREAL_0, XTUPLE_0;
requirements NUMERALS, SUBSET, BOOLE;
begin :: Definitions of sum and intersection of subspaces.
definition
let V be RealUnitarySpace, W1,W2 be Subspace of V;
func W1 + W2 -> strict Subspace of V means
:: RUSUB_2:def 1
the carrier of it = {v + u where v,u is VECTOR of V: v in W1 & u in W2};
end;
definition
let V be RealUnitarySpace, W1,W2 be Subspace of V;
func W1 /\ W2 -> strict Subspace of V means
:: RUSUB_2:def 2
the carrier of it = (the carrier of W1) /\ (the carrier of W2);
end;
begin :: Theorems of sum and intersection of subspaces.
theorem :: RUSUB_2:1
for V being RealUnitarySpace, W1,W2 being Subspace of V,
x being object
holds x in W1 + W2 iff ex v1,v2 being VECTOR of V st v1 in W1 & v2 in W2 &
x = v1 + v2;
theorem :: RUSUB_2:2
for V being RealUnitarySpace, W1,W2 being Subspace of V, v being
VECTOR of V st v in W1 or v in W2 holds v in W1 + W2;
theorem :: RUSUB_2:3
for V being RealUnitarySpace, W1,W2 being Subspace of V, x being
object holds x in W1 /\ W2 iff x in W1 & x in W2;
theorem :: RUSUB_2:4
for V being RealUnitarySpace, W being strict Subspace of V holds W + W
= W;
theorem :: RUSUB_2:5
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1 + W2
= W2 + W1;
theorem :: RUSUB_2:6
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V holds
W1 + (W2 + W3) = (W1 + W2) + W3;
theorem :: RUSUB_2:7
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1
is Subspace of W1 + W2 & W2 is Subspace of W1 + W2;
theorem :: RUSUB_2:8
for V being RealUnitarySpace, W1 being Subspace of V, W2 being
strict Subspace of V holds W1 is Subspace of W2 iff W1 + W2 = W2;
theorem :: RUSUB_2:9
for V being RealUnitarySpace, W being strict Subspace of V holds
(0).V + W = W & W + (0).V = W;
theorem :: RUSUB_2:10
for V being RealUnitarySpace holds (0).V + (Omega).V = the
UNITSTR of V & (Omega).V + (0).V = the UNITSTR of V;
theorem :: RUSUB_2:11
for V being RealUnitarySpace, W being Subspace of V holds
(Omega).V + W = the UNITSTR of V & W + (Omega).V = the UNITSTR of V;
theorem :: RUSUB_2:12
for V being strict RealUnitarySpace holds (Omega).V + (Omega).V = V;
theorem :: RUSUB_2:13
for V being RealUnitarySpace, W being strict Subspace of V holds W /\ W = W;
theorem :: RUSUB_2:14
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1
/\ W2 = W2 /\ W1;
theorem :: RUSUB_2:15
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V holds
W1 /\ (W2 /\ W3) = (W1 /\ W2) /\ W3;
theorem :: RUSUB_2:16
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1
/\ W2 is Subspace of W1 & W1 /\ W2 is Subspace of W2;
theorem :: RUSUB_2:17
for V being RealUnitarySpace, W2 being Subspace of V, W1 being
strict Subspace of V holds W1 is Subspace of W2 iff W1 /\ W2 = W1;
theorem :: RUSUB_2:18
for V being RealUnitarySpace, W being Subspace of V holds (0).V
/\ W = (0).V & W /\ (0).V = (0).V;
theorem :: RUSUB_2:19
for V being RealUnitarySpace holds (0).V /\ (Omega).V = (0).V &
(Omega).V /\ (0).V = (0).V;
theorem :: RUSUB_2:20
for V being RealUnitarySpace, W being strict Subspace of V holds
(Omega).V /\ W = W & W /\ (Omega).V = W;
theorem :: RUSUB_2:21
for V being strict RealUnitarySpace holds (Omega).V /\ (Omega).V = V;
theorem :: RUSUB_2:22
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1 /\ W2
is Subspace of W1 + W2;
theorem :: RUSUB_2:23
for V being RealUnitarySpace, W1 being Subspace of V, W2 being strict
Subspace of V holds (W1 /\ W2) + W2 = W2;
theorem :: RUSUB_2:24
for V being RealUnitarySpace, W1 being Subspace of V, W2 being strict
Subspace of V holds W2 /\ (W2 + W1) = W2;
theorem :: RUSUB_2:25
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V holds (W1
/\ W2) + (W2 /\ W3) is Subspace of W2 /\ (W1 + W3);
theorem :: RUSUB_2:26
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V st W1 is
Subspace of W2 holds W2 /\ (W1 + W3) = (W1 /\ W2) + (W2 /\ W3);
theorem :: RUSUB_2:27
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V holds W2 +
(W1 /\ W3) is Subspace of (W1 + W2) /\ (W2 + W3);
theorem :: RUSUB_2:28
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V st W1 is
Subspace of W2 holds W2 + (W1 /\ W3) = (W1 + W2) /\ (W2 + W3);
theorem :: RUSUB_2:29
for V being RealUnitarySpace, W1,W2,W3 being Subspace of V st W1
is strict Subspace of W3 holds W1 + (W2 /\ W3) = (W1 + W2) /\ W3;
theorem :: RUSUB_2:30
for V being RealUnitarySpace, W1,W2 being strict Subspace of V holds
W1 + W2 = W2 iff W1 /\ W2 = W1;
theorem :: RUSUB_2:31
for V being RealUnitarySpace, W1 being Subspace of V, W2,W3 being
strict Subspace of V holds W1 is Subspace of W2 implies W1 + W3 is Subspace of
W2 + W3;
theorem :: RUSUB_2:32
for V being RealUnitarySpace, W1,W2 being Subspace of V holds (ex W
being Subspace of V st the carrier of W = (the carrier of W1) \/ (the carrier
of W2)) iff W1 is Subspace of W2 or W2 is Subspace of W1;
begin :: Introduction of a set of subspaces of real unitary space.
definition
let V be RealUnitarySpace;
func Subspaces(V) -> set means
:: RUSUB_2:def 3
for x being object holds x in it iff x is strict Subspace of V;
end;
registration
let V be RealUnitarySpace;
cluster Subspaces(V) -> non empty;
end;
theorem :: RUSUB_2:33
for V being strict RealUnitarySpace holds V in Subspaces(V);
begin :: Definition of the direct sum and linear complement of subspace
definition
let V be RealUnitarySpace;
let W1,W2 be Subspace of V;
pred V is_the_direct_sum_of W1,W2 means
:: RUSUB_2:def 4
the UNITSTR of V = W1 + W2 & W1 /\ W2 = (0).V;
end;
definition
let V be RealUnitarySpace;
let W be Subspace of V;
mode Linear_Compl of W -> Subspace of V means
:: RUSUB_2:def 5
V is_the_direct_sum_of it,W;
end;
registration
let V be RealUnitarySpace;
let W be Subspace of V;
cluster strict for Linear_Compl of W;
end;
theorem :: RUSUB_2:34
for V being RealUnitarySpace, W1,W2 being Subspace of V holds V
is_the_direct_sum_of W1,W2 implies W2 is Linear_Compl of W1;
theorem :: RUSUB_2:35
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W holds V is_the_direct_sum_of L,W & V is_the_direct_sum_of W,L
;
begin
:: Theorems concerning the direct sum, linear complement
:: and coset of a subspace
theorem :: RUSUB_2:36
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W holds W + L = the UNITSTR of V & L + W = the UNITSTR of V;
theorem :: RUSUB_2:37
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W holds W /\ L = (0).V & L /\ W = (0).V;
theorem :: RUSUB_2:38
for V being RealUnitarySpace, W1,W2 being Subspace of V st V
is_the_direct_sum_of W1,W2 holds V is_the_direct_sum_of W2,W1;
theorem :: RUSUB_2:39
for V being RealUnitarySpace holds V is_the_direct_sum_of (0).V,
(Omega).V & V is_the_direct_sum_of (Omega).V,(0).V;
theorem :: RUSUB_2:40
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W holds W is Linear_Compl of L;
theorem :: RUSUB_2:41
for V being RealUnitarySpace holds (0).V is Linear_Compl of (Omega).V
& (Omega).V is Linear_Compl of (0).V;
theorem :: RUSUB_2:42
for V being RealUnitarySpace, W1,W2 being Subspace of V, C1
being Coset of W1, C2 being Coset of W2 st C1 meets C2 holds C1 /\ C2 is Coset
of W1 /\ W2;
theorem :: RUSUB_2:43
for V being RealUnitarySpace, W1,W2 being Subspace of V holds V
is_the_direct_sum_of W1,W2 iff for C1 being Coset of W1, C2 being Coset of W2
ex v being VECTOR of V st C1 /\ C2 = {v};
begin :: Decomposition of a vector of real unitary space
theorem :: RUSUB_2:44
for V being RealUnitarySpace, W1,W2 being Subspace of V holds W1 + W2
= the UNITSTR of V iff for v being VECTOR of V ex v1,v2 being VECTOR of V st v1
in W1 & v2 in W2 & v = v1 + v2;
theorem :: RUSUB_2:45
for V being RealUnitarySpace, W1,W2 being Subspace of V, v,v1,v2
,u1,u2 being VECTOR of V st V is_the_direct_sum_of W1,W2 & v = v1 + v2 & v = u1
+ u2 & v1 in W1 & u1 in W1 & v2 in W2 & u2 in W2 holds v1 = u1 & v2 = u2;
theorem :: RUSUB_2:46
for V being RealUnitarySpace, W1,W2 being Subspace of V st V = W1 + W2
& (ex v being VECTOR of V st for v1,v2,u1,u2 being VECTOR of V st v = v1 + v2 &
v = u1 + u2 & v1 in W1 & u1 in W1 & v2 in W2 & u2 in W2 holds v1 = u1 & v2 = u2
) holds V is_the_direct_sum_of W1,W2;
definition
let V be RealUnitarySpace;
let v be VECTOR of V;
let W1,W2 be Subspace of V;
assume
V is_the_direct_sum_of W1,W2;
func v |-- (W1,W2) -> Element of [:the carrier of V, the carrier of V:]
means
:: RUSUB_2:def 6
v = it`1 + it`2 & it`1 in W1 & it`2 in W2;
end;
theorem :: RUSUB_2:47
for V being RealUnitarySpace, v being VECTOR of V, W1,W2 being
Subspace of V st V is_the_direct_sum_of W1,W2 holds (v |-- (W1,W2))`1 = (v |--
(W2,W1))`2;
theorem :: RUSUB_2:48
for V being RealUnitarySpace, v being VECTOR of V, W1,W2 being
Subspace of V st V is_the_direct_sum_of W1,W2 holds (v |-- (W1,W2))`2 = (v |--
(W2,W1))`1;
theorem :: RUSUB_2:49
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W, v being VECTOR of V, t being Element of [:the carrier of V,
the carrier of V:] st t`1 + t`2 = v & t`1 in W & t`2 in L holds t = v |-- (W,L)
;
theorem :: RUSUB_2:50
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W, v being VECTOR of V holds (v |-- (W,L))`1 + (v |-- (W,L))`2
= v;
theorem :: RUSUB_2:51
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W, v being VECTOR of V holds (v |-- (W,L))`1 in W & (v |-- (W,L
))`2 in L;
theorem :: RUSUB_2:52
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W, v being VECTOR of V holds (v |-- (W,L))`1 = (v |-- (L,W))`2;
theorem :: RUSUB_2:53
for V being RealUnitarySpace, W being Subspace of V, L being
Linear_Compl of W, v being VECTOR of V holds (v |-- (W,L))`2 = (v |-- (L,W))`1;
begin :: Introduction of operations on set of subspaces
definition
let V be RealUnitarySpace;
func SubJoin(V) -> BinOp of Subspaces(V) means
:: RUSUB_2:def 7
for A1,A2 being
Element of Subspaces(V), W1,W2 being Subspace of V st A1 = W1 & A2 = W2 holds
it.(A1,A2) = W1 + W2;
end;
definition
let V be RealUnitarySpace;
func SubMeet(V) -> BinOp of Subspaces(V) means
:: RUSUB_2:def 8
for A1,A2 being
Element of Subspaces(V), W1,W2 being Subspace of V st A1 = W1 & A2 = W2 holds
it.(A1,A2) = W1 /\ W2;
end;
begin :: Theorems of functions SubJoin, SubMeet
theorem :: RUSUB_2:54
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is Lattice;
registration
let V be RealUnitarySpace;
cluster LattStr (# Subspaces(V), SubJoin(V), SubMeet(V) #) -> Lattice-like;
end;
theorem :: RUSUB_2:55
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is lower-bounded;
theorem :: RUSUB_2:56
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is upper-bounded;
theorem :: RUSUB_2:57
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is 01_Lattice;
theorem :: RUSUB_2:58
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is modular;
theorem :: RUSUB_2:59
for V being RealUnitarySpace holds LattStr (# Subspaces(V),
SubJoin(V), SubMeet(V) #) is complemented;
registration
let V be RealUnitarySpace;
cluster LattStr (# Subspaces(V), SubJoin(V), SubMeet(V) #) -> lower-bounded
upper-bounded modular complemented;
end;
theorem :: RUSUB_2:60
for V being RealUnitarySpace, W1,W2,W3 being strict Subspace of V
holds W1 is Subspace of W2 implies W1 /\ W3 is Subspace of W2 /\ W3;
begin :: Auxiliary theorems in real unitary space
theorem :: RUSUB_2:61
for V being RealUnitarySpace, W being strict Subspace of V holds (for
v being VECTOR of V holds v in W) implies W = the UNITSTR of V;
theorem :: RUSUB_2:62
for V being RealUnitarySpace, W being Subspace of V, v being VECTOR of
V holds ex C being Coset of W st v in C;
theorem :: RUSUB_2:63
for V being RealUnitarySpace, W being Subspace of V, v being VECTOR of
V, x being set holds x in v + W iff ex u being VECTOR of V st u in W & x = v +
u;