reserve a,b,p,r,r1,r2,s,s1,s2,x0,x for Real;
reserve f,g for PartFunc of REAL,REAL;
reserve X,Y for set;

theorem Th16:
  f is_convex_on X iff X c= dom f & for a,b,r st a in X & b in X &
r in X & a < r & r < b holds (f.r-f.a)/(r-a) <= (f.b-f.a)/(b-a) & (f.b-f.a)/(b-
  a) <= (f.b-f.r)/(b-r)
proof
A1: X c= dom f & (for a,b,r st a in X & b in X & r in X & a < r & r < b
holds (f.r-f.a)/(r-a) <= (f.b-f.a)/(b-a) & (f.b-f.a)/(b-a) <= (f.b-f.r)/(b-r))
  implies f is_convex_on X
  proof
    assume that
A2: X c= dom f and
A3: for a,b,r st a in X & b in X & r in X & a < r & r < b holds (f.r-
    f .a)/(r-a) <= (f.b-f.a)/(b-a) & (f.b-f.a)/(b-a) <= (f.b-f.r)/(b-r);
    for p being Real st 0<=p & p<=1
 for r,s be Real st r in X & s
    in X & p*r + (1-p)*s in X holds f.(p*r + (1-p)*s) <= p*f.r + (1-p)*f.s
    proof
      let p be Real;
      assume
A4:   0<=p & p<=1;
      for s,t being Real
st s in X & t in X & p*s+(1-p)*t in X holds f.(p
      *s+(1-p)*t) <= p*f.s + (1-p)*f.t
      proof
        let s,t be Real;
        assume
A5:     s in X & t in X & p*s+(1-p)*t in X;
        now
          per cases by A4,XXREAL_0:1;
          suppose
            p=0;
            hence thesis;
          end;
          suppose
            p=1;
            hence thesis;
          end;
          suppose
A6:         0<p & p<1;
            then
A7:         1-p > 0 by XREAL_1:50;
            now
              per cases by XXREAL_0:1;
              suppose
                s=t;
                hence thesis;
              end;
              suppose
                s<t;
                then
A8:             t-s > 0 by XREAL_1:50;
                (p*s+(1-p)*t)-s =(1-p)*(t-s);
                then
A9:             (p*s+(1-p)*t)-s > 0 by A7,A8,XREAL_1:129;
                then
A10:            (p*s+(1-p)*t) > s by XREAL_1:47;
A11:            (f.(p*s+(1-p)*t)-f.s)*(t-s)*p =p*((t-s)*f.(p*s+(1-p)*t))-
p*((t-s)*f.s) & (f. t-f.(p*s+(1-p)*t))*(t-s)*(1-p) =(1-p)*((t-s)*f.t)-(1-p)*((t
                -s)*f.(p*s+(1-p)*t));
                t-(p*s+(1-p)*t) =p*(t-s);
                then
A12:            t-(p*s+(1-p)*t) > 0 by A6,A8,XREAL_1:129;
                then (p*s+(1-p)*t) < t by XREAL_1:47;
                then
                (f.(p*s+(1-p)*t)-f.s)/((p*s+(1-p)*t)-s) <= (f.t-f.s)/(t-s
) & (f.t-f.s)/(t-s) <=(f.t-f.(p*s+(1-p)*t))/(t-(p*s+(1-p)*t)) by A3,A5,A10;
                then
                (f.(p*s+(1-p)*t)-f.s)/((p*s+(1-p)*t)-s) <= (f.t-f.(p*s+(1
                -p)*t))/(t-(p*s+(1-p)*t)) by XXREAL_0:2;
                then
                (f.(p*s+(1-p)*t)-f.s)*(t-(p*s+(1-p)*t)) <= (f.t-f.(p*s+(1
                -p)*t))*((p*s+(1-p)*t)-s) by A12,A9,XREAL_1:106;
                then p*((t-s)*f.(p*s+(1-p)*t))+(1-p)*((t-s)*f.(p*s+(1-p)*t))
                <=(1-p)*((t-s)*f.t)+p*((t-s)*f.s) by A11,XREAL_1:21;
                then f.(p*s+(1-p)*t) <=((1-p)*f.t*(t-s)+p*f.s*(t-s))/(t-s) by
A8,XREAL_1:77;
                then
                f.(p*s+(1-p)*t) <=((1-p)*f.t*(t-s))/(t-s)+(p*f.s*(t-s))/(
                t-s) by XCMPLX_1:62;
                then f.(p*s+(1-p)*t) <=(1-p)*f.t+(p*f.s*(t-s))/(t-s) by A8,
XCMPLX_1:89;
                hence thesis by A8,XCMPLX_1:89;
              end;
              suppose
                s>t;
                then
A13:            s-t > 0 by XREAL_1:50;
                (p*s+(1-p)*t)-t =p*(s-t);
                then
A14:            (p*s+(1-p)*t)-t > 0 by A6,A13,XREAL_1:129;
                then
A15:            (p*s+(1-p)*t) > t by XREAL_1:47;
A16:            (f.(p*s+(1-p)*t)-f.t)*(s-t)*(1-p) =(1-p)*((s-t)*f.(p*s+(1
-p)*t))-(1-p)*((s-t) *f.t) & (f.s-f.(p*s+(1-p)*t))*(s-t)*p =p*((s-t)*f.s)-p*((s
                -t)*f.(p*s+(1-p)*t));
                s-(p*s+(1-p)*t) =(1-p)*(s-t);
                then
