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
  for G being _Graph, X1, X2 being set, y being object
  holds G.edgesBetween(X1 \/ X2,{y})
    = G.edgesBetween(X1,{y}) \/ G.edgesBetween(X2,{y})
proof
  let G be _Graph, X1, X2 be set, y be object;
  set E1 = G.edgesBetween(X1,{y}), E2 = G.edgesBetween(X2,{y});
  X1 c= X1 \/ X2 & X2 c= X1 \/ X2 by XBOOLE_1:7;
  then E1 c= G.edgesBetween(X1 \/ X2, {y}) &
    E2 c= G.edgesBetween(X1 \/ X2, {y}) by Th37;
  then A1: E1 \/ E2 c= G.edgesBetween(X1 \/ X2, {y}) by XBOOLE_1:8;
  for e being object holds
    e in G.edgesBetween(X1 \/ X2, {y}) implies e in E1 \/ E2
  proof
    let e be object;
    assume e in G.edgesBetween(X1 \/ X2, {y});
    then e SJoins X1 \/ X2,{y},G by Def30;
    then consider x being object such that
      A2: x in X1 \/ X2 & e Joins x,y,G by Th102;
    A3: y in {y} by TARSKI:def 1;
    per cases by A2, XBOOLE_0:def 3;
    suppose x in X1;
      then e SJoins X1,{y},G by A2, A3;
      then e in E1 by Def30;
      hence thesis by XBOOLE_0:def 3;
    end;
    suppose x in X2;
      then e SJoins X2,{y},G by A2, A3;
      then e in E2 by Def30;
      hence thesis by XBOOLE_0:def 3;
    end;
  end;
  then G.edgesBetween(X1 \/ X2, {y}) c= E1 \/ E2;
  hence thesis by A1, XBOOLE_0:def 10;
end;
