reserve x,y,z for set;
reserve f,f1,f2,f3 for FinSequence,
  p,p1,p2,p3 for set,
  i,k for Nat;
reserve D for non empty set,
  p,p1,p2,p3 for Element of D,
  f,f1,f2 for FinSequence of D;
reserve D for non empty set;
reserve p, q for FinSequence,
  X, Y, x, y for set,
  D for non empty set,
  i, j, k, l, m, n, r for Nat;
reserve a, a1, a2 for TwoValued Alternating FinSequence;
reserve fs, fs1, fs2 for FinSequence of X,
  fss, fss2 for Subset of fs;
reserve F, F1 for FinSequence of INT,
  k, m, n, ma for Nat;

theorem Th59:
  1 <= m & m <= n & n <= len F implies (ma = min_at(F, m, n) iff
  m <= ma & ma <= n &
  (for i being Nat st m <= i & i <= n holds F.ma <= F.i) &
  for i being Nat st m <= i & i < ma holds F.ma < F.i)
proof
  assume that
A1: 1 <= m and
A2: m <= n and
A3: n <= len F;
  set Cut = (m,n)-cut F;
A4: len Cut +m = n+1 by A1,A2,A3,Def1;
  hereby
A5: n-m < n-m+1 by XREAL_1:29;
    assume ma = min_at(F, m, n);
    then consider X being finite non empty Subset of INT such that
A6: X = rng Cut and
A7: ma+1 = (min X)..Cut +m by A1,A2,A3,Def11;
A8: ma = (min X)..Cut-1 +m by A7;
A9: ma = (min X)..Cut +m-1 by A7;
A10: min X in X by XXREAL_2:def 7;
    then
A11: 1 <= (min X)..Cut by A6,FINSEQ_4:21;
    then 1-1 <= (min X)..Cut-1 by XREAL_1:9;
    then reconsider i1 = (min X)..Cut-1 as Element of NAT by INT_1:3;
A12: (min X)..Cut <= len Cut by A6,A10,FINSEQ_4:21;
    then i1 < len Cut by XREAL_1:146,XXREAL_0:2;
    then
A13: F.ma = Cut.(i1+1) by A1,A2,A3,A8,Def1
      .= Cut.(ma+1-m) by A7;
    (min X)..Cut+m <= len Cut +m by A12,XREAL_1:6;
    then
A14: ma <= len Cut +m-1 by A9,XREAL_1:9;
    m+1 <= (min X)..Cut +m by A11,XREAL_1:6;
    then m+1-1 <= ma by A9,XREAL_1:9;
    hence m <= ma & ma <= n by A4,A14;
A15: Cut.((min X)..Cut) = min X by A6,A10,FINSEQ_4:19;
    thus
A16: for i being Nat st m <= i & i <= n holds F.ma <= F.i
    proof
      let i be Nat;
      assume that
A17:  m <= i and
A18:  i <= n;
      m-m <= i-m by A17,XREAL_1:9;
      then reconsider i1 = i-m as Element of NAT by INT_1:3;
A19:  0+1 <= i1+1 by XREAL_1:6;
A20:  n-m < n-m+1 by XREAL_1:29;
      i1 <= n-m by A18,XREAL_1:9;
      then
A21:  i1 < len Cut by A4,A20,XXREAL_0:2;
      then i1+1 <= len Cut by NAT_1:13;
      then
A22:  i1+1 in dom Cut by A19,FINSEQ_3:25;
      Cut.(i1+1) = F.(m+i1) by A1,A2,A3,A21,Def1;
      then F.i in rng Cut by A22,FUNCT_1:def 3;
      hence thesis by A6,A7,A13,A15,XXREAL_2:def 7;
    end;
    let i be Nat;
    assume that
A23: m <= i and
A24: i < ma;
A25: i <= n by A4,A14,A24,XXREAL_0:2;
    then
A26: F.ma <= F.i by A16,A23;
    m-m <= i-m by A23,XREAL_1:9;
    then reconsider i1 = i-m as Element of NAT by INT_1:3;
    reconsider k = i1+1 as Element of NAT;
    i <= len Cut -1 +m by A14,A24,XXREAL_0:2;
    then i-m <= len Cut -1 by XREAL_1:20;
    then
A27: k <= len Cut by XREAL_1:19;
    i1 <= n-m by A25,XREAL_1:9;
    then
A28: i1 < len Cut by A4,A5,XXREAL_0:2;
    0+1 <= k by XREAL_1:6;
    then