A17:            s-(p*s+(1-p)*t) > 0 by A7,A13,XREAL_1:129;
                then (p*s+(1-p)*t) < s by XREAL_1:47;
                then
                (f.(p*s+(1-p)*t)-f.t)/((p*s+(1-p)*t)-t) <= (f.s-f.t)/(s-t
) & (f.s-f.t)/(s-t) <=(f.s-f.(p*s+(1-p)*t))/(s-(p*s+(1-p)*t)) by A3,A5,A15;
                then
                (f.(p*s+(1-p)*t)-f.t)/((p*s+(1-p)*t)-t) <= (f.s-f.(p*s+(1
                -p)*t))/(s-(p*s+(1-p)*t)) by XXREAL_0:2;
                then
                (f.(p*s+(1-p)*t)-f.t)*(s-(p*s+(1-p)*t)) <= (f.s-f.(p*s+(1
                -p)*t))*((p*s+(1-p)*t)-t) by A17,A14,XREAL_1:106;
                then (1-p)*((s-t)*f.(p*s+(1-p)*t))+p*((s-t)*f.(p*s+(1-p)*t))
                <=p*((s-t)*f.s)+(1-p)*((s-t)*f.t) by A16,XREAL_1:21;
                then f.(p*s+(1-p)*t) <=(p*f.s*(s-t)+(1-p)*f.t*(s-t))/(s-t) by
A13,XREAL_1:77;
                then
                f.(p*s+(1-p)*t) <=(p*f.s*(s-t))/(s-t)+((1-p)*f.t*(s-t))/(
                s-t) by XCMPLX_1:62;
                then f.(p*s+(1-p)*t) <=p*f.s+((1-p)*f.t*(s-t))/(s-t) by A13,
XCMPLX_1:89;
                hence thesis by A13,XCMPLX_1:89;
              end;
            end;
            hence thesis;
          end;
        end;
        hence thesis;
      end;
      hence thesis;
    end;
    hence thesis by A2,RFUNCT_3:def 12;
  end;
  f is_convex_on X implies X c= dom f & for a,b,r st a in X & b in X & r
in X & a < r & r < b holds (f.r-f.a)/(r-a) <= (f.b-f.a)/(b-a) & (f.b-f.a)/(b-a)
  <= (f.b-f.r)/(b-r)
  proof
    assume
A18: f is_convex_on X;
    for a,b,r st a in X & b in X & r in X & a < r & r < b holds (f.r-f.a)/
    (r-a) <= (f.b-f.a)/(b-a) & (f.b-f.a)/(b-a) <= (f.b-f.r)/(b-r)
    proof
      let a,b,r;
      assume that
A19:  a in X & b in X & r in X and
A20:  a < r and
A21:  r < b;
      reconsider aa=a, bb=b as Real;
A22:  b-r < b-a & 0 < b-r by A20,A21,XREAL_1:10,50;
      reconsider p = (b-r)/(b-a) as Real;
A23:  0 < r-a by A20,XREAL_1:50;
A24:  p+(r-a)/(b-a) = ((b-r)+(r-a))/(b-a) by XCMPLX_1:62
        .= 1 by A22,XCMPLX_1:60;
      then p*a + (1-p)*b = (a*(b-r))/(b-a)+b*((r-a)/(b-a)) by XCMPLX_1:74
        .= (a*(b-r))/(b-a)+(b*(r-a))/(b-a) by XCMPLX_1:74
        .= ((b*a-r*a)+(r-a)*b)/(b-a) by XCMPLX_1:62
        .= r*(b-a)/(b-a);
      then
A25:  p*a + (1-p)*b = r by A22,XCMPLX_1:89;
A26:  (b-a)*((b-r)/(b-a)*f.a + (r-a)/(b-a)*f.b) = (b-a)*((b-r)/(b-a))*f.a
      + (b-a)*((r-a)/(b-a)*f.b)
        .= (b-r)*f.a + (b-a)*((r-a)/(b-a))*f.b by A22,XCMPLX_1:87
        .= (b-r)*f.a + (r-a)*f.b by A22,XCMPLX_1:87;
      (bb-r)/(bb-aa) < 1 by A22,XREAL_1:189;
      then
A27:  f.(p*a+(1-p)*b) <= p*f.a + (1-p)*f.b by A18,A19,A22,A25,RFUNCT_3:def 12;
      then (b-a)*f.r <= (b-a)*f.a + ((r-a)*f.b - (r-a)*f.a) by A22,A24,A25,A26,
XREAL_1:64;
      then (b-a)*f.r - (b-a)*f.a <= (r-a)*f.b - (r-a)*f.a by XREAL_1:20;
      then (b-a)*(f.r-f.a) <= (r-a)*(f.b-f.a);
      hence (f.r-f.a)/(r-a) <= (f.b-f.a)/(b-a) by A22,A23,XREAL_1:102;
      (b-a)*f.r <= (b-a)*f.b - ((b-r)*f.b - (b-r)*f.a) by A22,A24,A25,A27,A26,
XREAL_1:64;
      then ((b-r)*f.b-(b-r)*f.a)+(b-a)*f.r <= (b-a)*f.b by XREAL_1:19;
      then (b-r)*f.b-(b-r)*f.a <= (b-a)*f.b-(b-a)*f.r by XREAL_1:19;
      then (b-r)*(f.b-f.a) <= (b-a)*(f.b-f.r);
      hence thesis by A22,XREAL_1:102;
    end;
    hence thesis by A18,RFUNCT_3:def 12;
  end;
  hence thesis by A1;
end;
