:: Convex Sets and Convex Combinations :: by Noboru Endou , Takashi Mitsuishi and Yasunari Shidama :: :: Received November 5, 2002 :: Copyright (c) 2002-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 NUMBERS, XBOOLE_0, RLVECT_1, SUBSET_1, REAL_1, RELAT_1, CARD_1, ARYTM_3, ARYTM_1, TARSKI, SUPINF_2, ALGSTR_0, RUSUB_4, RLSUB_1, STRUCT_0, XXREAL_0, SETFAM_1, BHSP_1, PROB_2, RLVECT_2, FINSEQ_1, FUNCT_1, CARD_3, NAT_1, PARTFUN1, VALUED_1, CONVEX1; notations TARSKI, XBOOLE_0, ENUMSET1, SUBSET_1, SETFAM_1, DOMAIN_1, STRUCT_0, ALGSTR_0, CARD_1, ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0, FUNCT_1, NAT_1, REAL_1, PARTFUN1, FINSEQ_1, RLVECT_1, RLSUB_1, RLVECT_2, RVSUM_1, BHSP_1, RUSUB_4, RUSUB_5, XXREAL_0; constructors SETFAM_1, DOMAIN_1, XXREAL_0, REAL_1, PARTFUN1, BINOP_2, FINSEQ_4, FINSOP_1, RVSUM_1, RLVECT_2, RUSUB_5, RELSET_1; registrations SUBSET_1, RELSET_1, NUMBERS, XXREAL_0, XREAL_0, STRUCT_0, RLVECT_1, RUSUB_4, VALUED_0, FINSEQ_1, CARD_1, ORDINAL1; requirements NUMERALS, REAL, SUBSET, BOOLE, ARITHM; begin :: Convex Sets definition let V be non empty RLSStruct, M be Subset of V, r be Real; func r*M -> Subset of V equals :: CONVEX1:def 1 {r * v where v is Element of V: v in M}; end; definition let V be non empty RLSStruct, M be Subset of V; attr M is convex means :: CONVEX1:def 2 for u,v being VECTOR of V, r be Real st 0 < r & r < 1 & u in M & v in M holds r*u + (1-r)*v in M; end; theorem :: CONVEX1:1 for V being vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M being Subset of V, r being Real st M is convex holds r*M is convex; theorem :: CONVEX1:2 for V being Abelian add-associative vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M,N being Subset of V st M is convex & N is convex holds M + N is convex; theorem :: CONVEX1:3 for V being RealLinearSpace, M,N being Subset of V st M is convex & N is convex holds M - N is convex; theorem :: CONVEX1:4 for V being non empty RLSStruct, M being Subset of V holds M is convex iff for r being Real st 0 < r & r < 1 holds r*M + (1-r)*M c= M; theorem :: CONVEX1:5 for V being Abelian non empty RLSStruct, M being Subset of V st M is convex for r being Real st 0 < r & r < 1 holds (1-r)*M + r*M c= M; theorem :: CONVEX1:6 for V being Abelian add-associative vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M,N being Subset of V st M is convex & N is convex holds for r being Real holds r*M + (1-r)*N is convex; theorem :: CONVEX1:7 for V being RealLinearSpace, M being Subset of V, v being VECTOR of V holds M is convex iff v + M is convex; theorem :: CONVEX1:8 for V being RealLinearSpace holds Up((0).V) is convex; theorem :: CONVEX1:9 for V being RealLinearSpace holds Up((Omega).V) is convex; theorem :: CONVEX1:10 for V being non empty RLSStruct, M being Subset of V st M = {} holds M is convex; theorem :: CONVEX1:11 for V being Abelian add-associative vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M1,M2 being Subset of V, r1,r2 being Real st M1 is convex & M2 is convex holds r1*M1 + r2*M2 is convex; theorem :: CONVEX1:12 for V being vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M being Subset of V, r1,r2 being Real holds (r1 + r2)*M c= r1*M + r2*M; theorem :: CONVEX1:13 for V being RealLinearSpace, M being Subset of V, r1,r2 being Real st r1 >= 0 & r2 >= 0 & M is convex holds r1*M + r2*M = (r1 + r2)*M; theorem :: CONVEX1:14 for V being Abelian add-associative vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M1,M2,M3 being Subset of V, r1,r2,r3 being Real st M1 is convex & M2 is convex & M3 is convex holds r1*M1 + r2*M2 + r3*M3 is convex; theorem :: CONVEX1:15 for V being non empty RLSStruct, F being Subset-Family of V st ( for M being Subset of V st M in F holds M is convex) holds meet F is convex; theorem :: CONVEX1:16 for V being non empty RLSStruct, M being Subset of V st M is Affine holds M is convex; registration let V be non empty RLSStruct; cluster non empty convex for Subset of V; end; registration let V be non empty RLSStruct; cluster empty convex for Subset of V; end; theorem :: CONVEX1:17 for V being RealUnitarySpace-like non empty UNITSTR, M being Subset of V, v being VECTOR of V, r being Real st M = {u where u is VECTOR of V : u .|. v >= r} holds M is convex; theorem :: CONVEX1:18 for V being RealUnitarySpace-like non empty UNITSTR, M being Subset of V, v being VECTOR of V, r being Real st M = {u where u is VECTOR of V : u .|. v > r} holds M is convex; theorem :: CONVEX1:19 for V being RealUnitarySpace-like non empty UNITSTR, M being Subset of V, v being VECTOR of V, r being Real st M = {u where u is VECTOR of V : u .|. v <= r} holds M is convex; theorem :: CONVEX1:20 for V being RealUnitarySpace-like non empty UNITSTR, M being Subset of V, v being VECTOR of V, r being Real st M = {u where u is VECTOR of V : u .|. v < r} holds M is convex; begin :: Convex Combinations definition let V be RealLinearSpace, L be Linear_Combination of V; attr L is convex means :: CONVEX1:def 3 ex F being FinSequence of the carrier of V st F is one-to-one & rng F = Carrier L & ex f being FinSequence of REAL st len f = len F & Sum(f) = 1 & for n being Nat st n in dom f holds f.n = L.(F.n) & f.n >= 0; end; theorem :: CONVEX1:21 for V being RealLinearSpace, L being Linear_Combination of V st L is convex holds Carrier(L) <> {}; theorem :: CONVEX1:22 for V being RealLinearSpace, L being Linear_Combination of V, v being VECTOR of V st L is convex & L.v <= 0 holds not v in Carrier(L); theorem :: CONVEX1:23 for V being RealLinearSpace, L being Linear_Combination of V st L is convex holds L <> ZeroLC(V); theorem :: CONVEX1:24 for V being RealLinearSpace, v being VECTOR of V, L being Linear_Combination of {v} st L is convex holds L.v = 1 & Sum(L) = L.v * v; theorem :: CONVEX1:25 for V being RealLinearSpace, v1,v2 being VECTOR of V, L being Linear_Combination of {v1,v2} st v1 <> v2 & L is convex holds L.v1 + L.v2 = 1 & L.v1 >= 0 & L.v2 >= 0 & Sum(L) = L.v1 * v1 + L.v2 * v2; theorem :: CONVEX1:26 for V being RealLinearSpace, v1,v2,v3 being VECTOR of V, L being Linear_Combination of {v1,v2,v3} st v1 <> v2 & v2 <> v3 & v3 <> v1 & L is convex holds L.v1 + L.v2 + L.v3 = 1 & L.v1 >= 0 & L.v2 >= 0 & L.v3 >= 0 & Sum(L ) = L.v1 * v1 + L.v2 * v2 + L.v3 * v3; theorem :: CONVEX1:27 for V being RealLinearSpace, v being VECTOR of V, L being Linear_Combination of V st L is convex & Carrier(L) = {v} holds L.v = 1 ; theorem :: CONVEX1:28 for V being RealLinearSpace, v1,v2 being VECTOR of V, L being Linear_Combination of V st L is convex & Carrier(L) = {v1,v2} & v1 <> v2 holds L.v1 + L.v2 = 1 & L.v1 >= 0 & L.v2 >= 0; theorem :: CONVEX1:29 for V being RealLinearSpace, v1,v2,v3 being VECTOR of V, L being Linear_Combination of V st L is convex & Carrier(L) = {v1,v2,v3} & v1 <> v2 & v2 <> v3 & v3 <> v1 holds L.v1 + L.v2 + L.v3 = 1 & L.v1 >= 0 & L.v2 >= 0 & L.v3 >= 0 & Sum(L) = L.v1 * v1 + L.v2 * v2 + L.v3 * v3; begin :: Convex Hull definition let V be non empty RLSStruct, M be Subset of V; func Convex-Family M -> Subset-Family of V means :: CONVEX1:def 4 for N being Subset of V holds N in it iff N is convex & M c= N; end; definition let V be non empty RLSStruct, M be Subset of V; func conv(M) -> convex Subset of V equals :: CONVEX1:def 5 meet (Convex-Family M); end; theorem :: CONVEX1:30 for V being non empty RLSStruct, M being Subset of V, N being convex Subset of V st M c= N holds conv(M) c= N; begin :: Miscellaneous theorem :: CONVEX1:31 for p being FinSequence, x,y,z being set st p is one-to-one & rng p = {x,y,z} & x <> y & y <> z & z <> x holds p = <* x,y,z *> or p = <* x,z,y *> or p = <* y,x,z *> or p = <* y,z,x *> or p = <* z,x,y *> or p = <* z,y,x *>; theorem :: CONVEX1:32 for V being vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M being Subset of V holds 1*M = M; theorem :: CONVEX1:33 for V being non empty RLSStruct, M being empty Subset of V, r being Real holds r * M = {}; theorem :: CONVEX1:34 for V being RealLinearSpace, M be non empty Subset of V holds 0 * M = {0.V}; theorem :: CONVEX1:35 for V being right_zeroed non empty addLoopStr, M being Subset of V holds M + {0.V} = M; theorem :: CONVEX1:36 for V be add-associative non empty addLoopStr, M1,M2,M3 be Subset of V holds (M1 + M2) + M3 = M1 + (M2 + M3); theorem :: CONVEX1:37 for V being vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M being Subset of V, r1,r2 being Real holds r1*(r2*M) = (r1*r2)*M; theorem :: CONVEX1:38 for V being vector-distributive scalar-distributive scalar-associative scalar-unital non empty RLSStruct, M1,M2 being Subset of V, r being Real holds r*(M1 + M2) = r*M1 + r*M2; theorem :: CONVEX1:39 for V being non empty RLSStruct, M,N being Subset of V, r being Real st M c= N holds r*M c= r*N; theorem :: CONVEX1:40 for V being non empty addLoopStr, M being empty Subset of V, N being Subset of V holds M + N = {}; begin ::Addenda :: from CONVEX2, 2008.07.07, A.T. registration let V be non empty RLSStruct, M,N be convex Subset of V; cluster M /\ N -> convex for Subset of V; end; registration let V be RealLinearSpace, M be Subset of V; cluster Convex-Family M -> non empty; end; theorem :: CONVEX1:41 for V being RealLinearSpace, M being Subset of V holds M c= conv(M);