let F be Field; :: thesis: for E being F -algebraic FieldExtension of F
for L being algebraic-closed F -monomorphic Field
for f being Monomorphism of F,L ex g being Function of E,L st
( g is monomorphism & g is f -extending )

let E be F -algebraic FieldExtension of F; :: thesis: for L being algebraic-closed F -monomorphic Field
for f being Monomorphism of F,L ex g being Function of E,L st
( g is monomorphism & g is f -extending )

let L be algebraic-closed F -monomorphic Field; :: thesis: for f being Monomorphism of F,L ex g being Function of E,L st
( g is monomorphism & g is f -extending )

let f be Monomorphism of F,L; :: thesis: ex g being Function of E,L st
( g is monomorphism & g is f -extending )

set S = Ext_Set (f,E);
set R = { [p,q] where p, q is Element of Ext_Set (f,E) : p <= q } ;
now :: thesis: for o being object st o in { [p,q] where p, q is Element of Ext_Set (f,E) : p <= q } holds
ex y, z being object st o = [y,z]
let o be object ; :: thesis: ( o in { [p,q] where p, q is Element of Ext_Set (f,E) : p <= q } implies ex y, z being object st o = [y,z] )
assume o in { [p,q] where p, q is Element of Ext_Set (f,E) : p <= q } ; :: thesis: ex y, z being object st o = [y,z]
then consider p, q being Element of Ext_Set (f,E) such that
A: ( o = [p,q] & p <= q ) ;
thus ex y, z being object st o = [y,z] by A; :: thesis: verum
end;
then reconsider R = { [p,q] where p, q is Element of Ext_Set (f,E) : p <= q } as Relation by RELAT_1:def 1;
B: field R = Ext_Set (f,E)
proof
B1: now :: thesis: for o being object st o in field R holds
o in Ext_Set (f,E)
let o be object ; :: thesis: ( o in field R implies b1 in Ext_Set (f,E) )
assume o in field R ; :: thesis: b1 in Ext_Set (f,E)
then o in (dom R) \/ (rng R) by RELAT_1:def 6;
per cases then ( o in dom R or o in rng R ) by XBOOLE_0:def 3;
suppose o in dom R ; :: thesis: b1 in Ext_Set (f,E)
then consider y being object such that
B2: [o,y] in R by XTUPLE_0:def 12;
consider p, q being Element of Ext_Set (f,E) such that
B3: ( [o,y] = [p,q] & p <= q ) by B2;
o = p by B3, XTUPLE_0:1;
hence o in Ext_Set (f,E) ; :: thesis: verum
end;
suppose o in rng R ; :: thesis: b1 in Ext_Set (f,E)
then consider y being object such that
B2: [y,o] in R by XTUPLE_0:def 13;
consider p, q being Element of Ext_Set (f,E) such that
B3: ( [y,o] = [p,q] & p <= q ) by B2;
o = q by B3, XTUPLE_0:1;
hence o in Ext_Set (f,E) ; :: thesis: verum
end;
end;
end;
now :: thesis: for o being object st o in Ext_Set (f,E) holds
o in field R
let o be object ; :: thesis: ( o in Ext_Set (f,E) implies o in field R )
assume o in Ext_Set (f,E) ; :: thesis: o in field R
then reconsider p = o as Element of Ext_Set (f,E) ;
p <= p by po1;
then [p,p] in R ;
then o in dom R by XTUPLE_0:def 12;
then o in (dom R) \/ (rng R) by XBOOLE_0:def 3;
hence o in field R by RELAT_1:def 6; :: thesis: verum
end;
hence field R = Ext_Set (f,E) by B1, TARSKI:2; :: thesis: verum
end;
I1: R is_reflexive_in field R
proof
now :: thesis: for x being object st x in field R holds
[x,x] in R
let x be object ; :: thesis: ( x in field R implies [x,x] in R )
assume x in field R ; :: thesis: [x,x] in R
then reconsider p = x as Element of Ext_Set (f,E) by B;
p <= p by po1;
hence [x,x] in R ; :: thesis: verum
end;
hence R is_reflexive_in field R by RELAT_2:def 1; :: thesis: verum
end;
I2: R is_transitive_in field R
proof
now :: thesis: for x, y, z being object st x in field R & y in field R & z in field R & [x,y] in R & [y,z] in R holds
[x,z] in R
let x, y, z be object ; :: thesis: ( x in field R & y in field R & z in field R & [x,y] in R & [y,z] in R implies [x,z] in R )
assume I3: ( x in field R & y in field R & z in field R & [x,y] in R & [y,z] in R ) ; :: thesis: [x,z] in R
then consider p, q being Element of Ext_Set (f,E) such that
I4: ( [p,q] = [x,y] & p <= q ) ;
consider q1, r being Element of Ext_Set (f,E) such that
I5: ( [q1,r] = [y,z] & q1 <= r ) by I3;
I6: ( p = x & q = y & q1 = y & r = z ) by I4, I5, XTUPLE_0:1;
then p <= r by I4, I5, po3;
hence [x,z] in R by I6; :: thesis: verum
end;
hence R is_transitive_in field R by RELAT_2:def 8; :: thesis: verum
end;
I3: R is_antisymmetric_in field R
proof
now :: thesis: for x, y being object st x in field R & y in field R & [x,y] in R & [y,x] in R holds
x = y
let x, y be object ; :: thesis: ( x in field R & y in field R & [x,y] in R & [y,x] in R implies x = y )
assume I3: ( x in field R & y in field R & [x,y] in R & [y,x] in R ) ; :: thesis: x = y
then consider p, q being Element of Ext_Set (f,E) such that
I4: ( [p,q] = [x,y] & p <= q ) ;
consider q1, p1 being Element of Ext_Set (f,E) such that
I5: ( [q1,p1] = [y,x] & q1 <= p1 ) by I3;
( p = x & q = y & q1 = y & p1 = x ) by I4, I5, XTUPLE_0:1;
hence x = y by I4, I5, po2; :: thesis: verum
end;
hence R is_antisymmetric_in field R by RELAT_2:def 4; :: thesis: verum
end;
then reconsider R = R as reflexive antisymmetric transitive Relation by I1, I2, RELAT_2:def 9, RELAT_2:def 16, RELAT_2:def 12;
A: R partially_orders Ext_Set (f,E) by I1, I2, I3, B;
now :: thesis: for Y being set st Y c= Ext_Set (f,E) & R |_2 Y is being_linear-order holds
ex x being set st
( x in Ext_Set (f,E) & ( for y being set st y in Y holds
[y,x] in R ) )
let Y be set ; :: thesis: ( Y c= Ext_Set (f,E) & R |_2 Y is being_linear-order implies ex x being set st
( b2 in Ext_Set (f,E) & ( for y being set st b3 in x holds
[b3,y] in R ) ) )

