reserve G for _Graph;
reserve G2 for _Graph, G1 for Supergraph of G2;
reserve V for set;
reserve v for object;

theorem
  for G2 for v1,v2 being Vertex of G2, e being object
  for G1 being addEdge of G2,v1,e,v2
  st not e in the_Edges_of G2 & v2 in G2.reachableFrom v1
  holds G1 is non acyclic
proof
  let G2;
  let v1,v2 be Vertex of G2;
  let e be object;
  let G1 be addEdge of G2,v1,e,v2;
  assume that
    A1: not e in the_Edges_of G2 and
    A2: v2 in G2.reachableFrom v1;
  per cases;
  suppose A3: v1 <> v2;
    consider W2 being Walk of G2 such that
      A4: W2 is_Walk_from v1, v2 by A2, GLIB_002:def 5;
    reconsider W1 = W2 as Walk of G1 by Th79;
    set P = the Path of W1;
    W1 is_Walk_from v1,v2 by A4, GLIB_001:19;
    then P is_Walk_from v1, v2 by GLIB_001:160;
    then A6: P.first() = v1 & P.last() = v2 by GLIB_001:def 23;
    set W = P.addEdge(e);
    e DJoins v1,v2,G1 by A1, Th109;
    then A7: e Joins v2,v1,G1 by GLIB_000:16;
    then A8: W is closed by A6, GLIB_001:63, GLIB_001:119;
    A9: W is non trivial by A6, A7, GLIB_001:132;
    not e in W2.edges() by A1;
    then not e in W1.edges() by GLIB_001:110;
    then A10: not e in P.edges() by GLIB_001:163, TARSKI:def 3;
    A11: P is open by A3, A6, GLIB_001:def 24;
    for n being odd Element of NAT st 1 < n & n <= len P holds P.n <> v1
    proof
      let n be odd Element of NAT;
      reconsider m = 1 as odd Element of NAT by POLYFORM:4;
      assume A12: 1 < n & n <= len P;
      A13: P.m = v1 by A6, GLIB_001:def 6;
      assume A14: P.n = v1;
      then n = len P by A12, A13, GLIB_001:def 28;
      hence thesis by A3, A6, A14, GLIB_001:def 7;
    end;
    then W is Path-like by A6, A7, A10, A11, GLIB_001:150;
    hence thesis by A8, A9, GLIB_002:def 2;
  end;
  suppose v1 = v2;
    hence G1 is non acyclic by A1, Th117;
  end;
end;
