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 Th76:
  for G1 being _Graph, G2 being Subgraph of G1, X being set holds G2
  .edgesInto(X) c= G1.edgesInto(X) & G2.edgesOutOf(X) c= G1.edgesOutOf(X) & G2
  .edgesInOut(X) c= G1.edgesInOut(X) & G2.edgesBetween(X) c= G1.edgesBetween(X)
proof
  let G1 be _Graph, G2 be Subgraph of G1, X be set;
  now
    let e be object;
    assume
A1: e in G2.edgesInto(X);
    then
A2: (the_Target_of G2).e = (the_Target_of G1).e by Def32;
    e in the_Edges_of G2 & (the_Target_of G2).e in X by A1,Def26;
    hence e in G1.edgesInto(X) by A2,Def26;
  end;
  hence
A3: G2.edgesInto(X) c= G1.edgesInto(X);
  then
A4: G2.edgesInto(X) c= G1.edgesInOut(X) by XBOOLE_1:10;
  now
    let e be object;
    assume
A5: e in G2.edgesOutOf(X);
    then
A6: (the_Source_of G2).e = (the_Source_of G1).e by Def32;
    e in the_Edges_of G2 & (the_Source_of G2).e in X by A5,Def27;
    hence e in G1.edgesOutOf(X) by A6,Def27;
  end;
  hence
A7: G2.edgesOutOf(X) c= G1.edgesOutOf(X);
  then G2.edgesOutOf(X) c= G1.edgesInOut(X) by XBOOLE_1:10;
  hence G2.edgesInOut(X) c= G1.edgesInOut(X) by A4,XBOOLE_1:8;
  thus thesis by A3,A7,XBOOLE_1:27;
end;