assume C1: ( Y c= Ext_Set (f,E) & R |_2 Y is being_linear-order ) ; :: thesis: ex x being set st
( b2 in Ext_Set (f,E) & ( for y being set st b3 in x holds
[b3,y] in R ) )

per cases ( Y is empty or not Y is empty ) ;
suppose C2: Y is empty ; :: thesis: ex x being set st
( b2 in Ext_Set (f,E) & ( for y being set st b3 in x holds
[b3,y] in R ) )

set p = the Element of Ext_Set (f,E);
thus ex x being set st
( x in Ext_Set (f,E) & ( for y being set st y in Y holds
[y,x] in R ) ) :: thesis: verum
proof
take the Element of Ext_Set (f,E) ; :: thesis: ( the Element of Ext_Set (f,E) in Ext_Set (f,E) & ( for y being set st y in Y holds
[y, the Element of Ext_Set (f,E)] in R ) )

thus ( the Element of Ext_Set (f,E) in Ext_Set (f,E) & ( for y being set st y in Y holds
[y, the Element of Ext_Set (f,E)] in R ) ) by C2; :: thesis: verum
end;
end;
suppose not Y is empty ; :: thesis: ex x being set st
( b2 in Ext_Set (f,E) & ( for y being set st b3 in x holds
[b3,y] in R ) )

then reconsider Y1 = Y as non empty Subset of (Ext_Set (f,E)) by C1;
set O = R |_2 Y;
I: R |_2 Y = R /\ [:Y,Y:] by WELLORD1:def 6;
C3: field (R |_2 Y) = Y by C1, B, ORDERS_1:71;
now :: thesis: for p, q being Element of Y1 holds
( p <= q or q <= p )
let p, q be Element of Y1; :: thesis: ( b1 <= b2 or b2 <= b1 )
per cases ( p = q or p <> q ) ;
suppose p = q ; :: thesis: ( b1 <= b2 or b2 <= b1 )
hence ( p <= q or q <= p ) by po1; :: thesis: verum
end;
suppose p <> q ; :: thesis: ( b1 <= b2 or b2 <= b1 )
then ( [p,q] in R |_2 Y or [q,p] in R |_2 Y ) by C3, C1, RELAT_2:def 14, RELAT_2:def 6;
per cases then ( [p,q] in R or [q,p] in R ) by I, XBOOLE_0:def 4;
suppose [p,q] in R ; :: thesis: ( b1 <= b2 or b2 <= b1 )
then consider p1, q1 being Element of Ext_Set (f,E) such that
C7: ( [p1,q1] = [p,q] & p1 <= q1 ) ;
( p1 = p & q1 = q ) by C7, XTUPLE_0:1;
hence ( p <= q or q <= p ) by C7; :: thesis: verum
end;
suppose [q,p] in R ; :: thesis: ( b1 <= b2 or b2 <= b1 )
then consider q1, p1 being Element of Ext_Set (f,E) such that
C7: ( [q1,p1] = [q,p] & q1 <= p1 ) ;
( p1 = p & q1 = q ) by C7, XTUPLE_0:1;
hence ( p <= q or q <= p ) by C7; :: thesis: verum
end;
end;
end;
end;
end;
then reconsider Y1 = Y1 as non empty ascending Subset of (Ext_Set (f,E)) by dasc;
thus ex x being set st
( x in Ext_Set (f,E) & ( for y being set st y in Y holds
[y,x] in R ) ) :: thesis: verum
proof
take p = upper_bound Y1; :: thesis: ( p in Ext_Set (f,E) & ( for y being set st y in Y holds
[y,p] in R ) )

