Article CONVFUN1, MML version 4.99.1005

:: CONVFUN1:funcnot 1 => CONVFUN1:func 1
definition
  let a1, a2 be non empty RLSStruct;
  func Add_in_Prod_of_RLS(A1,A2) -> Function-like quasi_total Relation of [:[:the carrier of a1,the carrier of a2:],[:the carrier of a1,the carrier of a2:]:],[:the carrier of a1,the carrier of a2:] means
    for b1, b2 being Element of [:the carrier of a1,the carrier of a2:]
    for b3, b4 being Element of the carrier of a1
    for b5, b6 being Element of the carrier of a2
          st b1 = [b3,b5] & b2 = [b4,b6]
       holds it .(b1,b2) = [(the addF of a1) . [b3,b4],(the addF of a2) . [b5,b6]];
end;

:: CONVFUN1:def 1
theorem
for b1, b2 being non empty RLSStruct
for b3 being Function-like quasi_total Relation of [:[:the carrier of b1,the carrier of b2:],[:the carrier of b1,the carrier of b2:]:],[:the carrier of b1,the carrier of b2:] holds
      b3 = Add_in_Prod_of_RLS(b1,b2)
   iff
      for b4, b5 being Element of [:the carrier of b1,the carrier of b2:]
      for b6, b7 being Element of the carrier of b1
      for b8, b9 being Element of the carrier of b2
            st b4 = [b6,b8] & b5 = [b7,b9]
         holds b3 .(b4,b5) = [(the addF of b1) . [b6,b7],(the addF of b2) . [b8,b9]];

:: CONVFUN1:funcnot 2 => CONVFUN1:func 2
definition
  let a1, a2 be non empty RLSStruct;
  func Mult_in_Prod_of_RLS(A1,A2) -> Function-like quasi_total Relation of [:REAL,[:the carrier of a1,the carrier of a2:]:],[:the carrier of a1,the carrier of a2:] means
    for b1 being Element of REAL
    for b2 being Element of [:the carrier of a1,the carrier of a2:]
    for b3 being Element of the carrier of a1
    for b4 being Element of the carrier of a2
          st b2 = [b3,b4]
       holds it .(b1,b2) = [(the Mult of a1) . [b1,b3],(the Mult of a2) . [b1,b4]];
end;

:: CONVFUN1:def 2
theorem
for b1, b2 being non empty RLSStruct
for b3 being Function-like quasi_total Relation of [:REAL,[:the carrier of b1,the carrier of b2:]:],[:the carrier of b1,the carrier of b2:] holds
      b3 = Mult_in_Prod_of_RLS(b1,b2)
   iff
      for b4 being Element of REAL
      for b5 being Element of [:the carrier of b1,the carrier of b2:]
      for b6 being Element of the carrier of b1
      for b7 being Element of the carrier of b2
            st b5 = [b6,b7]
         holds b3 .(b4,b5) = [(the Mult of b1) . [b4,b6],(the Mult of b2) . [b4,b7]];

