
theorem Th16:
  for G being _Graph
  for V being non empty one-to-one ManySortedSet of the_Vertices_of G
  for E being one-to-one ManySortedSet of the_Edges_of G
  ex F being PGraphMapping of G, replaceVerticesEdges(V,E)
  st F_V = V & F_E = E & F is Disomorphism
proof
  let G be _Graph;
  let V be non empty one-to-one ManySortedSet of the_Vertices_of G;
  let E be one-to-one ManySortedSet of the_Edges_of G;
  the_Vertices_of replaceVerticesEdges(V,E) = rng V &
    the_Vertices_of G = dom V by Th1, PARTFUN1:def 2;
  then reconsider f = V as Function of the_Vertices_of G,
    the_Vertices_of replaceVerticesEdges(V,E) by FUNCT_2:1;
  the_Edges_of replaceVerticesEdges(V,E) = rng E &
    the_Edges_of G = dom E by Th1, PARTFUN1:def 2;
  then reconsider g = E as Function of the_Edges_of G,
    the_Edges_of replaceVerticesEdges(V,E) by FUNCT_2:1;
  :: properties of PGM
  now
    hereby
      let e be object;
      set v = (the_Source_of G).e, w = (the_Target_of G).e;
      assume e in dom g;
      then A1: e Joins v,w,G by GLIB_000:def 13;
      dom f = the_Vertices_of G by PARTFUN1:def 2;
      hence v in dom f & w in dom f by A1, GLIB_000:13;
    end;
    let e,v,w be object;
    assume e in dom g & v in dom f & w in dom f;
    assume e DJoins v,w,G;
    hence g.e DJoins f.v,f.w,replaceVerticesEdges(V,E) by Th4;
  end;
  then reconsider F = [f,g] as
    directed PGraphMapping of G, replaceVerticesEdges(V,E) by GLIB_010:30;
  take F;
  the_Vertices_of G = dom F_V & the_Edges_of G = dom F_E by PARTFUN1:def 2;
  then A2: F is total by GLIB_010:def 11;
  the_Vertices_of replaceVerticesEdges(V,E) = rng F_V &
    the_Edges_of replaceVerticesEdges(V,E) = rng F_E by Th1;
  then A3: F is onto by GLIB_010:def 12;
  F_V is one-to-one & F_E is one-to-one;
  then F is one-to-one by GLIB_010:def 13;
  hence thesis by A2, A3;
end;
