reserve GS for GraphStruct;
reserve G,G1,G2,G3 for _Graph;
reserve e,x,x1,x2,y,y1,y2,E,V,X,Y for set;
reserve n,n1,n2 for Nat;
reserve v,v1,v2 for Vertex of G;

theorem Th86:
  for G being _Graph, G1,G2 being Subgraph of G st the_Vertices_of
  G1 = the_Vertices_of G2 & the_Edges_of G1 = the_Edges_of G2 holds G1 == G2
proof
  let G be _Graph, G1,G2 be Subgraph of G;
  assume that
A1: the_Vertices_of G1 = the_Vertices_of G2 and
A2: the_Edges_of G1 = the_Edges_of G2;
A3: dom (the_Target_of G1) = the_Edges_of G1 & dom (the_Target_of G2) =
  the_Edges_of G2 by FUNCT_2:def 1;
  now
    let e be object;
    assume
A4: e in the_Edges_of G1;
    then (the_Target_of G1).e = (the_Target_of G).e by Def32;
    hence (the_Target_of G1).e = (the_Target_of G2).e by A2,A4,Def32;
  end;
  then
A5: the_Target_of G1 = the_Target_of G2 by A2,A3,FUNCT_1:2;
A6: now
    let e be object;
    assume
A7: e in the_Edges_of G1;
    then (the_Source_of G1).e = (the_Source_of G).e by Def32;
    hence (the_Source_of G1).e = (the_Source_of G2).e by A2,A7,Def32;
  end;
  dom (the_Source_of G1) = the_Edges_of G1 & dom (the_Source_of G2) =
  the_Edges_of G2 by FUNCT_2:def 1;
  then the_Source_of G1 = the_Source_of G2 by A2,A6,FUNCT_1:2;
  hence thesis by A1,A2,A5;
end;
