let G1 be non _trivial simple _Graph; for v being Vertex of G1
for G2 being removeVertex of G1,v holds G1 is addAdjVertexAll of G2,v,v .allNeighbors()
let v be Vertex of G1; for G2 being removeVertex of G1,v holds G1 is addAdjVertexAll of G2,v,v .allNeighbors()
let G2 be removeVertex of G1,v; G1 is addAdjVertexAll of G2,v,v .allNeighbors()
A1:
G1 is Supergraph of G2
by GLIB_006:57;
A2:
the_Vertices_of G2 = (the_Vertices_of G1) \ {v}
by GLIB_000:47;
A3: the_Edges_of G2 =
G1 .edgesBetween ((the_Vertices_of G1) \ {v})
by GLIB_000:47
.=
(G1 .edgesBetween (the_Vertices_of G1)) \ (v .edgesInOut())
by GLIB_000:107
.=
(the_Edges_of G1) \ (v .edgesInOut())
by GLIB_000:34
;
v in {v}
by TARSKI:def 1;
then A4:
not v in the_Vertices_of G2
by A2, XBOOLE_0:def 5;
for x being object st x in v .allNeighbors() holds
x in the_Vertices_of G2
then A7:
v .allNeighbors() c= the_Vertices_of G2
by TARSKI:def 3;
now ( the_Vertices_of G1 = (the_Vertices_of G2) \/ {v} & ( for e being object holds
( not e Joins v,v,G1 & ( for v1 being object holds
( ( not v1 in v .allNeighbors() implies not e Joins v1,v,G1 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G1 holds
e DJoins v1,v2,G2 ) ) ) ) ) & ex E being set st
( card (v .allNeighbors()) = card E & E misses the_Edges_of G2 & the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) ) )thus
the_Vertices_of G1 = (the_Vertices_of G2) \/ {v}
by A2, ZFMISC_1:116;
( ( for e being object holds
( not e Joins v,v,G1 & ( for v1 being object holds
( ( not v1 in v .allNeighbors() implies not e Joins v1,v,G1 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G1 holds
e DJoins v1,v2,G2 ) ) ) ) ) & ex E being set st
( card (v .allNeighbors()) = card E & E misses the_Edges_of G2 & the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) ) )hereby ex E being set st
( card (v .allNeighbors()) = card E & E misses the_Edges_of G2 & the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) )
let e be
object ;
( not e Joins v,v,G1 & ( for v1 being object holds
( ( not v1 in v .allNeighbors() implies not e Joins v1,v,G1 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G1 holds
e DJoins v1,v2,G2 ) ) ) )thus
not
e Joins v,
v,
G1
by GLIB_000:18;
for v1 being object holds
( ( not v1 in v .allNeighbors() implies not e Joins v1,v,G1 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G1 holds
e DJoins v1,v2,G2 ) )let v1 be
object ;
( ( not v1 in v .allNeighbors() implies not e Joins v1,v,G1 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G1 holds
e DJoins v1,v2,G2 ) )let v2 be
object ;
( v1 <> v & v2 <> v & e DJoins v1,v2,G1 implies e DJoins v1,v2,G2 )assume A9:
(
v1 <> v &
v2 <> v &
e DJoins v1,
v2,
G1 )
;
e DJoins v1,v2,G2thus
e DJoins v1,
v2,
G2
verum
end; reconsider E =
v .edgesInOut() as
set ;
take E =
E;
( card (v .allNeighbors()) = card E & E misses the_Edges_of G2 & the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) )
card E = v .degree()
by GLIB_000:19;
hence
card (v .allNeighbors()) = card E
by GLIB_000:111;
( E misses the_Edges_of G2 & the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) )
E /\ (the_Edges_of G2) = {}
hence
E misses the_Edges_of G2
by XBOOLE_0:def 7;
( the_Edges_of G1 = (the_Edges_of G2) \/ E & ( for v1 being object st v1 in v .allNeighbors() 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 ) ) ) )A13:
(the_Edges_of G2) \/ E c= the_Edges_of G1
by XBOOLE_1:8;
for
e being
object st
e in the_Edges_of G1 holds
e in (the_Edges_of G2) \/ E
then
the_Edges_of G1 c= (the_Edges_of G2) \/ E
by TARSKI:def 3;
hence
the_Edges_of G1 = (the_Edges_of G2) \/ E
by A13, XBOOLE_0:def 10;
for v1 being object st v1 in v .allNeighbors() 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 ) )let v1 be
object ;
( v1 in v .allNeighbors() implies 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 ) ) )assume A15:
v1 in v .allNeighbors()
;
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 ) )then consider e1 being
object such that A16:
e1 Joins v,
v1,
G1
by GLIB_000:71;
take e1 =
e1;
( e1 in E & e1 Joins v1,v,G1 & ( for e2 being object st e2 Joins v1,v,G1 holds
e1 = e2 ) )
(
v1 in the_Vertices_of G1 &
e1 is
set )
by A15, TARSKI:1;
hence
e1 in E
by A16, GLIB_000:64;
( e1 Joins v1,v,G1 & ( for e2 being object st e2 Joins v1,v,G1 holds
e1 = e2 ) )thus A17:
e1 Joins v1,
v,
G1
by A16, GLIB_000:14;
for e2 being object st e2 Joins v1,v,G1 holds
e1 = e2let e2 be
object ;
( e2 Joins v1,v,G1 implies e1 = e2 )assume
e2 Joins v1,
v,
G1
;
e1 = e2hence
e1 = e2
by A17, GLIB_000:def 20;
verum end;
hence
G1 is addAdjVertexAll of G2,v,v .allNeighbors()
by A1, A4, A7, GLIB_007:def 4; verum