
theorem Th60:
  for G1 being _Graph, E being set, G2 being reverseEdgeDirections of G1, E
  for v1 being Vertex of G1, v2 being Vertex of G2 st v1 = v2
  holds v2.edgesInOut() = v1.edgesInOut() & v2.degree() = v1.degree()
proof
  let G1 be _Graph, E be set, G2 be reverseEdgeDirections of G1, E;
  let v1 be Vertex of G1, v2 be Vertex of G2;
  assume A1: v1 = v2;
  per cases;
  suppose E c= the_Edges_of G1;
    then A2: v2.edgesIn() = (v1.edgesIn() \ E) \/ (v1.edgesOut() /\ E) &
      v2.edgesOut() = (v1.edgesOut() \ E) \/ (v1.edgesIn() /\ E) by A1, Th58;
    :: just sorting the unions
    thus v2.edgesInOut()
       = (v1.edgesIn() \ E) \/ (v1.edgesOut() /\ E) \/
        (v1.edgesIn() /\ E) \/ (v1.edgesOut() \ E) by A2, XBOOLE_1:4
      .= (v1.edgesIn() \ E) \/ (v1.edgesIn() /\ E) \/
        (v1.edgesOut() /\ E) \/ (v1.edgesOut() \ E) by XBOOLE_1:4
      .= v1.edgesIn() \/ (v1.edgesOut() /\ E) \/ (v1.edgesOut() \ E)
        by XBOOLE_1:51
      .= v1.edgesIn() \/ ((v1.edgesOut() /\ E) \/ (v1.edgesOut() \ E))
        by XBOOLE_1:4
      .= v1.edgesInOut() by XBOOLE_1:51;
    :: sorting the summands in a similar fashion
    thus v2.degree()
       = card(v1.edgesIn()\E) +` card(v1.edgesOut()/\E) +`
        card((v1.edgesOut() \ E) \/ (v1.edgesIn() /\ E)) by A2, Th2, CARD_2:35
      .= card(v1.edgesIn()\E) +` card(v1.edgesOut()/\E) +`
        (card(v1.edgesOut()\E) +` card(v1.edgesIn()/\E)) by Th2, CARD_2:35
      .= card(v1.edgesIn()\E) +` card(v1.edgesOut()/\E) +`
        card(v1.edgesIn()/\E) +` card(v1.edgesOut()\E) by CARD_2:19
      .= card(v1.edgesIn()\E) +` card(v1.edgesIn()/\E) +`
        card(v1.edgesOut()/\E) +` card(v1.edgesOut()\E) by CARD_2:19
      .= card((v1.edgesIn()\E) \/ (v1.edgesIn()/\E)) +`
        card(v1.edgesOut()/\E) +` card(v1.edgesOut()\E) by Th2, CARD_2:35
      .= v1.inDegree() +` card(v1.edgesOut()/\E) +` card(v1.edgesOut()\E)
        by XBOOLE_1:51
      .= v1.inDegree() +` (card(v1.edgesOut()/\E) +` card(v1.edgesOut()\E))
        by CARD_2:19
      .= v1.inDegree() +` card((v1.edgesOut()/\E) \/ (v1.edgesOut()\E))
        by Th2, CARD_2:35
      .= v1.degree() by XBOOLE_1:51;
  end;
  suppose not E c= the_Edges_of G1;
    then G1 == G2 by GLIB_007:def 1;
    hence thesis by A1, GLIB_000:96;
  end;
end;
