reserve A for non empty set;
reserve a,b,c,x,y,z for Element of A;
reserve o,o9 for Element of LinPreorders A;
reserve o99 for Element of LinOrders A;
reserve A,N for finite non empty set;
reserve a,b,c,d,a9,c9 for Element of A;
reserve i,n,nb,nc for Element of N;
reserve o,oI,oII for Element of LinPreorders A;
reserve p,p9,pI,pII,pI9,pII9 for Element of Funcs(N,LinPreorders A);
reserve f for Function of Funcs(N,LinPreorders A),LinPreorders A;
reserve k,k0 for Nat;
reserve o,o1 for Element of LinOrders A;
reserve o9 for Element of LinPreorders A;
reserve p,p9 for Element of Funcs(N,LinOrders A);
reserve q,q9 for Element of Funcs(N,LinPreorders A);
reserve f for Function of Funcs(N,LinOrders A),LinPreorders A;

theorem
  (for p,a,b st for i holds a <_p.i, b holds a <_f.p, b) & (for p,p9,a,b st
  for i holds a <_p.i, b iff a <_p9.i, b holds a <_f.p, b iff a <_f.p9, b) &
  card A >= 3 implies ex n st for p,a,b holds a <_p.n, b iff a <_f.p, b
proof
  assume that
A1: for p,a,b st for i holds a <_p.i, b holds a <_f.p, b and
A2: for p,p9,a,b st for i holds a <_p.i, b iff a <_p9.i, b
  holds a <_f.p, b iff a <_f.p9, b and
A3: card A >= 3;
  set o = the Element of LinOrders A;
  defpred O[Element of LinPreorders A,Element of A,Element of A] means
  $2 <=_$1, $3 & ($2 <_$1, $3 or $2 <=_o, $3);
  defpred P[Element of LinPreorders A,Element of LinOrders A] means
  for a,b holds O[$1,a,b] iff a <=_$2, b;
A4: for o9 ex o1 st P[o9,o1]
  proof
    let o9;
    defpred Q[Element of A,Element of A] means O[o9,$1,$2];
    consider o1 being Relation of A such that
A5: for a,b holds [a,b] in o1 iff Q[a,b] from RELSET_1:sch 2;
A6: now
      let a,b;
   Q[a,b] or Q[b,a] by Th4;
      hence [a,b] in o1 or [b,a] in o1 by A5;
    end;
 now
      let a,b,c;
   Q[a,b] & Q[b,c] implies Q[a,c] by Th5;
      hence [a,b] in o1 & [b,c] in o1 implies [a,c] in o1 by A5;
    end;
    then reconsider o1 as Element of LinPreorders A by A6,Def1;
 now
      let a,b;
  Q[a,b] & Q[b,a] implies a = b by Th6;
      hence [a,b] in o1 & [b,a] in o1 implies a = b by A5;
    end;
    then reconsider o1 as Element of LinOrders A by Def2;
    take o1;
    let a,b;
 [a,b] in o1 iff Q[a,b] by A5;
    hence thesis;
  end;
  defpred R[Element of Funcs(N,LinPreorders A),Element of Funcs(N,LinOrders A)]
  means for i holds P[$1.i,$2.i];
A7: for q,p,p9 st R[q,p] & R[q,p9] holds p = p9
  proof
    let q,p,p9;
    assume that
A8: R[q,p] and
A9: R[q,p9];
    let i;
    reconsider pi = p.i as Relation of A by Def1;
    reconsider pi9 = p9.i as Relation of A by Def1;
 now
      let a,b;
A10:  O[q.i,a,b] iff a <=_p.i, b by A8;
  O[q.i,a,b] iff a <=_p9.i, b by A9;
      hence [a,b] in p.i iff [a,b] in p9.i by A10;
    end;
then  pi = pi9 by RELSET_1:def 2;
    hence p.i = p9.i;
  end;
A11: for q ex p st R[q,p]
  proof
    let q;
    defpred S[Element of N,Element of LinOrders A] means P[q.$1,$2];
A12: for i ex o1 st S[i,o1] by A4;
    consider p being Function of N,LinOrders A such that
A13: for i holds S[i,p.i qua Element of LinOrders A] from FUNCT_2:sch 3(A12);
    reconsider p as Element of Funcs(N,LinOrders A) by FUNCT_2:8;
    take p;
    thus thesis by A13;
  end;
  defpred T[Element of Funcs(N,LinPreorders A),Element of LinPreorders A] means
  ex p st R[$1,p] & f.p = $2;
A14: for q ex o9 st T[q,o9]
  proof
    let q;
    consider p such that
A15: R[q,p] by A11;
    take f.p;
    thus thesis by A15;
  end;
consider f9 being Function of Funcs(N,LinPreorders A),LinPreorders A such that
A16: for q holds T[q,f9.q] from FUNCT_2:sch 3(A14);
A17: for q,a,b st for i holds a <_q.i, b holds a <_f9.q, b
  proof
    let q,a,b;
    assume
A18: for i holds a <_q.i, b;
    consider p such that
A19: R[q,p] and
A20: f.p = f9.q by A16;
 now
      let i;
  not O[q.i,b,a] by A18;
      hence a <_p.i, b by A19;
    end;
    hence thesis by A1,A20;
  end;
 now
    let q,q9,a,b;
    assume
A21: for i holds (a <_q.i, b iff a <_q9.i, b) & (b <_q.i, a iff b <_q9.i, a);
    consider p such that
A22: R[q,p] and
A23: f.p = f9.q by A16;
    consider p9 such that
A24: R[q9,p9] and
A25: f.p9 = f9.q9 by A16;
 for i holds a <_p.i, b iff a <_p9.i, b
    proof
      let i;
  O[q.i,b,a] iff O[q9.i,b,a] by A21;
      hence thesis by A22,A24;
    end;
    hence a <_f9.q, b iff a <_f9.q9, b by A2,A23,A25;
  end;
  then consider n such that
A26: for q,a,b st a <_q.n, b holds a <_f9.q, b by A3,A17,Th14;
  take n;
  let p;
 now
 rng p c= LinOrders A by RELAT_1:def 19;
then  dom p = N & rng p c= LinPreorders A by FUNCT_2:def 1,XBOOLE_1:1;
    then
reconsider q = p as Element of Funcs(N,LinPreorders A) by FUNCT_2:def 2;
A27: R[q,p]
    proof
      let i;
      let a,b;
  a <_p.i, b or a = b or a >_p.i, b by Th6;
      hence thesis by Th4;
    end;
A28: ex p9 st ( R[q,p9])& f.p9 = f9.q by A16;
    let a,b;
    assume a <_p.n, b;
then  a <_f9.q, b by A26;
    hence a <_f.p, b by A7,A27,A28;
  end;
  hence thesis by Th13;
end;
