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

theorem Th57:
  for G2, v, V for W being Subset of V, G1 being addAdjVertexAll of G2,v,V
  st V c= the_Vertices_of G2 & not v in the_Vertices_of G2
  ex f being Function of W, G1.edgesBetween(W,{v}) st
    f is one-to-one onto & for w being object st w in W holds f.w Joins w,v,G1
proof
  let G2, v, V;
  let W be Subset of V, G1 be addAdjVertexAll of G2,v,V;
  assume A1: V c= the_Vertices_of G2 & not v in the_Vertices_of G2;
  then consider E being set such that
    card V = card E and
    E misses the_Edges_of G2 & the_Edges_of G1 = the_Edges_of G2 \/ E and
    A2: for v1 being object st v1 in V ex e1 being object st e1 in E &
      e1 Joins v1,v,G1 &
      for e2 being object st e2 Joins v1,v,G1 holds e1 = e2 by Def4;
  defpred P[object,object] means $2 Joins $1,v,G1;
  A3: for w being object st w in W ex e being object
    st e in G1.edgesBetween(W,{v}) & P[w,e]
  proof
    let w be object;
    assume A4: w in W;
    then consider e being object such that
      A5: e in E & e Joins w,v,G1 and
      for e2 being object st e2 Joins w,v,G1 holds e = e2 by A2;
    take e;
    v in {v} by TARSKI:def 1;
    then e SJoins W,{v},G1 by A4, A5, GLIB_000:17;
    hence e in G1.edgesBetween(W,{v}) by GLIB_000:def 30;
    thus thesis by A5;
  end;
  consider f being Function of W, G1.edgesBetween(W,{v}) such that
    A6: for w being object st w in W holds P[w,f.w] from FUNCT_2:sch 1(A3);
  take f;
  A7: G1.edgesBetween(W,{v}) = {} implies W = {} by A1, Lm12;
  for w1,w2 being object st w1 in W & w2 in W & f.w1 = f.w2 holds w1 = w2
  proof
    let w1, w2 be object;
    assume that
      A8: w1 in W & w2 in W and
      A9: f.w1 = f.w2;
    f.w1 Joins w1,v,G1 & f.w2 Joins w2,v,G1 by A6, A8;
    then per cases by A9, GLIB_000:15;
    suppose w1 = w2 & v = v;
      hence thesis;
    end;
    suppose w1 = v & v = w2;
      hence thesis;
    end;
  end;
  hence f is one-to-one by A7, FUNCT_2:19;
  for e being object holds e in G1.edgesBetween(W,{v}) implies e in rng f
  proof
    let e be object;
    assume A11: e in G1.edgesBetween(W,{v});
    then A12: e SJoins W,{v},G1 by GLIB_000:def 30;
    consider w being object such that
      A13: w in W & e Joins w,v,G1 by A12, GLIB_000:102;
    consider e1 being object such that
      e1 in E & e1 Joins w,v,G1 and
      A14: for e2 being object st e2 Joins w,v,G1 holds e1 = e2 by A2,A13;
    e1 = e & e1 = f.w by A13, A14,A6;
    hence e in rng f by A13, FUNCT_2:4, A11;
  end;
  then G1.edgesBetween(W,{v}) c= rng f by TARSKI:def 3;
  hence f is onto by XBOOLE_0:def 10, FUNCT_2:def 3;
  thus thesis by A6;
end;