A29: k in dom Cut by A27,FINSEQ_3:25;
    i-m < ma-m by A24,XREAL_1:9;
    then
A30: k < ma-m+1 by XREAL_1:6;
    F.i = F.(i1+m) .= Cut.k by A1,A2,A3,A28,Def1;
    then F.i <> F.ma by A6,A7,A10,A13,A30,A29,FINSEQ_4:19,24;
    hence F.ma < F.i by A26,XXREAL_0:1;
  end;
  set Cut = (m,n)-cut F;
A31: len Cut +m = n+1 by A1,A2,A3,Def1;
  then
A32: len Cut = n+1-m;
  set X = rng Cut;
A33: rng (Cut qua Relation of NAT, INT) is Subset of INT;
  m < n+1 by A2,NAT_1:13;
  then m-m < n+1-m by XREAL_1:9;
  then Cut is non empty by A31;
  then reconsider X as finite non empty Subset of INT by A33;
  reconsider rX = X as finite non empty Subset of REAL by MEMBERED:3;
  assume that
A34: m <= ma and
A35: ma <= n and
A36: for i being Nat st m <= i & i <= n holds F.ma <= F.i and
A37: for i being Nat st m <= i & i < ma holds F.ma < F.i;
  m-m <= ma-m by A34,XREAL_1:9;
  then reconsider qm = ma-m as Element of NAT by INT_1:3;
A38: qm+1 = ma+1-m;
  then reconsider q1 = ma+1-m as Element of NAT;
  ma+1 <= n+1 by A35,XREAL_1:6;
  then
A39: q1 <= len Cut by A32,XREAL_1:9;
  0+1 <= qm+1 by XREAL_1:6;
  then
A40: q1 in dom Cut by A39,FINSEQ_3:25;
A41: ma = qm+m;
  qm < len Cut by A38,A39,NAT_1:13;
  then
A42: F.ma = Cut.(ma+1-m) by A1,A2,A3,A38,A41,Def1;
  now
    thus F.ma in X by A40,A42,FUNCT_1:def 3;
    let k be ExtReal;
    assume k in X;
    then consider dk being object such that
A43: dk in dom Cut and
A44: Cut.dk = k by FUNCT_1:def 3;
    reconsider dk as Element of NAT by A43;
    1 <= dk by A43,FINSEQ_3:25;
    then 1-1 <= dk-1 by XREAL_1:9;
    then reconsider dk1 = dk-1 as Element of NAT by INT_1:3;
A45: dk <= len Cut by A43,FINSEQ_3:25;
    then dk+m <= (len Cut)+m by XREAL_1:6;
    then
A46: dk+m-1 <= n by A4,XREAL_1:20;
    dk1 < len Cut by A45,XREAL_1:146,XXREAL_0:2;
    then F.(dk1+m) = Cut.(dk1+1) by A1,A2,A3,Def1
      .= Cut.dk;
    hence F.ma <= k by A36,A44,A46,NAT_1:12;
  end;
  then
A47: F.ma = min rX by XXREAL_2:def 7;
  set mX = min X;
  set mXC = mX..Cut;
A48: mX in X by XXREAL_2:def 7;
  then 1 <= mXC by FINSEQ_4:21;
  then 1-1 <= mXC -1 by XREAL_1:9;
  then reconsider mXC1 = mXC-1 as Element of NAT by INT_1:3;
  set mXCm = mXC1+m;
  mXC <= len Cut by A48,FINSEQ_4:21;
  then
A49: mXC1 < len Cut by XREAL_1:146,XXREAL_0:2;
  mXC = mXC1+1;
  then
A50: F.mXCm = Cut.mXC by A1,A2,A3,A49,Def1;
A51: m <= mXCm by NAT_1:12;
A52: Cut.(mX..Cut) = mX by A48,FINSEQ_4:19;
  now
    assume
A53: q1 <> mXC;
    per cases by A53,XXREAL_0:1;
    suppose
      q1 < mXC;
      hence contradiction by A40,A42,A47,FINSEQ_4:24;
    end;
    suppose
      q1 > mXC;
      then mXC+m < ma+1 by XREAL_1:20;
      then mXC+m-1 < ma by XREAL_1:19;
      hence contradiction by A37,A52,A47,A51,A50;
    end;
  end;
  then ma+1 = mX..Cut +m;
  hence thesis by A1,A2,A3,Def11;
end;
