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 Th45:
  for G1 being _Graph, G2 being Subgraph of G1 holds the_Source_of
  G2 = (the_Source_of G1) | the_Edges_of G2 & the_Target_of G2 = (the_Target_of
  G1) | the_Edges_of G2
proof
  let G1 be _Graph, G2 be Subgraph of G1;
  set S2 = (the_Source_of G1) | the_Edges_of G2;
  set T2 = (the_Target_of G1) | the_Edges_of G2;
A1: now
    let x be object;
    assume
A2: x in dom the_Source_of G2;
    hence (the_Source_of G2).x = (the_Source_of G1).x by Def32
      .= S2.x by A2,FUNCT_1:49;
  end;
  dom the_Source_of G1 = the_Edges_of G1 by FUNCT_2:def 1;
  then dom the_Source_of G2 = the_Edges_of G2 & dom S2 = the_Edges_of G2 by
FUNCT_2:def 1,RELAT_1:62;
  hence the_Source_of G2 = S2 by A1,FUNCT_1:2;
A3: now
    let x be object;
    assume
A4: x in dom the_Target_of G2;
    hence (the_Target_of G2).x = (the_Target_of G1).x by Def32
      .= T2.x by A4,FUNCT_1:49;
  end;
  dom the_Target_of G1 = the_Edges_of G1 by FUNCT_2:def 1;
  then dom the_Target_of G2 = the_Edges_of G2 & dom T2 = the_Edges_of G2 by
FUNCT_2:def 1,RELAT_1:62;
  hence thesis by A3,FUNCT_1:2;
end;
