
theorem
  for G2 being _Graph, v being Vertex of G2, e being object
  for G1 being addEdge of G2,v,e,v st not e in the_Edges_of G2
  holds G1.loops() = G2.loops() \/ {e}
proof
  let G2 be _Graph, v be Vertex of G2, e be object;
  let G1 be addEdge of G2,v,e,v;
  assume A1: not e in the_Edges_of G2;
  then e in G1.loops() by Th45, GLIB_006:105;
  then A2: {e} c= G1.loops() by ZFMISC_1:31;
  G2.loops() c= G1.loops() by Th49;
  then A3: G2.loops() \/ {e} c= G1.loops() by A2, XBOOLE_1:8;
  now
    let e0 be object;
    assume e0 in G1.loops();
    then consider w being object such that
      A4: e0 Joins w,w,G1 by Def2;
    per cases;
    suppose e0 in the_Edges_of G2;
      then e0 Joins w,w,G2 by A4, GLIB_006:72;
      then e0 in G2.loops() by Def2;
      hence e0 in G2.loops() \/ {e} by XBOOLE_0:def 3;
    end;
    suppose not e0 in the_Edges_of G2;
      then e = e0 by A1, A4, GLIB_006:106;
      then e0 in {e} by TARSKI:def 1;
      hence e0 in G2.loops() \/ {e} by XBOOLE_0:def 3;
    end;
  end;
  then G1.loops() c= G2.loops() \/ {e} by TARSKI:def 3;
  hence thesis by A3, XBOOLE_0:def 10;
end;
