reserve G, G2 for _Graph, V, E for set,
  v for object;

theorem Th12:
  for G2, E, V for G1 being reverseEdgeDirections of G2, E
  holds G1.edgesInOut(V) = G2.edgesInOut(V)
proof
  let G2, E, V;
  let G1 be reverseEdgeDirections of G2, E;
  for e being object holds e in G1.edgesInOut(V) iff e in G2.edgesInOut(V)
  proof
    let e be object;
    set x1 = (the_Source_of G1).e, y1 = (the_Target_of G1).e;
    set x2 = (the_Source_of G2).e, y2 = (the_Target_of G2).e;
    hereby
      assume A1: e in G1.edgesInOut(V);
      then e Joins x1,y1,G1 by GLIB_000:def 13;
      then e Joins x1,y1,G2 by Th9;
      then e in the_Edges_of G2 & ((x1=x2 & y1=y2) or (x1=y2 & y1=x2))
        by GLIB_000:def 13;
      then e in the_Edges_of G2 & (x2 in V or y2 in V) by A1, GLIB_000:28;
      hence e in G2.edgesInOut(V) by GLIB_000:28;
    end;
    assume A2: e in G2.edgesInOut(V);
    then e Joins x2,y2,G2 by GLIB_000:def 13;
    then e Joins x2,y2,G1 by Th9;
    then e in the_Edges_of G1 & ((x1=x2 & y1=y2) or (x1=y2 & y1=x2))
      by GLIB_000:def 13;
    then e in the_Edges_of G1 & (x1 in V or y1 in V) by A2, GLIB_000:28;
    hence e in G1.edgesInOut(V) by GLIB_000:28;
  end;
  hence thesis by TARSKI:2;
end;
