let G1 be _Graph; :: thesis: for E being set
for G2 being reverseEdgeDirections of G1,E
for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & E c= the_Edges_of G1 holds
( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) )

let E be set ; :: thesis: for G2 being reverseEdgeDirections of G1,E
for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & E c= the_Edges_of G1 holds
( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) )

let G2 be reverseEdgeDirections of G1,E; :: thesis: for v1 being Vertex of G1
for v2 being Vertex of G2 st v1 = v2 & E c= the_Edges_of G1 holds
( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) )

let v1 be Vertex of G1; :: thesis: for v2 being Vertex of G2 st v1 = v2 & E c= the_Edges_of G1 holds
( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) )

let v2 be Vertex of G2; :: thesis: ( v1 = v2 & E c= the_Edges_of G1 implies ( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) ) )
assume A1: ( v1 = v2 & E c= the_Edges_of G1 ) ; :: thesis: ( v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) & v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) )
now :: thesis: for e being object holds
( ( e in v2 .edgesIn() implies e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) ) & ( e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) implies e in v2 .edgesIn() ) )
let e be object ; :: thesis: ( ( e in v2 .edgesIn() implies e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) ) & ( e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) implies b1 in v2 .edgesIn() ) )
A2: e is set by TARSKI:1;
hereby :: thesis: ( e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) implies b1 in v2 .edgesIn() ) end;
assume e in ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) ; :: thesis: b1 in v2 .edgesIn()
per cases then ( e in (v1 .edgesIn()) \ E or e in (v1 .edgesOut()) /\ E ) by XBOOLE_0:def 3;
suppose e in (v1 .edgesIn()) \ E ; :: thesis: b1 in v2 .edgesIn()
then A6: ( e in v1 .edgesIn() & not e in E ) by XBOOLE_0:def 5;
then consider x being set such that
A7: e DJoins x,v1,G1 by GLIB_000:57;
e DJoins x,v1,G2 by A1, A6, A7, GLIB_007:8;
hence e in v2 .edgesIn() by A1, A2, GLIB_000:57; :: thesis: verum
end;
suppose e in (v1 .edgesOut()) /\ E ; :: thesis: b1 in v2 .edgesIn()
then A8: ( e in v1 .edgesOut() & e in E ) by XBOOLE_0:def 4;
then consider x being set such that
A9: e DJoins v1,x,G1 by GLIB_000:59;
e DJoins x,v1,G2 by A1, A8, A9, GLIB_007:7;
hence e in v2 .edgesIn() by A1, A2, GLIB_000:57; :: thesis: verum
end;
end;
end;
hence v2 .edgesIn() = ((v1 .edgesIn()) \ E) \/ ((v1 .edgesOut()) /\ E) by TARSKI:2; :: thesis: v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E)
now :: thesis: for e being object holds
( ( e in v2 .edgesOut() implies e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) ) & ( e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) implies e in v2 .edgesOut() ) )
let e be object ; :: thesis: ( ( e in v2 .edgesOut() implies e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) ) & ( e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) implies b1 in v2 .edgesOut() ) )
A10: e is set by TARSKI:1;
hereby :: thesis: ( e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) implies b1 in v2 .edgesOut() ) end;
assume e in ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) ; :: thesis: b1 in v2 .edgesOut()
per cases then ( e in (v1 .edgesOut()) \ E or e in (v1 .edgesIn()) /\ E ) by XBOOLE_0:def 3;
suppose e in (v1 .edgesOut()) \ E ; :: thesis: b1 in v2 .edgesOut()
then A14: ( e in v1 .edgesOut() & not e in E ) by XBOOLE_0:def 5;
then consider x being set such that
A15: e DJoins v1,x,G1 by GLIB_000:59;
e DJoins v1,x,G2 by A1, A14, A15, GLIB_007:8;
hence e in v2 .edgesOut() by A1, A10, GLIB_000:59; :: thesis: verum
end;
suppose e in (v1 .edgesIn()) /\ E ; :: thesis: b1 in v2 .edgesOut()
then A16: ( e in v1 .edgesIn() & e in E ) by XBOOLE_0:def 4;
then consider x being set such that
A17: e DJoins x,v1,G1 by GLIB_000:57;
e DJoins v1,x,G2 by A1, A16, A17, GLIB_007:7;
hence e in v2 .edgesOut() by A1, A10, GLIB_000:59; :: thesis: verum
end;
end;
end;
hence v2 .edgesOut() = ((v1 .edgesOut()) \ E) \/ ((v1 .edgesIn()) /\ E) by TARSKI:2; :: thesis: verum