let G be non _trivial _Graph; :: thesis: for v1, e being object
for v2 being Vertex of G
for G1 being addAdjVertex of G,v1,e,v2
for G2 being removeVertex of G1,v2
for G3 being removeVertex of G,v2 st not e in the_Edges_of G & not v1 in the_Vertices_of G holds
G2 is addVertex of G3,v1

let v1, e be object ; :: thesis: for v2 being Vertex of G
for G1 being addAdjVertex of G,v1,e,v2
for G2 being removeVertex of G1,v2
for G3 being removeVertex of G,v2 st not e in the_Edges_of G & not v1 in the_Vertices_of G holds
G2 is addVertex of G3,v1

let v2 be Vertex of G; :: thesis: for G1 being addAdjVertex of G,v1,e,v2
for G2 being removeVertex of G1,v2
for G3 being removeVertex of G,v2 st not e in the_Edges_of G & not v1 in the_Vertices_of G holds
G2 is addVertex of G3,v1

let G1 be addAdjVertex of G,v1,e,v2; :: thesis: for G2 being removeVertex of G1,v2
for G3 being removeVertex of G,v2 st not e in the_Edges_of G & not v1 in the_Vertices_of G holds
G2 is addVertex of G3,v1

let G2 be removeVertex of G1,v2; :: thesis: for G3 being removeVertex of G,v2 st not e in the_Edges_of G & not v1 in the_Vertices_of G holds
G2 is addVertex of G3,v1

