
theorem unique2:
for F1 being Field,
    F2 being F1-homomorphic F1-isomorphic Field
for h being Isomorphism of F1,F2
for p being non constant Element of the carrier of Polynom-Ring F1
for E1 being SplittingField of p, 
    E2 being SplittingField of (PolyHom h).p
ex f being Function of E1,E2 st f is h-extending isomorphism
proof
let F1 be Field, F2 be F1-homomorphic F1-isomorphic Field;
let h be Isomorphism of F1,F2;
let p be non constant Element of the carrier of Polynom-Ring F1;
let E1 be SplittingField of p, E2 be SplittingField of (PolyHom h).p;

defpred P[Nat] means
  for F1 being Field, F2 being F1-homomorphic F1-isomorphic Field
  for h being Isomorphism of F1,F2
  for p being non constant Element of the carrier of Polynom-Ring F1
  for E1 being SplittingField of p, 
      E2 being SplittingField of (PolyHom h).p
  st card( Roots(E1,p) \ the carrier of F1 ) = $1
  ex f being Function of E1,E2 st f is h-extending isomorphism;

II: now let k be Nat;
    assume IV: for j being Nat st j < k holds P[j];
    per cases;
    suppose S: k = 0;

  now let F1 be Field, F2 be F1-homomorphic F1-isomorphic Field;
  let h be Isomorphism of F1,F2;
  let p be non constant Element of the carrier of Polynom-Ring F1;
  let E1 be SplittingField of p, E2 be SplittingField of (PolyHom h).p;
  H0: p splits_in E1 & (PolyHom h).p splits_in E2 by defspl;
  H1: F1 is FieldExtension of F1 & F2 is FieldExtension of F2 by FIELD_4:6;
  H2: F1 is Subfield of E1 & F2 is Subfield of E2 by FIELD_4:7; 
  assume card( Roots(E1,p) \ the carrier of F1 ) = 0; then
  Roots(E1,p) \ the carrier of F1 = {}; then
  Roots(E1,p) c= the carrier of F1 by XBOOLE_1:37; then
  A0: p splits_in F1 by H0,H1,lemma6; then
  A1: F1 == E1 by H1,H2,defspl; then
  reconsider idF1 = id E1 as Function of E1,F1;
  (PolyHom h).p splits_in F2 by A0,lemma6a; then
  A2: F2 == E2 by H1,H2,defspl; then
  reconsider idF2 = id F2 as Function of F2,E2;
  reconsider hidF1 = h *idF1 as Function of E1,F2 by FUNCT_2:13;
  h *idF1 is Function of E1,F2 by FUNCT_2:13; then
  reconsider f = idF2 * (h * idF1) as Function of E1,E2 by FUNCT_2:13;
  now let a be Element of E1;
      a in dom idF1; then
      K4: (h*idF1).a = h.(idF1.a) by FUNCT_1:13 .= h.a;
      reconsider aF = a as Element of F1 by A1; 
      reconsider ha = h.aF as Element of F2;
      a in the carrier of F1 by A1; then
      a in dom idF1 & idF1.a in dom h by FUNCT_2:def 1; then
      a in dom(h*idF1) by FUNCT_1:11;
      hence f.a = idF2.(h.a) by K4,FUNCT_1:13 .= ha .= h.a;
    end;
  then K4: f is h-extending by A1;
  K5: idF1 is isomorphism & idF2 is isomorphism by A1,A2,unique20;
  then K6: hidF1 is linear;
  hidF1 is onto by A1,FUNCT_2:27; 
  then f is onto by A2,FUNCT_2:27;
  hence 
     ex f being Function of E1,E2 st f is h-extending isomorphism by K6,K5,K4;
  end;
      hence P[k] by S;
      end;
    suppose S: k > 0;
  now let F1 be Field, F2 be F1-homomorphic F1-isomorphic Field;
  let h be Isomorphism of F1,F2;
  let p be non constant Element of the carrier of Polynom-Ring F1;
  let E1 be SplittingField of p, E2 be SplittingField of (PolyHom h).p;
  assume AS: card( Roots(E1,p) \ the carrier of F1 ) = k;
  set a = the Element of Roots(E1,p) \ the carrier of F1; 
  Roots(E1,p) \ the carrier of F1 <> {} by AS,S; then
  A1: a in Roots(E1,p) & not a in the carrier of F1 by XBOOLE_0:def 5; then
  reconsider a as Element of E1;
  Roots(E1,p) = {b where b is Element of E1 : b is_a_root_of p,E1} 
          by FIELD_4:def 4; then
  consider j being Element of E1 such that
  J: j = a & j is_a_root_of p,E1 by A1;
  A2: Ext_eval(p,a) = 0.E1 by J,FIELD_4:def 2; 
  reconsider a as F1-algebraic Element of E1;
  set r = MinPoly(a,F1);
  consider u being Polynomial of F1 such that 
  A3: r *' u = p by A2,FIELD_6:53,RING_4:1;
  reconsider y = u as Element of the carrier of Polynom-Ring F1
     by POLYNOM3:def 10;
  A4: p = r * y  by A3,POLYNOM3:def 10;
  reconsider rh = (PolyHom h).r, yh = (PolyHom h).y as Polynomial of F2;
  A6: (PolyHom h).p = (PolyHom h).r * (PolyHom h).y by A4,FIELD_1:25
                   .= rh *' yh by POLYNOM3:def 10; 
  reconsider rhE2 = rh, yhE2 = yh as Polynomial of E2 by FIELD_4:8;
  rhE2 is Element of the carrier of Polynom-Ring E2 &
  rh is Element of the carrier of Polynom-Ring F2 by POLYNOM3:def 10;
  then deg rhE2 = deg rh by FIELD_4:20; then
  A5a: rhE2 is non constant by RING_4:def 4,RATFUNC1:def 2;
  yh <> 0_.(F2) by A6; then
  yhE2 <> 0_.(E2) by FIELD_4:12; then
  A7a: yhE2 is non zero by UPROOTS:def 5;
  A100: rh *' yh = rhE2 *' yhE2 by FIELD_4:17;
  rh *' yh splits_in E2 by A6,defspl; then
  ex x being non zero Element of E2, qx being Ppoly of E2 
    st rh *' yh = x * qx by FIELD_4:def 5; then
  rhE2 splits_in E2 by A5a,A7a,A100,FIELD_4:def 5,lemppolspl3; then
  consider rhr being non zero Element of E2, qrh being Ppoly of E2 such that
  A9: rh = rhr * qrh by FIELD_4:def 5;
  consider b being Element of E2 such that
  A11: b is_a_root_of rhr * qrh by POLYNOM5:def 8;
  A12: rhr * qrh is Element of the carrier of Polynom-Ring E2 
       by POLYNOM3:def 10;
  eval(rhr * qrh,b) = 0.E2 by A11,POLYNOM5:def 7; then
  K1: Ext_eval(rh,b) = 0.E2 by A9,A12,FIELD_4:26;
  A22: Ext_eval(r,a) = 0.E1 by FIELD_6:51;
  reconsider b as F2-algebraic Element of E2;