:: CONVFUN1:funcnot 3 => CONVFUN1:func 3
definition
  let a1, a2 be non empty RLSStruct;
  func Prod_of_RLS(A1,A2) -> RLSStruct equals
    RLSStruct(#[:the carrier of a1,the carrier of a2:],[0. a1,0. a2],Add_in_Prod_of_RLS(a1,a2),Mult_in_Prod_of_RLS(a1,a2)#);
end;

:: CONVFUN1:def 3
theorem
for b1, b2 being non empty RLSStruct holds
Prod_of_RLS(b1,b2) = RLSStruct(#[:the carrier of b1,the carrier of b2:],[0. b1,0. b2],Add_in_Prod_of_RLS(b1,b2),Mult_in_Prod_of_RLS(b1,b2)#);

:: CONVFUN1:funcreg 1
registration
  let a1, a2 be non empty RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> non empty;
end;

:: CONVFUN1:th 1
theorem
for b1, b2 being non empty RLSStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2
for b5 being Element of the carrier of Prod_of_RLS(b1,b2)
for b6 being Element of REAL
      st b5 = [b3,b4]
   holds b6 * b5 = [b6 * b3,b6 * b4];

:: CONVFUN1:th 2
theorem
for b1, b2 being non empty RLSStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Element of the carrier of Prod_of_RLS(b1,b2)
      st b7 = [b3,b5] & b8 = [b4,b6]
   holds b7 + b8 = [b3 + b4,b5 + b6];

:: CONVFUN1:funcreg 2
registration
  let a1, a2 be non empty Abelian RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> Abelian;
end;

:: CONVFUN1:funcreg 3
registration
  let a1, a2 be non empty add-associative RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> add-associative;
end;

:: CONVFUN1:funcreg 4
registration
  let a1, a2 be non empty right_zeroed RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> right_zeroed;
end;

:: CONVFUN1:funcreg 5
registration
  let a1, a2 be non empty right_complementable RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> right_complementable;
end;

:: CONVFUN1:funcreg 6
registration
  let a1, a2 be non empty RealLinearSpace-like RLSStruct;
  cluster Prod_of_RLS(a1,a2) -> RealLinearSpace-like;
end;

:: CONVFUN1:th 3
theorem
for b1, b2 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RLSStruct
for b3 being Element of NAT
for b4 being FinSequence of the carrier of b1
for b5 being FinSequence of the carrier of b2
for b6 being FinSequence of the carrier of Prod_of_RLS(b1,b2)
      st len b4 = b3 &
         len b5 = b3 &
         len b6 = b3 &
         (for b7 being Element of NAT
               st b7 in Seg b3
            holds b6 . b7 = [b4 . b7,b5 . b7])
   holds Sum b6 = [Sum b4,Sum b5];

:: CONVFUN1:funcnot 4 => CONVFUN1:func 4
definition
  func RLS_Real -> non empty RLSStruct equals
    RLSStruct(#REAL,0,addreal,multreal#);
end;

:: CONVFUN1:def 4
theorem
RLS_Real = RLSStruct(#REAL,0,addreal,multreal#);

:: CONVFUN1:funcreg 7
registration
  cluster RLS_Real -> non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like;
end;

:: CONVFUN1:funcnot 5 => CONVFUN1:func 5
definition
  let a1 be FinSequence of ExtREAL;
  func Sum A1 -> Element of ExtREAL means
    ex b1 being Function-like quasi_total Relation of NAT,ExtREAL st
       it = b1 . len a1 &
        b1 . 0 = 0. &
        (for b2 being Element of NAT
              st b2 < len a1
           holds b1 . (b2 + 1) = (b1 . b2) + (a1 . (b2 + 1)));
end;

:: CONVFUN1:def 5
theorem
for b1 being FinSequence of ExtREAL
for b2 being Element of ExtREAL holds
      b2 = Sum b1
   iff
      ex b3 being Function-like quasi_total Relation of NAT,ExtREAL st
         b2 = b3 . len b1 &
          b3 . 0 = 0. &
          (for b4 being Element of NAT
                st b4 < len b1
             holds b3 . (b4 + 1) = (b3 . b4) + (b1 . (b4 + 1)));

:: CONVFUN1:th 4
theorem
Sum <*> ExtREAL = 0.;

:: CONVFUN1:th 5
theorem
for b1 being Element of ExtREAL holds
   Sum <*b1*> = b1;

:: CONVFUN1:th 6
theorem
for b1, b2 being Element of ExtREAL holds
Sum <*b1,b2*> = b1 + b2;

:: CONVFUN1:th 7
theorem
for b1, b2 being FinSequence of ExtREAL
      st not -infty in rng b1 & not -infty in rng b2
   holds Sum (b1 ^ b2) = (Sum b1) + Sum b2;

:: CONVFUN1:th 8
theorem
for b1, b2 being FinSequence of ExtREAL
for b3 being Function-like quasi_total bijective Relation of dom b1,dom b1
      st b2 = b1 * b3 & not -infty in rng b1
   holds Sum b1 = Sum b2;

:: CONVFUN1:funcnot 6 => CONVFUN1:func 6
definition
  let a1 be non empty RLSStruct;
  let a2 be Function-like quasi_total Relation of the carrier of a1,ExtREAL;
  func epigraph A2 -> Element of bool the carrier of Prod_of_RLS(a1,RLS_Real) equals
    {[b1,b2] where b1 is Element of the carrier of a1, b2 is Element of REAL: a2 . b1 <= R_EAL b2};
end;

:: CONVFUN1:def 6
theorem
for b1 being non empty RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL holds
   epigraph b2 = {[b3,b4] where b3 is Element of the carrier of b1, b4 is Element of REAL: b2 . b3 <= R_EAL b4};

:: CONVFUN1:attrnot 1 => CONVFUN1:attr 1
definition
  let a1 be non empty RLSStruct;
  let a2 be Function-like quasi_total Relation of the carrier of a1,ExtREAL;
  attr a2 is convex means
    epigraph a2 is convex(Prod_of_RLS(a1,RLS_Real));
end;

:: CONVFUN1:dfs 7
definiens
  let a1 be non empty RLSStruct;
  let a2 be Function-like quasi_total Relation of the carrier of a1,ExtREAL;
To prove
     a2 is convex
it is sufficient to prove
  thus epigraph a2 is convex(Prod_of_RLS(a1,RLS_Real));

:: CONVFUN1:def 7
theorem
for b1 being non empty RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL holds
      b2 is convex(b1)
   iff
      epigraph b2 is convex(Prod_of_RLS(b1,RLS_Real));

:: CONVFUN1:th 9
theorem
for b1 being non empty RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL
      st for b3 being Element of the carrier of b1 holds
           b2 . b3 <> -infty
   holds    b2 is convex(b1)
   iff
      for b3, b4 being Element of the carrier of b1
      for b5 being Element of REAL
            st 0 < b5 & b5 < 1
         holds b2 . ((b5 * b3) + ((1 - b5) * b4)) <= ((R_EAL b5) * (b2 . b3)) + ((R_EAL (1 - b5)) * (b2 . b4));

:: CONVFUN1:th 10
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL
      st for b3 being Element of the carrier of b1 holds
           b2 . b3 <> -infty
   holds    b2 is convex(b1)
   iff
      for b3, b4 being Element of the carrier of b1
      for b5 being Element of REAL
            st 0 <= b5 & b5 <= 1
         holds b2 . ((b5 * b3) + ((1 - b5) * b4)) <= ((R_EAL b5) * (b2 . b3)) + ((R_EAL (1 - b5)) * (b2 . b4));

:: CONVFUN1:th 11
theorem
for b1 being Function-like Relation of REAL,REAL
for b2 being Function-like quasi_total Relation of the carrier of RLS_Real,ExtREAL
for b3 being Element of bool the carrier of RLS_Real
      st b3 c= dom b1 &
         (for b4 being Element of REAL holds
            (b4 in b3 implies b2 . b4 = b1 . b4) & (b4 in b3 or b2 . b4 = +infty))
   holds    b2 is convex(RLS_Real)
   iff
      b1 is_convex_on b3 & b3 is convex(RLS_Real);

:: CONVFUN1:th 12
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RLSStruct
for b2 being Element of bool the carrier of b1 holds
      b2 is convex(b1)
   iff
      for b3 being non empty Element of NAT
      for b4 being FinSequence of REAL
      for b5, b6 being FinSequence of the carrier of b1
            st len b4 = b3 &
               len b5 = b3 &
               len b6 = b3 &
               Sum b4 = 1 &
               (for b7 being Element of NAT
                     st b7 in Seg b3
                  holds 0 < b4 . b7 &
                   b6 . b7 = (b4 . b7) * (b5 /. b7) &
                   b5 /. b7 in b2)
         holds Sum b6 in b2;

:: CONVFUN1:th 13
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL
      st for b3 being Element of the carrier of b1 holds
           b2 . b3 <> -infty
   holds    b2 is convex(b1)
   iff
      for b3 being non empty Element of NAT
      for b4 being FinSequence of REAL
      for b5 being FinSequence of ExtREAL
      for b6, b7 being FinSequence of the carrier of b1
            st len b4 = b3 &
               len b5 = b3 &
               len b6 = b3 &
               len b7 = b3 &
               Sum b4 = 1 &
               (for b8 being Element of NAT
                     st b8 in Seg b3
                  holds 0 < b4 . b8 &
                   b7 . b8 = (b4 . b8) * (b6 /. b8) &
                   b5 . b8 = (R_EAL (b4 . b8)) * (b2 . (b6 /. b8)))
         holds b2 . Sum b7 <= Sum b5;

:: CONVFUN1:th 14
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RLSStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,ExtREAL
      st for b3 being Element of the carrier of b1 holds
           b2 . b3 <> -infty
   holds    b2 is convex(b1)
   iff
      for b3 being non empty Element of NAT
      for b4 being FinSequence of REAL
      for b5 being FinSequence of ExtREAL
      for b6, b7 being FinSequence of the carrier of b1
            st len b4 = b3 &
               len b5 = b3 &
               len b6 = b3 &
               len b7 = b3 &
               Sum b4 = 1 &
               (for b8 being Element of NAT
                     st b8 in Seg b3
                  holds 0 <= b4 . b8 &
                   b7 . b8 = (b4 . b8) * (b6 /. b8) &
                   b5 . b8 = (R_EAL (b4 . b8)) * (b2 . (b6 /. b8)))
         holds b2 . Sum b7 <= Sum b5;