let G2 be _Graph; :: thesis: for E being set
for G1 being reverseEdgeDirections of G2,E
for v being set
for G3 being removeVertex of G1,v
for G4 being removeVertex of G2,v holds G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})

let E be set ; :: thesis: for G1 being reverseEdgeDirections of G2,E
for v being set
for G3 being removeVertex of G1,v
for G4 being removeVertex of G2,v holds G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})

let G1 be reverseEdgeDirections of G2,E; :: thesis: for v being set
for G3 being removeVertex of G1,v
for G4 being removeVertex of G2,v holds G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})

let v be set ; :: thesis: for G3 being removeVertex of G1,v
for G4 being removeVertex of G2,v holds G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})

let G3 be removeVertex of G1,v; :: thesis: for G4 being removeVertex of G2,v holds G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
let G4 be removeVertex of G2,v; :: thesis: G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
per cases ( E c= the_Edges_of G2 or not E c= the_Edges_of G2 ) ;
suppose A1: E c= the_Edges_of G2 ; :: thesis: G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
then A2: ( the_Vertices_of G1 = the_Vertices_of G2 & the_Edges_of G1 = the_Edges_of G2 & the_Source_of G1 = (the_Source_of G2) +* ((the_Target_of G2) | E) & the_Target_of G1 = (the_Target_of G2) +* ((the_Source_of G2) | E) ) by Def1;
then A4: G1 .edgesBetween ((the_Vertices_of G1) \ {v}) = G2 .edgesBetween ((the_Vertices_of G2) \ {v}) by Th11;
per cases ( not v in the_Vertices_of G2 or v in the_Vertices_of G2 ) ;
suppose A8: v in the_Vertices_of G2 ; :: thesis: G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
then A9: v in the_Vertices_of G1 by A2;
per cases ( not G2 is _trivial or G2 is _trivial ) ;
suppose A10: not G2 is _trivial ; :: thesis: G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
then A11: ( the_Vertices_of G4 = (the_Vertices_of G2) \ {v} & the_Edges_of G4 = G2 .edgesBetween ((the_Vertices_of G2) \ {v}) ) by A8, GLIB_000:47;
A12: ( the_Vertices_of G3 = (the_Vertices_of G1) \ {v} & the_Edges_of G3 = G1 .edgesBetween ((the_Vertices_of G1) \ {v}) ) by A2, A8, GLIB_000:47, A10;
then A13: ( the_Vertices_of G4 = the_Vertices_of G3 & the_Edges_of G4 = the_Edges_of G3 ) by A11, A2, A4;
A14: ( dom (the_Source_of G4) = the_Edges_of G4 & dom (the_Target_of G4) = the_Edges_of G4 ) by GLIB_000:4;
for e being object st e in E \ (G1 .edgesInOut {v}) holds
e in the_Edges_of G3
proof end;
then A18: E \ (G1 .edgesInOut {v}) c= the_Edges_of G3 by TARSKI:def 3;
A19: for e being object st e in the_Edges_of G4 holds
not e in G1 .edgesInOut {v} set S = (the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})));
A22: dom ((the_Target_of G3) | (E \ (G1 .edgesInOut {v}))) = (dom (the_Target_of G3)) /\ (E \ (G1 .edgesInOut {v})) by RELAT_1:61
.= (the_Edges_of G3) /\ (E \ (G1 .edgesInOut {v})) by GLIB_000:4 ;
A23: dom ((the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) = (dom (the_Source_of G3)) \/ (dom ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) by FUNCT_4:def 1
.= (the_Edges_of G3) \/ (dom ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) by GLIB_000:4
.= dom (the_Source_of G4) by A13, A14, A22, XBOOLE_1:22 ;
set T = (the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})));
A24: dom ((the_Source_of G3) | (E \ (G1 .edgesInOut {v}))) = (dom (the_Source_of G3)) /\ (E \ (G1 .edgesInOut {v})) by RELAT_1:61
.= (the_Edges_of G3) /\ (E \ (G1 .edgesInOut {v})) by GLIB_000:4 ;
A25: dom ((the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) = (dom (the_Target_of G3)) \/ (dom ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) by FUNCT_4:def 1
.= (the_Edges_of G3) \/ (dom ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) by GLIB_000:4
.= dom (the_Target_of G4) by A13, A14, A24, XBOOLE_1:22 ;
for e being object st e in dom (the_Source_of G4) holds
(the_Source_of G4) . e = ((the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) . e
proof
let e be object ; :: thesis: ( e in dom (the_Source_of G4) implies (the_Source_of G4) . e = ((the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) . e )
assume e in dom (the_Source_of G4) ; :: thesis: (the_Source_of G4) . e = ((the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) . e
then A26: e in the_Edges_of G4 ;
per cases ( e in E \ (G1 .edgesInOut {v}) or not e in E \ (G1 .edgesInOut {v}) ) ;
suppose A27: e in E \ (G1 .edgesInOut {v}) ; :: thesis: (the_Source_of G4) . e = ((the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v})))) . e
end;
end;
end;
then A35: the_Source_of G4 = (the_Source_of G3) +* ((the_Target_of G3) | (E \ (G1 .edgesInOut {v}))) by A23, FUNCT_1:2;
for e being object st e in dom (the_Target_of G4) holds
(the_Target_of G4) . e = ((the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) . e
proof
let e be object ; :: thesis: ( e in dom (the_Target_of G4) implies (the_Target_of G4) . e = ((the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) . e )
assume e in dom (the_Target_of G4) ; :: thesis: (the_Target_of G4) . e = ((the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) . e
then A36: e in the_Edges_of G4 ;
per cases ( e in E \ (G1 .edgesInOut {v}) or not e in E \ (G1 .edgesInOut {v}) ) ;
suppose A37: e in E \ (G1 .edgesInOut {v}) ; :: thesis: (the_Target_of G4) . e = ((the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v})))) . e
end;
end;
end;
then the_Target_of G4 = (the_Target_of G3) +* ((the_Source_of G3) | (E \ (G1 .edgesInOut {v}))) by A25, FUNCT_1:2;
hence G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v}) by A13, A18, A35, Def1; :: thesis: verum
end;
end;
end;
end;
end;
suppose A50: not E c= the_Edges_of G2 ; :: thesis: G4 is reverseEdgeDirections of G3,E \ (G1 .edgesInOut {v})
end;
end;