let G, G2 be _Graph; :: thesis: for v being object
for V being set
for G1 being addAdjVertexAll of G,v,V st G1 == G2 holds
G2 is addAdjVertexAll of G,v,V

let v be object ; :: thesis: for V being set
for G1 being addAdjVertexAll of G,v,V st G1 == G2 holds
G2 is addAdjVertexAll of G,v,V

let V be set ; :: thesis: for G1 being addAdjVertexAll of G,v,V st G1 == G2 holds
G2 is addAdjVertexAll of G,v,V

let G1 be addAdjVertexAll of G,v,V; :: thesis: ( G1 == G2 implies G2 is addAdjVertexAll of G,v,V )
assume A1: G1 == G2 ; :: thesis: G2 is addAdjVertexAll of G,v,V
per cases ( ( V c= the_Vertices_of G & not v in the_Vertices_of G ) or not V c= the_Vertices_of G or v in the_Vertices_of G ) ;
suppose A2: ( V c= the_Vertices_of G & not v in the_Vertices_of G ) ; :: thesis: G2 is addAdjVertexAll of G,v,V
then consider E being set such that
A3: ( card V = card E & E misses the_Edges_of G ) and
A4: the_Edges_of G1 = (the_Edges_of G) \/ E and
A5: for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G1 & ( for e2 being object st e2 Joins v1,v,G1 holds
e1 = e2 ) ) by Def4;
A6: now :: thesis: ( the_Vertices_of G2 = (the_Vertices_of G) \/ {v} & ( for e being object holds
( not e Joins v,v,G2 & ( for v1 being object holds
( ( not v1 in V implies not e Joins v1,v,G2 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G ) ) ) ) ) & ex E being set st
( card V = card E & E misses the_Edges_of G & the_Edges_of G2 = (the_Edges_of G) \/ E & ( for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) ) ) )
the_Vertices_of G1 = (the_Vertices_of G) \/ {v} by A2, Def4;
hence the_Vertices_of G2 = (the_Vertices_of G) \/ {v} by A1, GLIB_000:def 34; :: thesis: ( ( for e being object holds
( not e Joins v,v,G2 & ( for v1 being object holds
( ( not v1 in V implies not e Joins v1,v,G2 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G ) ) ) ) ) & ex E being set st
( card V = card E & E misses the_Edges_of G & the_Edges_of G2 = (the_Edges_of G) \/ E & ( for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) ) ) )

hereby :: thesis: ex E being set st
( card V = card E & E misses the_Edges_of G & the_Edges_of G2 = (the_Edges_of G) \/ E & ( for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) ) )
let e be object ; :: thesis: ( not e Joins v,v,G2 & ( for v1 being object holds
( ( not v1 in V implies not e Joins v1,v,G2 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G ) ) ) )

not e Joins v,v,G1 by A2, Def4;
hence not e Joins v,v,G2 by A1, GLIB_000:88; :: thesis: for v1 being object holds
( ( not v1 in V implies not e Joins v1,v,G2 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G ) )

let v1 be object ; :: thesis: ( ( not v1 in V implies not e Joins v1,v,G2 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G ) )

hereby :: thesis: for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G2 holds
e DJoins v1,v2,G
assume not v1 in V ; :: thesis: not e Joins v1,v,G2
then not e Joins v1,v,G1 by A2, Def4;
hence not e Joins v1,v,G2 by A1, GLIB_000:88; :: thesis: verum
end;
let v2 be object ; :: thesis: ( v1 <> v & v2 <> v & e DJoins v1,v2,G2 implies e DJoins v1,v2,G )
assume that
A7: ( v1 <> v & v2 <> v ) and
A8: e DJoins v1,v2,G2 ; :: thesis: e DJoins v1,v2,G
e DJoins v1,v2,G1 by A8, A1, GLIB_000:88;
hence e DJoins v1,v2,G by A2, A7, Def4; :: thesis: verum
end;
take E = E; :: thesis: ( card V = card E & E misses the_Edges_of G & the_Edges_of G2 = (the_Edges_of G) \/ E & ( for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) ) )

thus ( card V = card E & E misses the_Edges_of G ) by A3; :: thesis: ( the_Edges_of G2 = (the_Edges_of G) \/ E & ( for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) ) )

thus the_Edges_of G2 = (the_Edges_of G) \/ E by A4, A1, GLIB_000:def 34; :: thesis: for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) )

let v1 be object ; :: thesis: ( v1 in V implies ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) )

assume v1 in V ; :: thesis: ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) )

then consider e1 being object such that
A9: ( e1 in E & e1 Joins v1,v,G1 ) and
A10: for e2 being object st e2 Joins v1,v,G1 holds
e1 = e2 by A5;
take e1 = e1; :: thesis: ( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) )

thus ( e1 in E & e1 Joins v1,v,G2 ) by A1, A9, GLIB_000:88; :: thesis: for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2

let e2 be object ; :: thesis: ( e2 Joins v1,v,G2 implies e1 = e2 )
assume e2 Joins v1,v,G2 ; :: thesis: e1 = e2
then e2 Joins v1,v,G1 by A1, GLIB_000:88;
hence e1 = e2 by A10; :: thesis: verum
end;
G2 is Supergraph of G1 by A1, GLIB_006:59;
then G2 is Supergraph of G by GLIB_006:62;
hence G2 is addAdjVertexAll of G,v,V by A2, A6, Def4; :: thesis: verum
end;
suppose A11: ( not V c= the_Vertices_of G or v in the_Vertices_of G ) ; :: thesis: G2 is addAdjVertexAll of G,v,V
end;
end;