
theorem
  for G1 being _Graph, G3 being Subgraph of G1, v,e,w being object
  for G2 being addEdge of G3,v,e,w st e DJoins v,w,G1
  holds G2 is Subgraph of G1
proof
  let G1 be _Graph, G3 be Subgraph of G1, v,e,w be object;
  let G2 be addEdge of G3,v,e,w;
  assume A1: e DJoins v,w,G1;
  per cases;
  suppose A2: v in the_Vertices_of G3 & w in the_Vertices_of G3 &
      not e in the_Edges_of G3;
    now
      the_Vertices_of G2 = the_Vertices_of G3 by A2, GLIB_006:def 11;
      hence the_Vertices_of G2 c= the_Vertices_of G1;
      A3: {e} c= the_Edges_of G1 by A1, GLIB_000:def 14, ZFMISC_1:31;
      A4: the_Edges_of G3 \/ {e} c= the_Edges_of G1 by A3, XBOOLE_1:8;
      A5: the_Edges_of G2 = the_Edges_of G3 \/ {e} by A2, GLIB_006:def 11;
      hence the_Edges_of G2 c= the_Edges_of G1 by A4;
      let e0 be set;
      assume e0 in the_Edges_of G2;
      then per cases by A5, ZFMISC_1:136;
      suppose A6: e0 in the_Edges_of G3;
        hence (the_Source_of G2).e0 = (the_Source_of G3).e0 by GLIB_006:def 9
          .= (the_Source_of G1).e0 by A6, GLIB_000:def 32;
        thus (the_Target_of G2).e0
           = (the_Target_of G3).e0 by A6, GLIB_006:def 9
          .= (the_Target_of G1).e0 by A6, GLIB_000:def 32;
      end;
      suppose A7: e0 = e;
        A8: e DJoins v,w,G2 by A2, GLIB_006:105;
        hence (the_Source_of G2).e0 = v by A7, GLIB_000:def 14
          .= (the_Source_of G1).e0 by A1, A7, GLIB_000:def 14;
        thus (the_Target_of G2).e0 = w by A7, A8, GLIB_000:def 14
          .= (the_Target_of G1).e0 by A1, A7, GLIB_000:def 14;
      end;
    end;
    hence thesis by GLIB_000:def 32;
  end;
  suppose not(v in the_Vertices_of G3 & w in the_Vertices_of G3 &
      not e in the_Edges_of G3);
    then G2 == G3 by GLIB_006:def 11;
    hence thesis by GLIB_000:92;
  end;
end;
