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 w1 being Vertex of G1 st not e in the_Edges_of G2 & w1 = w & v <> w holds
( w1 .edgesIn() = (w .edgesIn()) \/ {e} & w1 .inDegree() = (w .inDegree()) +` 1 & w1 .edgesOut() = w .edgesOut() & w1 .outDegree() = w .outDegree() & w1 .edgesInOut() = (w .edgesInOut()) \/ {e} & w1 .degree() = (w .degree()) +` 1 )

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

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

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

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