let G2 be _Graph; :: thesis: for v, w being Vertex of G2
for e being object
for G1 being addEdge of G2,v,e,w
for v1 being Vertex of G1 st not e in the_Edges_of G2 & v1 = v & v <> w holds
( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )

let v, w be Vertex of G2; :: thesis: for e being object
for G1 being addEdge of G2,v,e,w
for v1 being Vertex of G1 st not e in the_Edges_of G2 & v1 = v & v <> w holds
( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )

let e be object ; :: thesis: for G1 being addEdge of G2,v,e,w
for v1 being Vertex of G1 st not e in the_Edges_of G2 & v1 = v & v <> w holds
( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )

let G1 be addEdge of G2,v,e,w; :: thesis: for v1 being Vertex of G1 st not e in the_Edges_of G2 & v1 = v & v <> w holds
( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )

let v1 be Vertex of G1; :: thesis: ( not e in the_Edges_of G2 & v1 = v & v <> w implies ( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 ) )
assume A1: ( not e in the_Edges_of G2 & v1 = v & v <> w ) ; :: thesis: ( v1 .edgesIn() = v .edgesIn() & v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )
A2: G2 is Subgraph of G1 by GLIB_006:57;
A3: v .edgesIn() c= v1 .edgesIn() by A1, A2, GLIB_000:78;
now :: thesis: for f being object st f in v1 .edgesIn() holds
f in v .edgesIn()
let f be object ; :: thesis: ( f in v1 .edgesIn() implies f in v .edgesIn() )
assume f in v1 .edgesIn() ; :: thesis: f in v .edgesIn()
then consider x being set such that
A4: f DJoins x,v1,G1 by GLIB_000:57;
f in the_Edges_of G2
proof end;
hence f in v .edgesIn() by A1, A4, GLIB_006:71, GLIB_000:57; :: thesis: verum
end;
then v1 .edgesIn() c= v .edgesIn() by TARSKI:def 3;
hence A7: v1 .edgesIn() = v .edgesIn() by A3, XBOOLE_0:def 10; :: thesis: ( v1 .inDegree() = v .inDegree() & v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )
hence A8: v1 .inDegree() = v .inDegree() ; :: thesis: ( v1 .edgesOut() = (v .edgesOut()) \/ {e} & v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )
now :: thesis: for f being object holds
( ( f in v1 .edgesOut() implies f in (v .edgesOut()) \/ {e} ) & ( f in (v .edgesOut()) \/ {e} implies f in v1 .edgesOut() ) )
end;
hence A12: v1 .edgesOut() = (v .edgesOut()) \/ {e} by TARSKI:2; :: thesis: ( v1 .outDegree() = (v .outDegree()) +` 1 & v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )
not e in v .edgesOut() by A1;
then A13: v .edgesOut() misses {e} by ZFMISC_1:50;
thus A14: v1 .outDegree() = (card (v .edgesOut())) +` (card {e}) by A12, A13, CARD_2:35
.= (v .outDegree()) +` 1 by CARD_1:30 ; :: thesis: ( v1 .edgesInOut() = (v .edgesInOut()) \/ {e} & v1 .degree() = (v .degree()) +` 1 )
thus v1 .edgesInOut() = (v .edgesInOut()) \/ {e} by A7, A12, XBOOLE_1:4; :: thesis: v1 .degree() = (v .degree()) +` 1
thus v1 .degree() = (v .degree()) +` 1 by A8, A14, CARD_2:19; :: thesis: verum