:: Affine Independence in Vector Spaces
:: by Karol P\c{a}k
::
:: Received December 18, 2009
:: Copyright (c) 2009-2019 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 ALGSTR_0, ARYTM_1, ARYTM_3, XBOOLE_0, CARD_1, CONVEX1, CONVEX2,
CONVEX3, FINSEQ_1, FINSEQ_2, FINSEQ_4, FINSET_1, FUNCT_1, FUNCT_2,
MONOID_0, ORDERS_1, RELAT_1, RLSUB_1, RLVECT_1, RLVECT_2, RLVECT_3,
RUSUB_4, SEMI_AF1, SETFAM_1, SUBSET_1, TARSKI, CLASSES1, SUPINF_2,
RLVECT_5, REAL_1, NUMBERS, NAT_1, CARD_3, XXREAL_0, STRUCT_0, ZFMISC_1,
RLAFFIN1, ORDINAL1, ORDINAL4, PARTFUN1, FUNCT_7;
notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, ORDERS_1, CARD_1, NUMBERS,
XXREAL_0, XCMPLX_0, XREAL_0, REAL_1, FINSET_1, SETFAM_1, DOMAIN_1,
ALGSTR_0, RELAT_1, FUNCT_1, PARTFUN1, FUNCT_2, FINSEQ_1, STRUCT_0,
FINSEQ_2, FINSEQ_3, FINSEQOP, CLASSES1, RVSUM_1, RLVECT_1, RLVECT_2,
RLVECT_3, RLVECT_5, RLSUB_1, RLSUB_2, RUSUB_4, CONVEX1, CONVEX2, CONVEX3;
constructors BINOP_1, BINOP_2, CLASSES1, CONVEX1, CONVEX3, FINSEQOP, FINSOP_1,
MATRLIN, ORDERS_1, REALSET1, REAL_1, RLVECT_3, RLVECT_5, RVSUM_1,
RLSUB_2, RUSUB_5, SETWISEO, RELSET_1;
registrations BINOP_2, CARD_1, CONVEX1, FINSET_1, FINSEQ_2, FUNCT_1, FUNCT_2,
NAT_1, NUMBERS, RELAT_1, RLVECT_1, RLVECT_3, RUSUB_4, STRUCT_0, SUBSET_1,
VALUED_0, XCMPLX_0, XREAL_0, XXREAL_0, RLVECT_5, RELSET_1, RLVECT_2,
ORDINAL1;
requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM;
begin :: Preliminaries
reserve x,y for set,
r,s for Real,
S for non empty addLoopStr,
LS,LS1,LS2 for Linear_Combination of S,
G for Abelian add-associative right_zeroed right_complementable
non empty addLoopStr,
LG,LG1,LG2 for Linear_Combination of G,
g,h for Element of G,
RLS for non empty RLSStruct,
R for vector-distributive scalar-distributive scalar-associative
scalar-unitalnon empty RLSStruct,
AR for Subset of R,
LR,LR1,LR2 for Linear_Combination of R,
V for RealLinearSpace,
v,v1,v2,w,p for VECTOR of V,
A,B for Subset of V,
F1,F2 for Subset-Family of V,
L,L1,L2 for Linear_Combination of V;
registration
let RLS;
let A be empty Subset of RLS;
cluster conv A -> empty;
end;
registration let RLS;
let A be non empty Subset of RLS;
cluster conv A -> non empty;
end;
theorem :: RLAFFIN1:1
for v be Element of R holds conv {v} = {v};
theorem :: RLAFFIN1:2
for A be Subset of RLS holds A c= conv A;
theorem :: RLAFFIN1:3
for A,B be Subset of RLS st A c= B holds conv A c= conv B;
theorem :: RLAFFIN1:4
for S,A be Subset of RLS st A c= conv S holds conv S = conv(S\/A);
theorem :: RLAFFIN1:5
for V be add-associative non empty addLoopStr
for A be Subset of V for v,w be Element of V
holds (v+w)+A = v+(w+A);
theorem :: RLAFFIN1:6
for V be Abelian right_zeroed non empty addLoopStr for A be Subset of V
holds 0.V + A = A;
theorem :: RLAFFIN1:7
for A be Subset of G holds card A = card (g+A);
theorem :: RLAFFIN1:8
for v be Element of S holds v + {}S = {}S;
theorem :: RLAFFIN1:9
for A,B be Subset of RLS st A c= B holds r*A c= r*B;
theorem :: RLAFFIN1:10
(r*s)* AR = r * (s*AR);
theorem :: RLAFFIN1:11
1 * AR = AR;
theorem :: RLAFFIN1:12
0 * A c= {0.V};
theorem :: RLAFFIN1:13
for F be FinSequence of S holds (LS1+LS2) * F = (LS1*F) + (LS2*F);
theorem :: RLAFFIN1:14
for F be FinSequence of V holds (r*L) * F = r * (L*F);
theorem :: RLAFFIN1:15
A is linearly-independent & A c= B & Lin B = V implies
ex I be linearly-independent Subset of V st A c= I & I c= B & Lin I = V;
begin :: Two Transformations of Linear Combinations
definition
let G,LG,g;
func g + LG -> Linear_Combination of G means
:: RLAFFIN1:def 1
it.h = LG.(h-g);
end;
theorem :: RLAFFIN1:16
Carrier (g+LG) = g + Carrier LG;
theorem :: RLAFFIN1:17
g + (LG1+LG2) = (g+LG1) + (g+LG2);
theorem :: RLAFFIN1:18
v + (r*L) = r * (v+L);
theorem :: RLAFFIN1:19
g + (h+LG) = (g+h) + LG;
theorem :: RLAFFIN1:20
g + ZeroLC G = ZeroLC G;
theorem :: RLAFFIN1:21
0.G + LG = LG;
definition
let R,LR; let r be Real;
func r (*) LR -> Linear_Combination of R means
:: RLAFFIN1:def 2
for v be Element of R holds it.v = LR.(r"*v) if r<>0 otherwise
it = ZeroLC R;
end;
theorem :: RLAFFIN1:22
Carrier (r(*)LR) c= r*Carrier LR;
theorem :: RLAFFIN1:23
r <> 0 implies Carrier (r(*)LR) = r * Carrier LR;
theorem :: RLAFFIN1:24
r (*) (LR1+LR2) = (r(*)LR1) + (r(*)LR2);
theorem :: RLAFFIN1:25
r * (s(*)L) = s (*) (r*L);
theorem :: RLAFFIN1:26
r (*) ZeroLC(R) = ZeroLC R;
theorem :: RLAFFIN1:27
r(*)(s(*)LR)=(r*s)(*)LR;
theorem :: RLAFFIN1:28
1 (*) LR = LR;
begin :: The Sum of Coefficients of a Linear Combination
definition
let S,LS;
func sum LS -> Real means
:: RLAFFIN1:def 3
ex F be FinSequence of S st
F is one-to-one & rng F = Carrier LS & it = Sum (LS*F);
end;
theorem :: RLAFFIN1:29
for F be FinSequence of S st Carrier LS misses rng F holds Sum (LS*F) = 0;
theorem :: RLAFFIN1:30
for F be FinSequence of S st F is one-to-one & Carrier LS c= rng F
holds sum LS = Sum (LS*F);
theorem :: RLAFFIN1:31
sum ZeroLC S = 0;
theorem :: RLAFFIN1:32
for v be Element of S st Carrier LS c= {v} holds sum LS = LS.v;
theorem :: RLAFFIN1:33
for v1,v2 be Element of S st
Carrier LS c= {v1,v2} & v1 <> v2 holds sum LS = LS.v1 + LS.v2;
theorem :: RLAFFIN1:34
sum (LS1+LS2) = sum LS1 + sum LS2;
theorem :: RLAFFIN1:35
sum (r * L) = r * sum L;
theorem :: RLAFFIN1:36
sum (L1-L2) =sum L1 - sum L2;
theorem :: RLAFFIN1:37
sum LG = sum (g+LG);
theorem :: RLAFFIN1:38
r <> 0 implies sum LR = sum (r(*)LR);
theorem :: RLAFFIN1:39
Sum (v + L) = (sum L)*v + Sum L;
theorem :: RLAFFIN1:40
Sum (r(*)L) = r * Sum L;
begin :: Affine Independence of Vectors
definition
let V,A;
attr A is affinely-independent means
:: RLAFFIN1:def 4
A is empty or ex v st v in A & -v + A\{0.V} is linearly-independent;
end;
registration
let V;
cluster empty -> affinely-independent for Subset of V;
let v;
cluster {v} -> affinely-independent for Subset of V;
let w;
cluster {v,w} -> affinely-independent for Subset of V;
end;
registration
let V;
cluster 1-element affinely-independent for Subset of V;
end;
theorem :: RLAFFIN1:41
A is affinely-independent iff for v st v in A holds
-v + A\{0.V} is linearly-independent;
theorem :: RLAFFIN1:42
A is affinely-independent iff
for L be Linear_Combination of A st Sum L = 0.V & sum L = 0
holds Carrier L = {};
theorem :: RLAFFIN1:43
A is affinely-independent & B c= A implies B is affinely-independent;
registration
let V;
cluster linearly-independent -> affinely-independent for Subset of V;
end;
reserve I for affinely-independent Subset of V;
registration
let V,I,v;
cluster v + I -> affinely-independent;
end;
theorem :: RLAFFIN1:44
v+A is affinely-independent implies A is affinely-independent;
registration
let V,I,r;
cluster r*I -> affinely-independent;
end;
theorem :: RLAFFIN1:45
r * A is affinely-independent & r <> 0 implies A is affinely-independent;
theorem :: RLAFFIN1:46
0.V in A implies
(A is affinely-independent iff A \ {0.V} is linearly-independent);
definition
let V;
let F be Subset-Family of V;
attr F is affinely-independent means
:: RLAFFIN1:def 5
A in F implies A is affinely-independent;
end;
registration
let V;
cluster empty -> affinely-independent for Subset-Family of V;
let I;
cluster {I} -> affinely-independent for Subset-Family of V;
end;
registration
let V;
cluster empty affinely-independent for Subset-Family of V;
cluster non empty affinely-independent for Subset-Family of V;
end;
theorem :: RLAFFIN1:47
F1 is affinely-independent & F2 is affinely-independent implies
F1 \/ F2 is affinely-independent;
theorem :: RLAFFIN1:48
F1 c= F2 & F2 is affinely-independent implies F1 is affinely-independent;
begin :: Affine Hull
definition
let RLS;
let A be Subset of RLS;
func Affin A -> Subset of RLS equals
:: RLAFFIN1:def 6
meet {B where B is Affine Subset of RLS : A c= B};
end;
registration
let RLS;
let A be Subset of RLS;
cluster Affin A -> Affine;
end;
registration
let RLS;
let A be empty Subset of RLS;
cluster Affin A -> empty;
end;
registration
let RLS;
let A be non empty Subset of RLS;
cluster Affin A -> non empty;
end;
theorem :: RLAFFIN1:49
for A be Subset of RLS holds A c= Affin A;
theorem :: RLAFFIN1:50
for A be Affine Subset of RLS holds A = Affin A;
theorem :: RLAFFIN1:51
for A,B be Subset of RLS st A c= B & B is Affine holds Affin A c= B;
theorem :: RLAFFIN1:52
for A,B be Subset of RLS st A c= B holds Affin A c= Affin B;
theorem :: RLAFFIN1:53
Affin (v+A) = v + Affin A;
theorem :: RLAFFIN1:54
AR is Affine implies r * AR is Affine;
theorem :: RLAFFIN1:55
r <> 0 implies Affin (r*AR) = r * Affin AR;
theorem :: RLAFFIN1:56
Affin (r*A) = r * Affin A;
theorem :: RLAFFIN1:57
v in Affin A implies Affin A = v + Up Lin (-v+A);
theorem :: RLAFFIN1:58
A is affinely-independent iff for B st B c= A & Affin A = Affin B holds A = B
;
theorem :: RLAFFIN1:59
Affin A = {Sum L where L is Linear_Combination of A : sum L=1};
theorem :: RLAFFIN1:60
I c=A implies ex Ia be affinely-independent Subset of V st
I c= Ia & Ia c= A & Affin Ia = Affin A;
theorem :: RLAFFIN1:61
for A,B be finite Subset of V st
A is affinely-independent & Affin A = Affin B & card B <= card A
holds B is affinely-independent;
theorem :: RLAFFIN1:62
L is convex iff sum L = 1 & for v holds 0 <= L.v;
theorem :: RLAFFIN1:63
L is convex implies L.x <= 1;
theorem :: RLAFFIN1:64
L is convex & L.x = 1 implies Carrier L = {x};
theorem :: RLAFFIN1:65
conv A c= Affin A;
theorem :: RLAFFIN1:66
x in conv A & (conv A)\{x} is convex implies x in A;
theorem :: RLAFFIN1:67
Affin conv A = Affin A;
theorem :: RLAFFIN1:68
conv A c= conv B implies Affin A c= Affin B;
theorem :: RLAFFIN1:69
for A,B be Subset of RLS st A c= Affin B holds Affin (A\/B) = Affin B;
begin :: Barycentric Coordinates
definition
let V;
let A such that
A is affinely-independent;
let x be object such that
x in Affin A;
func x |-- A -> Linear_Combination of A means
:: RLAFFIN1:def 7
Sum it = x & sum it = 1;
end;
theorem :: RLAFFIN1:70
v1 in Affin I & v2 in Affin I implies
((1-r)*v1+r*v2) |-- I = (1-r) * (v1|--I) + r * (v2|--I);
theorem :: RLAFFIN1:71
x in conv I implies x|--I is convex & 0 <= (x|--I).v & (x|--I).v <= 1;
theorem :: RLAFFIN1:72
x in conv I implies ((x|--I).y = 1 iff x = y & x in I);
theorem :: RLAFFIN1:73
for I st x in Affin I & for v st v in I holds 0 <= (x|--I).v
holds x in conv I;
theorem :: RLAFFIN1:74
x in I implies (conv I)\{x} is convex;
theorem :: RLAFFIN1:75
for B st x in Affin I & for y st y in B holds (x|--I).y = 0
holds x in Affin(I\B) & x |-- I = x |-- (I\B);
theorem :: RLAFFIN1:76
for B st x in conv I & for y st y in B holds (x|--I).y = 0
holds x in conv (I\B);
theorem :: RLAFFIN1:77
B c= I & x in Affin B implies x |-- B = x |-- I;
theorem :: RLAFFIN1:78
v1 in Affin A & v2 in Affin A & r+s = 1 implies r*v1 + s*v2 in Affin A;
theorem :: RLAFFIN1:79
for A,B be finite Subset of V st
A is affinely-independent & Affin A c= Affin B
holds card A <= card B;
theorem :: RLAFFIN1:80
for A,B be finite Subset of V st
A is affinely-independent & Affin A c= Affin B & card A = card B
holds B is affinely-independent;
theorem :: RLAFFIN1:81
L1.v <> L2.v implies ((r*L1+(1-r)*L2).v = s iff r = (L2.v-s)/(L2.v-L1.v));
theorem :: RLAFFIN1:82
A\/{v} is affinely-independent iff
A is affinely-independent & (v in A or not v in Affin A);
theorem :: RLAFFIN1:83
not w in Affin A & v1 in A & v2 in A & r<>1 & r*w + (1-r)*v1 = s*w + (1-s)*v2
implies r = s & v1 = v2;
theorem :: RLAFFIN1:84
v in I & w in Affin I & p in Affin(I\{v}) & w = r*v + (1-r)*p
implies r = (w|--I).v;