let G3, G4 be _Graph; :: thesis: for V1, V2 being set
for G1 being addLoops of G3,V1
for G2 being addLoops of G4,V2
for F0 being PGraphMapping of G3,G4 st V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 & (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 holds
ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )

let V1, V2 be set ; :: thesis: for G1 being addLoops of G3,V1
for G2 being addLoops of G4,V2
for F0 being PGraphMapping of G3,G4 st V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 & (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 holds
ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )

let G1 be addLoops of G3,V1; :: thesis: for G2 being addLoops of G4,V2
for F0 being PGraphMapping of G3,G4 st V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 & (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 holds
ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )

let G2 be addLoops of G4,V2; :: thesis: for F0 being PGraphMapping of G3,G4 st V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 & (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 holds
ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )

let F0 be PGraphMapping of G3,G4; :: thesis: ( V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 & (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 implies ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) ) )

assume that
A1: ( V1 c= the_Vertices_of G3 & V2 c= the_Vertices_of G4 ) and
A2: ( (F0 _V) | V1 is one-to-one & dom ((F0 _V) | V1) = V1 & rng ((F0 _V) | V1) = V2 ) ; :: thesis: ex F being PGraphMapping of G1,G2 st
( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )

( the_Vertices_of G1 = the_Vertices_of G3 & the_Vertices_of G2 = the_Vertices_of G4 ) by A1, Def5;
then reconsider f = F0 _V as PartFunc of (the_Vertices_of G1),(the_Vertices_of G2) ;
consider E1 being set , f1 being one-to-one Function such that
A3: ( E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & dom f1 = E1 & rng f1 = V1 & the_Source_of G1 = (the_Source_of G3) +* f1 & the_Target_of G1 = (the_Target_of G3) +* f1 ) by A1, Def5;
consider E2 being set , f2 being one-to-one Function such that
A4: ( E2 misses the_Edges_of G4 & the_Edges_of G2 = (the_Edges_of G4) \/ E2 & dom f2 = E2 & rng f2 = V2 & the_Source_of G2 = (the_Source_of G4) +* f2 & the_Target_of G2 = (the_Target_of G4) +* f2 ) by A2, Def5;
set h = ((f2 ") * ((F0 _V) | V1)) * f1;
set g = (F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1);
A5: dom ((F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1)) = (dom (F0 _E)) \/ (dom (((f2 ") * ((F0 _V) | V1)) * f1)) by FUNCT_4:def 1;
A6: dom (f2 ") = rng ((F0 _V) | V1) by A2, A4, FUNCT_1:33;
then A7: dom ((f2 ") * ((F0 _V) | V1)) = rng f1 by A2, A3, RELAT_1:27;
then A8: dom (((f2 ") * ((F0 _V) | V1)) * f1) = E1 by A3, RELAT_1:27;
then A9: dom ((F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1)) c= the_Edges_of G1 by A3, A5, XBOOLE_1:9;
rng ((f2 ") * ((F0 _V) | V1)) = rng (f2 ") by A6, RELAT_1:28
.= E2 by A4, FUNCT_1:33 ;
then A10: rng (((f2 ") * ((F0 _V) | V1)) * f1) = E2 by A7, RELAT_1:28;
A11: rng ((F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1)) c= (rng (F0 _E)) \/ (rng (((f2 ") * ((F0 _V) | V1)) * f1)) by FUNCT_4:17;
(rng (F0 _E)) \/ (rng (((f2 ") * ((F0 _V) | V1)) * f1)) c= (the_Edges_of G4) \/ E2 by A10, XBOOLE_1:9;
then rng ((F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1)) c= the_Edges_of G2 by A4, A11, XBOOLE_1:1;
then reconsider g = (F0 _E) +* (((f2 ") * ((F0 _V) | V1)) * f1) as PartFunc of (the_Edges_of G1),(the_Edges_of G2) by A9, RELSET_1:4;
A12: dom (((F0 _V) | V1) * f1) = dom f1 by A2, A3, RELAT_1:27;
now :: thesis: ( ( for e being object st e in dom g holds
( (the_Source_of G1) . e in dom f & (the_Target_of G1) . e in dom f ) ) & ( for e, v, w being object st e in dom g & v in dom f & w in dom f & e Joins v,w,G1 holds
g . e Joins f . v,f . w,G2 ) )
hereby :: thesis: for e, v, w being object st e in dom g & v in dom f & w in dom f & e Joins v,w,G1 holds
g . b4 Joins f . b5,f . b6,G2
let e be object ; :: thesis: ( e in dom g implies ( (the_Source_of G1) . b1 in dom f & (the_Target_of G1) . b1 in dom f ) )
set v = (the_Source_of G1) . e;
set w = (the_Target_of G1) . e;
assume e in dom g ; :: thesis: ( (the_Source_of G1) . b1 in dom f & (the_Target_of G1) . b1 in dom f )
per cases then ( e in dom (F0 _E) or e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ) by FUNCT_4:12;
suppose e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ; :: thesis: ( (the_Source_of G1) . b1 in dom f & (the_Target_of G1) . b1 in dom f )
then A14: e in dom f1 by A3, A8;
then ( (the_Source_of G1) . e = f1 . e & (the_Target_of G1) . e = f1 . e ) by A3, FUNCT_4:13;
then ( (the_Source_of G1) . e in V1 & (the_Target_of G1) . e in V1 ) by A3, A14, FUNCT_1:3;
hence ( (the_Source_of G1) . e in dom f & (the_Target_of G1) . e in dom f ) by A2, RELAT_1:57; :: thesis: verum
end;
end;
end;
let e, v, w be object ; :: thesis: ( e in dom g & v in dom f & w in dom f & e Joins v,w,G1 implies g . b1 Joins f . b2,f . b3,G2 )
assume A15: ( e in dom g & v in dom f & w in dom f ) ; :: thesis: ( e Joins v,w,G1 implies g . b1 Joins f . b2,f . b3,G2 )
assume A16: e Joins v,w,G1 ; :: thesis: g . b1 Joins f . b2,f . b3,G2
per cases ( e in dom (F0 _E) or e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ) by A15, FUNCT_4:12;
suppose A17: e in dom (F0 _E) ; :: thesis: g . b1 Joins f . b2,f . b3,G2
then e Joins v,w,G3 by A16, GLIB_006:72;
then A18: (F0 _E) . e Joins (F0 _V) . v,(F0 _V) . w,G4 by A15, A17, GLIB_010:4;
not e in E1 by A3, A15, A17, XBOOLE_0:5;
then g . e Joins f . v,f . w,G4 by A8, A18, FUNCT_4:11;
hence g . e Joins f . v,f . w,G2 by GLIB_006:70; :: thesis: verum
end;
suppose e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ; :: thesis: g . b1 Joins f . b2,f . b3,G2
then A19: ( e in E1 & g . e = (((f2 ") * ((F0 _V) | V1)) * f1) . e ) by A8, FUNCT_4:13;
then ( (the_Source_of G1) . e = f1 . e & (the_Target_of G1) . e = f1 . e ) by A3, FUNCT_4:13;
then A20: ( v = f1 . e & w = f1 . e ) by A16, GLIB_000:def 13;
then A21: v in V1 by A3, A19, FUNCT_1:3;
then A22: f . v = ((F0 _V) | V1) . v by FUNCT_1:49;
then A23: f . v in V2 by A2, A21, FUNCT_1:3;
then f . v in dom (f2 ") by A4, FUNCT_1:33;
then (f2 ") . (f . v) in rng (f2 ") by FUNCT_1:3;
then A24: (f2 ") . (f . v) in dom f2 by FUNCT_1:33;
then ( (the_Source_of G2) . ((f2 ") . (f . v)) = f2 . ((f2 ") . (f . v)) & (the_Target_of G2) . ((f2 ") . (f . v)) = f2 . ((f2 ") . (f . v)) ) by A4, FUNCT_4:13;
then A25: ( (the_Source_of G2) . ((f2 ") . (f . v)) = f . v & (the_Target_of G2) . ((f2 ") . (f . v)) = f . v ) by A4, A23, FUNCT_1:35;
(f2 ") . (f . v) in the_Edges_of G2 by A4, A24, XBOOLE_0:def 3;
then (f2 ") . (((F0 _V) | V1) . v) Joins f . v,f . v,G2 by A22, A25, GLIB_000:def 13;
then (f2 ") . ((((F0 _V) | V1) * f1) . e) Joins f . v,f . w,G2 by A3, A19, A20, FUNCT_1:13;
then ((f2 ") * (((F0 _V) | V1) * f1)) . e Joins f . v,f . w,G2 by A3, A12, A19, FUNCT_1:13;
hence g . e Joins f . v,f . w,G2 by A19, RELAT_1:36; :: thesis: verum
end;
end;
end;
then reconsider F = [f,g] as PGraphMapping of G1,G2 by GLIB_010:8;
take F ; :: thesis: ( F _V = F0 _V & (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
thus F _V = F0 _V ; :: thesis: ( (F _E) | (dom (F0 _E)) = F0 _E & ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
A26: dom (F0 _E) misses dom (((f2 ") * ((F0 _V) | V1)) * f1) by A3, A8, XBOOLE_1:63;
hence (F _E) | (dom (F0 _E)) = F0 _E by FUNCT_4:33; :: thesis: ( ( not F0 is empty implies not F is empty ) & ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
hereby :: thesis: ( ( F0 is total implies F is total ) & ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) ) end;
thus A27: ( F0 is total implies F is total ) :: thesis: ( ( F0 is onto implies F is onto ) & ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
proof end;
thus A30: ( F0 is onto implies F is onto ) :: thesis: ( ( F0 is one-to-one implies F is one-to-one ) & ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
proof end;
thus A33: ( F0 is one-to-one implies F is one-to-one ) :: thesis: ( ( F0 is directed implies F is directed ) & ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
proof end;
thus A35: ( F0 is directed implies F is directed ) :: thesis: ( ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) & ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
proof
assume A36: F0 is directed ; :: thesis: F is directed
now :: thesis: for e, v, w being object st e in dom (F _E) & v in dom (F _V) & w in dom (F _V) & e DJoins v,w,G1 holds
(F _E) . e DJoins (F _V) . v,(F _V) . w,G2
let e, v, w be object ; :: thesis: ( e in dom (F _E) & v in dom (F _V) & w in dom (F _V) & e DJoins v,w,G1 implies (F _E) . b1 DJoins (F _V) . b2,(F _V) . b3,G2 )
assume A37: ( e in dom (F _E) & v in dom (F _V) & w in dom (F _V) ) ; :: thesis: ( e DJoins v,w,G1 implies (F _E) . b1 DJoins (F _V) . b2,(F _V) . b3,G2 )
assume A38: e DJoins v,w,G1 ; :: thesis: (F _E) . b1 DJoins (F _V) . b2,(F _V) . b3,G2
per cases ( e in dom (F0 _E) or e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ) by A37, FUNCT_4:12;
suppose A39: e in dom (F0 _E) ; :: thesis: (F _E) . b1 DJoins (F _V) . b2,(F _V) . b3,G2
then e DJoins v,w,G3 by A38, GLIB_006:71;
then A40: (F0 _E) . e DJoins (F0 _V) . v,(F0 _V) . w,G4 by A36, A37, A39, GLIB_010:def 14;
not e in E1 by A3, A37, A39, XBOOLE_0:5;
then g . e DJoins f . v,f . w,G4 by A8, A40, FUNCT_4:11;
hence (F _E) . e DJoins (F _V) . v,(F _V) . w,G2 by GLIB_006:70; :: thesis: verum
end;
suppose e in dom (((f2 ") * ((F0 _V) | V1)) * f1) ; :: thesis: (F _E) . b1 DJoins (F _V) . b2,(F _V) . b3,G2
then A41: ( e in E1 & g . e = (((f2 ") * ((F0 _V) | V1)) * f1) . e ) by A8, FUNCT_4:13;
then ( (the_Source_of G1) . e = f1 . e & (the_Target_of G1) . e = f1 . e ) by A3, FUNCT_4:13;
then A42: ( v = f1 . e & w = f1 . e ) by A38, GLIB_000:def 14;
then A43: v in V1 by A3, A41, FUNCT_1:3;
then A44: f . v = ((F0 _V) | V1) . v by FUNCT_1:49;
then A45: f . v in V2 by A2, A43, FUNCT_1:3;
then f . v in dom (f2 ") by A4, FUNCT_1:33;
then (f2 ") . (f . v) in rng (f2 ") by FUNCT_1:3;
then A46: (f2 ") . (f . v) in dom f2 by FUNCT_1:33;
then ( (the_Source_of G2) . ((f2 ") . (f . v)) = f2 . ((f2 ") . (f . v)) & (the_Target_of G2) . ((f2 ") . (f . v)) = f2 . ((f2 ") . (f . v)) ) by A4, FUNCT_4:13;
then A47: ( (the_Source_of G2) . ((f2 ") . (f . v)) = f . v & (the_Target_of G2) . ((f2 ") . (f . v)) = f . v ) by A4, A45, FUNCT_1:35;
(f2 ") . (f . v) in the_Edges_of G2 by A4, A46, XBOOLE_0:def 3;
then (f2 ") . (((F0 _V) | V1) . v) DJoins f . v,f . v,G2 by A44, A47, GLIB_000:def 14;
then (f2 ") . ((((F0 _V) | V1) * f1) . e) DJoins f . v,f . w,G2 by A3, A41, A42, FUNCT_1:13;
then ((f2 ") * (((F0 _V) | V1) * f1)) . e DJoins f . v,f . w,G2 by A3, A12, A41, FUNCT_1:13;
hence (F _E) . e DJoins (F _V) . v,(F _V) . w,G2 by A41, RELAT_1:36; :: thesis: verum
end;
end;
end;
hence F is directed by GLIB_010:def 14; :: thesis: verum
end;
thus ( F0 is weak_SG-embedding implies F is weak_SG-embedding ) by A27, A33; :: thesis: ( ( F0 is isomorphism implies F is isomorphism ) & ( F0 is Disomorphism implies F is Disomorphism ) )
thus ( F0 is isomorphism implies F is isomorphism ) by A27, A30, A33; :: thesis: ( F0 is Disomorphism implies F is Disomorphism )
thus ( F0 is Disomorphism implies F is Disomorphism ) by A27, A30, A33, A35; :: thesis: verum