:: Definition of Convex Function and {J}ensen's Inequality
:: by Grigory E. Ivanov
::
:: Received July 17, 2003
:: Copyright (c) 2003-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, BINOP_1, ZFMISC_1, STRUCT_0,
SUBSET_1, FUNCT_1, ALGSTR_0, REAL_1, SUPINF_2, RELAT_1, ARYTM_3,
FINSEQ_1, CARD_3, CARD_1, XXREAL_0, TARSKI, PARTFUN1, ORDINAL4, BINOP_2,
ARYTM_1, SUPINF_1, NAT_1, FUNCT_2, RFINSEQ, CONVEX1, RFUNCT_3, FINSET_1,
CLASSES1, CONVFUN1, FUNCT_7, XCMPLX_0;
notations TARSKI, XBOOLE_0, SUBSET_1, CARD_1, ORDINAL1, NUMBERS, XXREAL_0,
XXREAL_3, XCMPLX_0, XREAL_0, REAL_1, FUNCT_1, RELSET_1, PARTFUN1,
SUPINF_1, ZFMISC_1, MEASURE6, BINOP_1, FUNCT_2, SUPINF_2, DOMAIN_1,
BINOP_2, FINSET_1, CLASSES1, RFINSEQ, RFUNCT_3, NAT_1, RVSUM_1, EXTREAL1,
FINSEQ_1, FINSEQ_4, STRUCT_0, ALGSTR_0, RLVECT_1, CONVEX1;
constructors BINOP_1, DOMAIN_1, REAL_1, FINSEQ_4, FINSOP_1, RVSUM_1, SUPINF_2,
RFINSEQ, RFUNCT_3, MEASURE6, EXTREAL1, CONVEX1, BINOP_2, SUPINF_1,
CLASSES1, RELSET_1;
registrations XBOOLE_0, SUBSET_1, RELSET_1, FUNCT_2, FINSET_1, NUMBERS,
XXREAL_0, XREAL_0, NAT_1, MEMBERED, FINSEQ_1, STRUCT_0, RLVECT_1,
VALUED_0, ALGSTR_0, CARD_1, XXREAL_3, INT_1, ORDINAL1;
requirements REAL, NUMERALS, BOOLE, SUBSET, ARITHM;
begin :: Product of Two Real Linear Spaces
definition
let X,Y be non empty RLSStruct;
func Add_in_Prod_of_RLS(X,Y) -> BinOp of [:the carrier of X, the carrier of
Y:] means
:: CONVFUN1:def 1
for z1, z2 being Element of [:the carrier of X, the carrier of
Y:], x1, x2 being VECTOR of X, y1, y2 being VECTOR of Y st z1 = [x1,y1] & z2 =
[x2,y2] holds it.(z1,z2) = [(the addF of X).[x1,x2],(the addF of Y).[y1,y2]];
end;
definition
let X,Y be non empty RLSStruct;
func Mult_in_Prod_of_RLS(X,Y) -> Function of [:REAL, [:the carrier of X, the
carrier of Y:]:], [:the carrier of X, the carrier of Y:] means
:: CONVFUN1:def 2
for a being Real,
z being Element of [:the carrier of X, the carrier of Y:], x being
VECTOR of X, y being VECTOR of Y st z = [x,y] holds it.(a,z) = [(the Mult of X)
.[a,x],(the Mult of Y).[a,y]];
end;
definition
let X,Y be non empty RLSStruct;
func Prod_of_RLS(X,Y) -> RLSStruct equals
:: CONVFUN1:def 3
RLSStruct(# [:the carrier of X,
the carrier of Y:], [0.X,0.Y], Add_in_Prod_of_RLS(X,Y), Mult_in_Prod_of_RLS(X,Y
) #);
end;
registration
let X,Y be non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> non empty;
end;
theorem :: CONVFUN1:1
for X,Y being non empty RLSStruct, x being VECTOR of X, y being VECTOR
of Y, u being VECTOR of Prod_of_RLS(X,Y), p being Real st u = [x,y] holds p*u =
[p*x,p*y];
theorem :: CONVFUN1:2
for X,Y being non empty RLSStruct, x1, x2 being VECTOR of X, y1,
y2 being VECTOR of Y, u1, u2 being VECTOR of Prod_of_RLS(X,Y) st u1 = [x1,y1] &
u2 = [x2,y2] holds u1+u2 = [x1+x2,y1+y2];
registration
let X,Y be Abelian non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> Abelian;
end;
registration
let X,Y be add-associative non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> add-associative;
end;
registration
let X,Y be right_zeroed non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> right_zeroed;
end;
registration
let X,Y be right_complementable non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> right_complementable;
end;
registration
let X,Y be vector-distributive scalar-distributive scalar-associative
scalar-unital
non empty RLSStruct;
cluster Prod_of_RLS(X,Y) -> vector-distributive scalar-distributive
scalar-associative scalar-unital;
end;
theorem :: CONVFUN1:3
for X,Y being RealLinearSpace, n being Nat, x being
FinSequence of the carrier of X, y being FinSequence of the carrier of Y, z
being FinSequence of the carrier of Prod_of_RLS(X,Y) st len x = n & len y = n &
len z = n & (for i being Nat st i in Seg n holds z.i = [x.i,y.i])
holds Sum z = [Sum x, Sum y];
begin :: Real Linear Space of Real Numbers
definition
func RLS_Real -> non empty RLSStruct equals
:: CONVFUN1:def 4
RLSStruct(# REAL,In(0,REAL),addreal,multreal #);
end;
registration
cluster RLS_Real -> Abelian add-associative right_zeroed
right_complementable vector-distributive
scalar-distributive scalar-associative scalar-unital;
end;
begin
begin :: Definition of Convex Function
definition
let X be non empty RLSStruct, f be Function of the carrier of X,ExtREAL;
func epigraph f -> Subset of Prod_of_RLS(X,RLS_Real) equals
:: CONVFUN1:def 5
{[x,y] where x is Element of X, y is Element of REAL: f.x <= (y)};
end;
definition
let X be non empty RLSStruct, f be Function of the carrier of X,ExtREAL;
attr f is convex means
:: CONVFUN1:def 6
epigraph f is convex;
end;
theorem :: CONVFUN1:4
for X being non empty RLSStruct, f being Function of the carrier
of X,ExtREAL st (for x being VECTOR of X holds f.x <> -infty) holds f is convex
iff for x1, x2 being VECTOR of X,
p being Real st 0 -infty) holds f is convex iff
for x1, x2 being VECTOR of X,
p being Real st 0<=p & p<=1 holds f.(p*x1+(1-p)*
x2) <= (p)*f.x1+(1-p)*f.x2;
begin :: Relation between notions "function is convex" and "function is convex on set"
theorem :: CONVFUN1:6
for f being PartFunc of REAL,REAL, g being Function of the carrier of
RLS_Real,ExtREAL, X being Subset of RLS_Real st X c= dom f & for x being Real
holds (x in X implies g.x=f.x) & (not x in X implies g.x=+infty) holds g is
convex iff f is_convex_on X & X is convex;
begin :: CONVEX2:6 in other words
theorem :: CONVFUN1:7
for X being RealLinearSpace, M being Subset of X holds M is
convex iff for n being non zero Nat, p being FinSequence of REAL, y,z being
FinSequence of the carrier of X st len p = n & len y = n & len z = n & Sum p =
1 & (for i being Nat st i in Seg n holds p.i>0 & z.i=p.i*y/.i & y/.i in M)
holds Sum(z) in M;
begin
theorem :: CONVFUN1:8
for X being RealLinearSpace, f being Function of the carrier of
X,ExtREAL st (for x being VECTOR of X holds f.x <> -infty) holds f is convex
iff for n being non zero Element of NAT, p being FinSequence of REAL, F being
FinSequence of ExtREAL, y,z being FinSequence of the carrier of X st len p = n
& len F = n & len y = n & len z = n & Sum p = 1 & (for i being Element of NAT
st i in Seg n holds p.i>0 & z.i=p.i*y/.i & F.i = (p.i)*f.(y/.i)) holds f.
Sum(z) <= Sum F;
theorem :: CONVFUN1:9
for X being RealLinearSpace, f being Function of the carrier of X,
ExtREAL st (for x being VECTOR of X holds f.x <> -infty) holds f is convex iff
for n being non zero Element of NAT, p being FinSequence of REAL, F being
FinSequence of ExtREAL, y,z being FinSequence of the carrier of X st len p = n
& len F = n & len y = n & len z = n & Sum p = 1 & (for i being Element of NAT
st i in Seg n holds p.i>=0 & z.i=p.i*y/.i & F.i = (p.i)*f.(y/.i)) holds f.
Sum(z) <= Sum F;