let G3 be removeVertex of G,v2; :: thesis: ( not e in the_Edges_of G & not v1 in the_Vertices_of G implies G2 is addVertex of G3,v1 )
assume A1: ( not e in the_Edges_of G & not v1 in the_Vertices_of G ) ; :: thesis: G2 is addVertex of G3,v1
A2: ( v2 is Vertex of G1 & v1 <> v2 ) by A1, Th72;
A3: the_Vertices_of G2 = (the_Vertices_of G1) \ {v2} by A2, GLIB_000:47
.= ((the_Vertices_of G) \/ {v1}) \ {v2} by A1, Def12
.= ((the_Vertices_of G) \ {v2}) \/ ({v1} \ {v2}) by XBOOLE_1:42
.= ((the_Vertices_of G) \ {v2}) \/ {v1} by A2, ZFMISC_1:14
.= (the_Vertices_of G3) \/ {v1} by GLIB_000:47 ;
for e1 being object holds
( e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) iff e1 in G .edgesBetween ((the_Vertices_of G) \ {v2}) )
proof
let e1 be object ; :: thesis: ( e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) iff e1 in G .edgesBetween ((the_Vertices_of G) \ {v2}) )
set x1 = (the_Source_of G1) . e1;
set y1 = (the_Target_of G1) . e1;
set x = (the_Source_of G) . e1;
set y = (the_Target_of G) . e1;
hereby :: thesis: ( e1 in G .edgesBetween ((the_Vertices_of G) \ {v2}) implies e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) )
assume e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) ; :: thesis: e1 in G .edgesBetween ((the_Vertices_of G) \ {v2})
then A4: ( e1 in the_Edges_of G1 & (the_Source_of G1) . e1 in (the_Vertices_of G1) \ {v2} & (the_Target_of G1) . e1 in (the_Vertices_of G1) \ {v2} ) by GLIB_000:31;
then e1 DJoins (the_Source_of G1) . e1,(the_Target_of G1) . e1,G1 by GLIB_000:def 14;
per cases then ( e1 DJoins (the_Source_of G1) . e1,(the_Target_of G1) . e1,G or not e1 in the_Edges_of G ) by Th75;
end;
end;
assume e1 in G .edgesBetween ((the_Vertices_of G) \ {v2}) ; :: thesis: e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2})
then A10: ( e1 in the_Edges_of G & (the_Source_of G) . e1 in (the_Vertices_of G) \ {v2} & (the_Target_of G) . e1 in (the_Vertices_of G) \ {v2} ) by GLIB_000:31;
the_Vertices_of G c= the_Vertices_of G1 by Def9;
then A11: ( (the_Source_of G) . e1 in (the_Vertices_of G1) \ {v2} & (the_Target_of G) . e1 in (the_Vertices_of G1) \ {v2} ) by A10, XBOOLE_1:33, TARSKI:def 3;
A12: ( (the_Source_of G) . e1 = (the_Source_of G1) . e1 & (the_Target_of G) . e1 = (the_Target_of G1) . e1 ) by A10, Def9;
the_Edges_of G c= the_Edges_of G1 by Def9;
hence e1 in G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) by A10, A11, A12, GLIB_000:31; :: thesis: verum
end;
then A13: G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) = G .edgesBetween ((the_Vertices_of G) \ {v2}) by TARSKI:2;
A14: the_Edges_of G2 = G1 .edgesBetween ((the_Vertices_of G1) \ {v2}) by A2, GLIB_000:47
.= the_Edges_of G3 by A13, GLIB_000:47 ;
( dom (the_Source_of G2) = the_Edges_of G2 & dom (the_Target_of G2) = the_Edges_of G2 ) by GLIB_000:4;
then A16: ( dom (the_Source_of G2) = dom (the_Source_of G3) & dom (the_Target_of G2) = dom (the_Target_of G3) ) by A14, GLIB_000:4;
for e1 being object st e1 in dom (the_Source_of G2) holds
(the_Source_of G2) . e1 = (the_Source_of G3) . e1
proof
let e1 be object ; :: thesis: ( e1 in dom (the_Source_of G2) implies (the_Source_of G2) . e1 = (the_Source_of G3) . e1 )
assume e1 in dom (the_Source_of G2) ; :: thesis: (the_Source_of G2) . e1 = (the_Source_of G3) . e1
then A17: e1 in the_Edges_of G2 ;
thus (the_Source_of G2) . e1 = (the_Source_of G1) . e1 by A17, GLIB_000:def 32
.= (the_Source_of G) . e1 by A14, A17, Def9
.= (the_Source_of G3) . e1 by A14, A17, GLIB_000:def 32 ; :: thesis: verum
end;
then A19: the_Source_of G2 = the_Source_of G3 by A16, FUNCT_1:2;
for e1 being object st e1 in dom (the_Target_of G2) holds
(the_Target_of G2) . e1 = (the_Target_of G3) . e1
proof
let e1 be object ; :: thesis: ( e1 in dom (the_Target_of G2) implies (the_Target_of G2) . e1 = (the_Target_of G3) . e1 )
assume e1 in dom (the_Target_of G2) ; :: thesis: (the_Target_of G2) . e1 = (the_Target_of G3) . e1
then A20: e1 in the_Edges_of G2 ;
thus (the_Target_of G2) . e1 = (the_Target_of G1) . e1 by A20, GLIB_000:def 32
.= (the_Target_of G) . e1 by A14, A20, Def9
.= (the_Target_of G3) . e1 by A14, A20, GLIB_000:def 32 ; :: thesis: verum
end;
then A22: the_Target_of G2 = the_Target_of G3 by A16, FUNCT_1:2;
now :: thesis: ( the_Vertices_of G3 c= the_Vertices_of G2 & the_Edges_of G3 c= the_Edges_of G2 & ( for e1 being set st e1 in the_Edges_of G3 holds
( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 ) ) )
the_Vertices_of G c= the_Vertices_of G1 by Def9;
then (the_Vertices_of G) \ {v2} c= (the_Vertices_of G1) \ {v2} by XBOOLE_1:33;
then the_Vertices_of G3 c= (the_Vertices_of G1) \ {v2} by GLIB_000:47;
hence the_Vertices_of G3 c= the_Vertices_of G2 by A2, GLIB_000:47; :: thesis: ( the_Edges_of G3 c= the_Edges_of G2 & ( for e1 being set st e1 in the_Edges_of G3 holds
( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 ) ) )

thus the_Edges_of G3 c= the_Edges_of G2 by A14; :: thesis: for e1 being set st e1 in the_Edges_of G3 holds
( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 )

let e1 be set ; :: thesis: ( e1 in the_Edges_of G3 implies ( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 ) )
assume e1 in the_Edges_of G3 ; :: thesis: ( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 )
thus ( (the_Source_of G3) . e1 = (the_Source_of G2) . e1 & (the_Target_of G3) . e1 = (the_Target_of G2) . e1 ) by A19, A22; :: thesis: verum
end;
then G2 is Supergraph of G3 by Def9;
hence G2 is addVertex of G3,v1 by A3, A14, A19, A22, Def10; :: thesis: verum