let G2 be _Graph; :: thesis: for v being object
for V being set
for G1 being addAdjVertexAll of G2,v,V
for w being Vertex of G1 st V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w holds
( w .allNeighbors() = V & w .degree() = card V )

let v be object ; :: thesis: for V being set
for G1 being addAdjVertexAll of G2,v,V
for w being Vertex of G1 st V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w holds
( w .allNeighbors() = V & w .degree() = card V )

let V be set ; :: thesis: for G1 being addAdjVertexAll of G2,v,V
for w being Vertex of G1 st V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w holds
( w .allNeighbors() = V & w .degree() = card V )

let G1 be addAdjVertexAll of G2,v,V; :: thesis: for w being Vertex of G1 st V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w holds
( w .allNeighbors() = V & w .degree() = card V )

let w be Vertex of G1; :: thesis: ( V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w implies ( w .allNeighbors() = V & w .degree() = card V ) )
assume A1: ( V c= the_Vertices_of G2 & not v in the_Vertices_of G2 & v = w ) ; :: thesis: ( w .allNeighbors() = V & w .degree() = card V )
then consider E being set such that
A2: ( card V = card E & E misses the_Edges_of G2 ) and
A3: the_Edges_of G1 = (the_Edges_of G2) \/ E and
A4: 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 GLIB_007:def 4;
now :: thesis: for x being object holds
( ( x in w .allNeighbors() implies x in V ) & ( x in V implies x in w .allNeighbors() ) )
let x be object ; :: thesis: ( ( x in w .allNeighbors() implies x in V ) & ( x in V implies x in w .allNeighbors() ) )
hereby :: thesis: ( x in V implies x in w .allNeighbors() )
assume x in w .allNeighbors() ; :: thesis: x in V
then consider e being object such that
A5: e Joins w,x,G1 by GLIB_000:71;
not e in the_Edges_of G2 then ( ( w = v & x in V ) or ( x = v & w in V ) ) by A1, A2, A3, A5, GLIB_007:51;
hence x in V by A1; :: thesis: verum
end;
assume x in V ; :: thesis: x in w .allNeighbors()
then consider e1 being object such that
A6: ( e1 in E & e1 Joins x,v,G1 ) and
for e2 being object st e2 Joins x,v,G1 holds
e1 = e2 by A4;
x is set by TARSKI:1;
hence x in w .allNeighbors() by A1, A6, GLIB_000:14, GLIB_000:71; :: thesis: verum
end;
hence w .allNeighbors() = V by TARSKI:2; :: thesis: w .degree() = card V
per cases ( V <> {} or V = {} ) ;
suppose A7: V <> {} ; :: thesis: w .degree() = card V
V c= V ;
then consider f being Function of V,(G1 .edgesBetween (V,{v})) such that
A8: ( f is one-to-one & f is onto ) and
A9: for u being object st u in V holds
f . u Joins u,v,G1 by A1, GLIB_007:57;
A10: rng f = G1 .edgesBetween (V,{w}) by A1, A8, FUNCT_2:def 3;
the_Vertices_of G2 c= the_Vertices_of G1 by GLIB_006:def 9;
then V c= the_Vertices_of G1 by A1, XBOOLE_1:1;
then A11: G1 .edgesBetween (V,{w}) c= G1 .edgesBetween ((the_Vertices_of G1),{w}) by GLIB_000:37;
now :: thesis: for e being object st e in G1 .edgesBetween ((the_Vertices_of G1),{w}) holds
e in G1 .edgesBetween (V,{w})
let e be object ; :: thesis: ( e in G1 .edgesBetween ((the_Vertices_of G1),{w}) implies e in G1 .edgesBetween (V,{w}) )
assume e in G1 .edgesBetween ((the_Vertices_of G1),{w}) ; :: thesis: e in G1 .edgesBetween (V,{w})
then A12: e SJoins the_Vertices_of G1,{w},G1 by GLIB_000:def 30;
ex u being object st e Joins u,w,G1
proof end;
then consider u being object such that
A17: e Joins u,w,G1 ;
( u in V & w in {w} ) by A1, A17, GLIB_007:def 4, TARSKI:def 1;
then e SJoins V,{w},G1 by A17, GLIB_000:17;
hence e in G1 .edgesBetween (V,{w}) by GLIB_000:def 30; :: thesis: verum
end;
then G1 .edgesBetween ((the_Vertices_of G1),{w}) c= G1 .edgesBetween (V,{w}) by TARSKI:def 3;
then G1 .edgesBetween (V,{w}) = G1 .edgesBetween ((the_Vertices_of G1),{w}) by A11, XBOOLE_0:def 10;
then A18: rng f = w .edgesInOut() by A10, GLIB_000:151;
set u = the Element of V;
A19: ( the Element of V in V & v in {v} ) by A7, TARSKI:def 1;
then f . the Element of V Joins the Element of V,v,G1 by A9;
then f . the Element of V SJoins V,{v},G1 by A19, GLIB_000:17;
then f . the Element of V in G1 .edgesBetween (V,{v}) by GLIB_000:def 30;
then dom f = V by FUNCT_2:def 1;
then A20: card V = card (w .edgesInOut()) by A8, A18, CARD_1:70;
for e being object holds not e Joins w,w,G1 by A1, GLIB_007:def 4;
hence w .degree() = card V by A20, GLIB_000:154; :: thesis: verum
end;
suppose A21: V = {} ; :: thesis: w .degree() = card V
end;
end;