K: Psi(a,b,h,r) is h-extending isomorphism by K1,A22,unique1; 
set F1a = FAdj(F1,{a});
reconsider F2b = FAdj(F2,{b}) as F1a-homomorphic 
               F1a-isomorphic Field by K,RING_2:def 4,RING_3:def 4;
reconsider g = Psi(a,b,h,r) as Isomorphism of F1a,F2b by K;
reconsider E1a = E1 as FieldExtension of F1a by FIELD_4:7; 
reconsider E2a = E2 as FieldExtension of F2b by FIELD_4:7; 
  the carrier of Polynom-Ring F1 c= the carrier of Polynom-Ring F1a 
      by FIELD_4:10; then
  reconsider f = p as Element of the carrier of Polynom-Ring F1a;
  deg f = deg p & deg p > 0 by FIELD_4:20,RING_4:def 4; then
  reconsider f as non constant
          Element of the carrier of Polynom-Ring F1a by RING_4:def 4;
  reconsider E1a as SplittingField of f by splift; 
  reconsider aa = a as Element of E1a;
  (PolyHom g).f = (PolyHom h).p
    proof
    now let i be Nat;
      thus ((PolyHom g).f).i = g.(f.i) by FIELD_1:def 2
                .= h.(p.i) by K .= ((PolyHom h).p).i by FIELD_1:def 2;
      end;
    hence thesis;
    end; then
  reconsider E2a as SplittingField of (PolyHom g).f by splift;
  K8: {a} is Subset of FAdj(F1,{a}) by FIELD_6:35;
  K7: a in {a} by TARSKI:def 1;
  Ext_eval(f,aa) = 0.E1a by A2,lemma7b; then
  aa is_a_root_of f,E1a by FIELD_4:def 2; then
  a in {x where x is Element of E1a : x is_a_root_of f,E1a}; then
  K6: a in Roots(E1a,f) by FIELD_4:def 4;
  K4: a in Roots(E1a,f) \ the carrier of F1 by A1,K6,XBOOLE_0:def 5;
  K5: not a in Roots(E1a,f) \ the carrier of F1a by K7,K8,XBOOLE_0:def 5;
  Roots(E1a,f) \ the carrier of F1a c= Roots(E1a,f) \ the carrier of F1
      proof
      now let o be object;
      assume L: o in Roots(E1a,f) \ the carrier of F1a;
      F1 is Subfield of F1a by FIELD_4:7; then
      the carrier of F1 c= the carrier of F1a by EC_PF_1:def 1; then
      o in Roots(E1a,f) & not o in the carrier of F1 by L,XBOOLE_0:def 5; 
      hence o in Roots(E1a,f) \ the carrier of F1 by XBOOLE_0:def 5;
      end;
      hence thesis;
      end;
  then Roots(E1a,f) \ the carrier of F1a c< 
                Roots(E1a,f) \ the carrier of F1 by K4,K5,XBOOLE_0:def 8; 
  then L2: card(Roots(E1a,f) \ the carrier of F1a) < 
                card(Roots(E1a,f) \ the carrier of F1) by CARD_2:48; 
  card(Roots(E1a,f) \ the carrier of F1) = k by AS,m4spl;
  then consider h1 being Function of E1a,E2a such that 
  L1: h1 is g-extending isomorphism by IV,L2;
  reconsider h1 as Function of E1,E2;
  thus ex f being Function of E1,E2 
                     st f is h-extending isomorphism by L1,K,e1a;
  end;
      hence P[k];
      end;
    end;
I: for k being Nat holds P[k] from NAT_1:sch 4(II);
consider n being Nat such that H: card( Roots(E1,p) \ the carrier of F1 ) = n;
thus thesis by H,I;
end;
