reserve G for _Graph;

theorem Th10:
  card VertexDomRel(G) = card Class DEdgeAdjEqRel(G)
proof
  set R = VertexDomRel(G);
  defpred P[object,object] means ex e being object st
    e DJoins $1`1,$1`2,G & $2 = Class(DEdgeAdjEqRel(G),e);
  A1: for x,y1,y2 being object st x in R & P[x,y1] & P[x,y2] holds y1 = y2
  proof
    let x,y1,y2 be object;
    assume A2: x in R & P[x,y1] & P[x,y2];
    then consider e1 being object such that
      A3: e1 DJoins x`1,x`2,G & y1 = Class(DEdgeAdjEqRel(G),e1);
    consider e2 being object such that
      A4: e2 DJoins x`1,x`2,G & y2 = Class(DEdgeAdjEqRel(G),e2) by A2;
    [e1,e2] in DEdgeAdjEqRel(G) by A3, A4, GLIB_009:def 4;
    then A5: e2 in Class(DEdgeAdjEqRel(G),e1) by EQREL_1:18;
    e1 in the_Edges_of G by A3, GLIB_000:def 14;
    hence thesis by A3, A4, A5, EQREL_1:23;
  end;
  A6: for x being object st x in R ex y being object st P[x,y]
  proof
    let x be object;
    assume A7: x in R;
    then consider v,w being object such that
      A8: x = [v,w] by RELAT_1:def 1;
    consider e being object such that
      A9: e DJoins v,w,G by A7, A8, Th1;
    take Class(DEdgeAdjEqRel(G),e),e;
    thus thesis by A8, A9;
  end;
  consider f being Function such that
    A10: dom f = R & for x being object st x in R holds P[x,f.x]
    from FUNCT_1:sch 2(A1,A6);
  now
    let y be object;
    hereby
      assume y in rng f;
      then consider x being object such that
        A11: x in dom f & f.x = y by FUNCT_1:def 3;
      consider e being object such that
        A12: e DJoins x`1,x`2,G & y = Class(DEdgeAdjEqRel(G),e) by A10, A11;
      e in the_Edges_of G by A12, GLIB_000:def 14;
      hence y in Class DEdgeAdjEqRel(G) by A12, EQREL_1:def 3;
    end;
    assume y in Class DEdgeAdjEqRel(G);
    then consider e being object such that
A13: e in the_Edges_of G & y = Class(DEdgeAdjEqRel(G),e) by EQREL_1:def 3;
    set x = [(the_Source_of G).e,(the_Target_of G).e];
    A14: e DJoins x`1,x`2,G by A13, GLIB_000:def 14; then
    P[x,f.x] by A10,Th1;
    then f.x = y by A1, A13, A14, Th1;
    hence y in rng f by A10, A14, Th1, FUNCT_1:3;
  end;
  then A16: rng f = Class DEdgeAdjEqRel(G) by TARSKI:2;
  for x1,x2 being object st x1 in dom f & x2 in dom f & f.x1=f.x2 holds x1=x2
  proof
    let x1, x2 be object;
    assume A17: x1 in dom f & x2 in dom f & f.x1 = f.x2;
    then consider e1 being object such that
      A18: e1 DJoins x1`1,x1`2,G & f.x1 = Class(DEdgeAdjEqRel(G),e1) by A10;
    consider e2 being object such that
      A19: e2 DJoins x2`1,x2`2,G & f.x2 = Class(DEdgeAdjEqRel(G),e2) by A10,
A17;
    e1 in the_Edges_of G by A18, GLIB_000:def 14;
    then e2 in Class(DEdgeAdjEqRel(G),e1) by A17, A18, A19, EQREL_1:23;
    then [e1,e2] in DEdgeAdjEqRel(G) by EQREL_1:18;
    then consider v,w being object such that
      A20: e1 DJoins v,w,G & e2 DJoins v,w,G by GLIB_009:def 4;
    v = x1`1 & w = x1`2 & v = x2`1 & w = x2`2 by A18, A19, A20, GLIB_000:125;
    then A21: [x1`1,x1`2] = [x2`1,x2`2];
    (ex a,b being object st x1=[a,b])&(ex a,b being object st x2=[a,b])
      by A10, A17, RELAT_1:def 1;
    hence thesis by A21;
  end;
  hence thesis by A10, A16, FUNCT_1:def 4, CARD_1:70;
end;
