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 loopless _Graph, v being Vertex of G holds
    v.inNeighbors() c= the_Vertices_of G \ {v} &
    v.outNeighbors() c= the_Vertices_of G \ {v} &
    v.allNeighbors() c= the_Vertices_of G \ {v}
proof
  let G be loopless _Graph, v be Vertex of G;
  now
    let x be object;
    assume A1: x in v.inNeighbors();
    then ex e being object st e DJoins x,v,G by Th69;
    then v <> x by Th136;
    hence x in the_Vertices_of G \ {v} by A1, ZFMISC_1:56;
  end;
  hence v.inNeighbors() c= the_Vertices_of G \ {v};
  now
    let x be object;
    assume A2: x in v.outNeighbors();
    then ex e being object st e DJoins v,x,G by Th70;
    then v <> x by Th136;
    hence x in the_Vertices_of G \ {v} by A2, ZFMISC_1:56;
  end;
  hence v.outNeighbors() c= the_Vertices_of G \ {v};
  now
    let x be object;
    assume A3: x in v.allNeighbors();
    then ex e being object st e Joins v,x,G by Th71;
    then v <> x by Th18;
    hence x in the_Vertices_of G \ {v} by A3, ZFMISC_1:56;
  end;
  hence v.allNeighbors() c= the_Vertices_of G \ {v};
end;