thus p in Ext_Set (f,E) ; :: thesis: for y being set st y in Y holds
[y,p] in R

now :: thesis: for y being set st y in Y holds
[y,p] in R
let y be set ; :: thesis: ( y in Y implies [y,p] in R )
assume y in Y ; :: thesis: [y,p] in R
then reconsider q = y as Element of Y1 ;
q <= p by up;
hence [y,p] in R ; :: thesis: verum
end;
hence for y being set st y in Y holds
[y,p] in R ; :: thesis: verum
end;
end;
end;
end;
then Ext_Set (f,E) has_upper_Zorn_property_wrt R ;
then consider U being set such that
Z: U is_maximal_in R by A, B, ORDERS_1:63;
reconsider U = U as Element of Ext_Set (f,E) by Z, B;
U in Ext_Set (f,E) ;
then consider W being Element of SubFields E, h being Function of W,L such that
H1: ( U = [W,h] & ex W1 being FieldExtension of F ex h1 being Function of W1,L st
( W1 = W & h1 = h & h1 is monomorphism & h1 is f -extending ) ) ;
consider W1 being FieldExtension of F, h1 being Function of W1,L such that
H2: ( W1 = W & h1 = h & h1 is monomorphism & h1 is f -extending ) by H1;
reconsider W = W as FieldExtension of F by H2;
I1: W is Subfield of E by subfie;
then I2: the carrier of W c= the carrier of E by EC_PF_1:def 1;
now :: thesis: for a being Element of E holds a in the carrier of W
let a be Element of E; :: thesis: a in the carrier of W
assume A1: not a in the carrier of W ; :: thesis: contradiction
reconsider E1 = E as FieldExtension of F ;
reconsider E1 = E1 as W -extending FieldExtension of F by I1, FIELD_4:7;
reconsider E1 = E1 as W -algebraic FieldExtension of W by FIELD_7:40;
reconsider a = a as W -algebraic Element of E1 ;
set V = FAdj (W,{a});
I3: FAdj (W,{a}) is Element of SubFields E by subfie;
reconsider L1 = L as algebraic-closed W -monomorphic Field by H2, RING_3:def 3;
reconsider h1 = h1 as Monomorphism of W,L1 by H2;
consider r being Function of (FAdj (W,{a})),L such that
A2: ( r is monomorphism & r is h1 -extending ) by lift1;
reconsider V = FAdj (W,{a}) as W -extending FieldExtension of F ;
reconsider r = r as Function of V,L ;
[V,r] in Ext_Set (f,E)
proof
r is f -extending by H2, A2, e1a;
hence [V,r] in Ext_Set (f,E) by I3, A2; :: thesis: verum
end;
then reconsider T = [V,r] as Element of Ext_Set (f,E) ;
U <= T by H2, H1, A2;
then A5: [U,T] in R ;
( {a} is Subset of V & a in {a} ) by FIELD_6:35, TARSKI:def 1;
then the carrier of W <> the carrier of V by A1;
then U <> T by H1, XTUPLE_0:1;
hence contradiction by B, A5, Z; :: thesis: verum
end;
then C: the carrier of E c= the carrier of W ;
then G: the carrier of E = the carrier of W by I2, XBOOLE_0:def 10;
set E1 = doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #);
M: ( doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) is strict & W is strict ) by subfie;
D: doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = W
proof
D1: the addF of doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = the addF of E || the carrier of E
.= the addF of W by I1, G, EC_PF_1:def 1 ;
D2: the multF of doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = the multF of E || the carrier of E
.= the multF of W by I1, G, EC_PF_1:def 1 ;
D3: 1. doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = 1. E
.= 1. W by I1, EC_PF_1:def 1 ;
0. doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = 0. E
.= 0. W by I1, EC_PF_1:def 1 ;
hence doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) = W by C, M, D1, D2, D3, I2, XBOOLE_0:def 10; :: thesis: verum
end;
then reconsider h2 = h1 as Function of doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #),L by H2;
doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) == E by lemug1;
then consider i being Function of E,doubleLoopStr(# the carrier of E, the addF of E, the multF of E, the OneF of E, the ZeroF of E #) such that
E: ( i = id E & i is isomorphism ) by FIELD_7:1;
reconsider g = h2 * i as Function of E,L ;
K: g is linear by E, H2, D, RINGCAT1:1;
now :: thesis: for a being Element of F holds g . a = f . a
let a be Element of F; :: thesis: g . a = f . a
F is Subring of E by FIELD_4:def 1;
then the carrier of F c= the carrier of E by C0SP1:def 3;
then reconsider a1 = a as Element of E ;
g . a1 = h2 . (i . a1) by E, FUNCT_1:13
.= f . a by E, H2 ;
hence g . a = f . a ; :: thesis: verum
end;
then g is f -extending ;
hence ex g being Function of E,L st
( g is monomorphism & g is f -extending ) by K; :: thesis: verum