let G2 be _Graph; :: thesis: for v, w, e being object
for G1 being addEdge of G2,v,e,w
for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & v2 <> v & v2 <> w holds
( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )

let v, w, e be object ; :: thesis: for G1 being addEdge of G2,v,e,w
for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & v2 <> v & v2 <> w holds
( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )

let G1 be addEdge of G2,v,e,w; :: thesis: for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & v2 <> v & v2 <> w holds
( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )

let v1 be Vertex of G1; :: thesis: for v2 being Vertex of G2 st v1 = v2 & v2 <> v & v2 <> w holds
( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )

let v2 be Vertex of G2; :: thesis: ( v1 = v2 & v2 <> v & v2 <> w implies ( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() ) )
assume A1: ( v1 = v2 & v2 <> v & v2 <> w ) ; :: thesis: ( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
per cases ( ( v in the_Vertices_of G2 & w in the_Vertices_of G2 & not e in the_Edges_of G2 ) or not v in the_Vertices_of G2 or not w in the_Vertices_of G2 or e in the_Edges_of G2 ) ;
suppose A2: ( v in the_Vertices_of G2 & w in the_Vertices_of G2 & not e in the_Edges_of G2 ) ; :: thesis: ( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
A3: G2 is Subgraph of G1 by GLIB_006:57;
A4: v2 .edgesIn() c= v1 .edgesIn() by A1, A3, GLIB_000:78;
now :: thesis: for f being object st f in v1 .edgesIn() holds
f in v2 .edgesIn()
let f be object ; :: thesis: ( f in v1 .edgesIn() implies f in v2 .edgesIn() )
assume f in v1 .edgesIn() ; :: thesis: f in v2 .edgesIn()
then consider x being set such that
A5: f DJoins x,v1,G1 by GLIB_000:57;
f in the_Edges_of G2 hence f in v2 .edgesIn() by A1, A5, GLIB_006:71, GLIB_000:57; :: thesis: verum
end;
then v1 .edgesIn() c= v2 .edgesIn() by TARSKI:def 3;
hence A8: v1 .edgesIn() = v2 .edgesIn() by A4, XBOOLE_0:def 10; :: thesis: ( v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
hence v1 .inDegree() = v2 .inDegree() ; :: thesis: ( v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
A9: v2 .edgesOut() c= v1 .edgesOut() by A1, A3, GLIB_000:78;
now :: thesis: for f being object st f in v1 .edgesOut() holds
f in v2 .edgesOut()
let f be object ; :: thesis: ( f in v1 .edgesOut() implies f in v2 .edgesOut() )
assume f in v1 .edgesOut() ; :: thesis: f in v2 .edgesOut()
then consider x being set such that
A10: f DJoins v1,x,G1 by GLIB_000:59;
f in the_Edges_of G2 hence f in v2 .edgesOut() by A1, A10, GLIB_006:71, GLIB_000:59; :: thesis: verum
end;
then v1 .edgesOut() c= v2 .edgesOut() by TARSKI:def 3;
hence A13: v1 .edgesOut() = v2 .edgesOut() by A9, XBOOLE_0:def 10; :: thesis: ( v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
hence v1 .outDegree() = v2 .outDegree() ; :: thesis: ( v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
thus ( v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() ) by A8, A13; :: thesis: verum
end;
suppose ( not v in the_Vertices_of G2 or not w in the_Vertices_of G2 or e in the_Edges_of G2 ) ; :: thesis: ( v1 .edgesIn() = v2 .edgesIn() & v1 .inDegree() = v2 .inDegree() & v1 .edgesOut() = v2 .edgesOut() & v1 .outDegree() = v2 .outDegree() & v1 .edgesInOut() = v2 .edgesInOut() & v1 .degree() = v2 .degree() )
end;
end;