let G1 be _Graph; for E being set
for G2 being reverseEdgeDirections of G1,E holds G2 is reverseEdgeDirections of G1,E \ (G1 .loops())
let E be set ; for G2 being reverseEdgeDirections of G1,E holds G2 is reverseEdgeDirections of G1,E \ (G1 .loops())
let G2 be reverseEdgeDirections of G1,E; G2 is reverseEdgeDirections of G1,E \ (G1 .loops())
per cases
( E c= the_Edges_of G1 or not E c= the_Edges_of G1 )
;
suppose A1:
E c= the_Edges_of G1
;
G2 is reverseEdgeDirections of G1,E \ (G1 .loops())then A2:
(
the_Vertices_of G1 = the_Vertices_of G2 &
the_Edges_of G1 = the_Edges_of G2 )
by GLIB_007:def 1;
A3:
E \ (G1 .loops()) c= the_Edges_of G1
by A1, XBOOLE_1:1;
set S =
the_Source_of G1;
set T =
the_Target_of G1;
dom ((the_Target_of G1) | (E /\ (G1 .loops()))) c= dom (the_Target_of G1)
by RELAT_1:60;
then
dom ((the_Target_of G1) | (E /\ (G1 .loops()))) c= the_Edges_of G1
by FUNCT_2:def 1;
then A4:
dom ((the_Target_of G1) | (E /\ (G1 .loops()))) c= dom (the_Source_of G1)
by FUNCT_2:def 1;
then A7:
the_Source_of G1 tolerates (the_Target_of G1) | (E /\ (G1 .loops()))
by PARTFUN1:def 4;
A8:
the_Source_of G2 =
(the_Source_of G1) +* ((the_Target_of G1) | E)
by A1, GLIB_007:def 1
.=
(the_Source_of G1) +* ((the_Target_of G1) | ((E /\ (G1 .loops())) \/ (E \ (G1 .loops()))))
by XBOOLE_1:51
.=
(the_Source_of G1) +* (((the_Target_of G1) | (E /\ (G1 .loops()))) +* ((the_Target_of G1) | (E \ (G1 .loops()))))
by FUNCT_4:78
.=
((the_Source_of G1) +* ((the_Target_of G1) | (E /\ (G1 .loops())))) +* ((the_Target_of G1) | (E \ (G1 .loops())))
by FUNCT_4:14
.=
(((the_Target_of G1) | (E /\ (G1 .loops()))) +* (the_Source_of G1)) +* ((the_Target_of G1) | (E \ (G1 .loops())))
by A7, FUNCT_4:34
.=
(the_Source_of G1) +* ((the_Target_of G1) | (E \ (G1 .loops())))
by A4, FUNCT_4:19
;
dom ((the_Source_of G1) | (E /\ (G1 .loops()))) c= dom (the_Source_of G1)
by RELAT_1:60;
then
dom ((the_Source_of G1) | (E /\ (G1 .loops()))) c= the_Edges_of G1
by FUNCT_2:def 1;
then A9:
dom ((the_Source_of G1) | (E /\ (G1 .loops()))) c= dom (the_Target_of G1)
by FUNCT_2:def 1;
then A12:
the_Target_of G1 tolerates (the_Source_of G1) | (E /\ (G1 .loops()))
by PARTFUN1:def 4;
the_Target_of G2 =
(the_Target_of G1) +* ((the_Source_of G1) | E)
by A1, GLIB_007:def 1
.=
(the_Target_of G1) +* ((the_Source_of G1) | ((E /\ (G1 .loops())) \/ (E \ (G1 .loops()))))
by XBOOLE_1:51
.=
(the_Target_of G1) +* (((the_Source_of G1) | (E /\ (G1 .loops()))) +* ((the_Source_of G1) | (E \ (G1 .loops()))))
by FUNCT_4:78
.=
((the_Target_of G1) +* ((the_Source_of G1) | (E /\ (G1 .loops())))) +* ((the_Source_of G1) | (E \ (G1 .loops())))
by FUNCT_4:14
.=
(((the_Source_of G1) | (E /\ (G1 .loops()))) +* (the_Target_of G1)) +* ((the_Source_of G1) | (E \ (G1 .loops())))
by A12, FUNCT_4:34
.=
(the_Target_of G1) +* ((the_Source_of G1) | (E \ (G1 .loops())))
by A9, FUNCT_4:19
;
hence
G2 is
reverseEdgeDirections of
G1,
E \ (G1 .loops())
by A2, A3, A8, GLIB_007:def 1;
verum end; end;