
theorem Th55:
  for G2 being _Graph, v,v2 being Vertex of G2, e,w being object
  for G1 being addAdjVertex of G2,v,e,w, v1 being Vertex of G1
  st v1 = v2 & not v in G2.reachableFrom(v2) &
    not e in the_Edges_of G2 & not w in the_Vertices_of G2
  holds G1.reachableFrom(v1) = G2.reachableFrom(v2)
proof
  let G2 be _Graph, v,v2 be Vertex of G2, e,w be object;
  let G1 be addAdjVertex of G2,v,e,w, v1 be Vertex of G1;
  assume that A1: v1 = v2 & not v in G2.reachableFrom(v2) and
    A2: not e in the_Edges_of G2 & not w in the_Vertices_of G2;
  A3: G2 is Subgraph of G1 by GLIB_006:57;
  then A4: G2.reachableFrom(v2) c= G1.reachableFrom(v1) by A1, GLIB_002:14;
  now
    let x be object;
    assume x in G1.reachableFrom(v1);
    then consider W1 being Walk of G1 such that
      A5: W1 is_Walk_from v1,x by GLIB_002:def 5;
    set P1 = the Path of W1;
    x is set by TARSKI:1;
    then A6: P1 is_Walk_from v1,x by A5, GLIB_001:160;
    then A7: P1.first() = v1 & P1.last() = x by GLIB_001:def 23;
    A8: x <> w
    proof
      per cases;
      suppose P1 is trivial;
        then v1 = x by A7, GLIB_001:127;
        hence thesis by A1, A2;
      end;
      suppose P1 is non trivial;
        then A9: 3 <= len P1 by GLIB_001:125;
        then 3-3 <= len P1 -2 & len P1 -2 < len P1 -0 by XREAL_1:10, 13;
        then A10: len P1-2 in NAT & len P1-2 < len P1 by INT_1:3;
        then reconsider m=len P1-2 as odd Element of NAT by POLYFORM:5;
        P1.(m+1) Joins P1.m,P1.(m+2),G1 by A10, GLIB_001:def 3;
        then A11: P1.(m+1) Joins P1.m,x,G1 by A7;
        assume x = w;
        then A12: P1.m = v by A2, A11, GLIB_006:133;
        set P2 = P1.cut(1,m);
        3-2 <= m & m <= len P1-0 by A9, XREAL_1:9, XREAL_1:10;
        then P2.first() = P1.1 & P2.last() = P1.m by GLIB_001:37, POLYFORM:4;
        then A13: P2.first()=v2 & P2.last()=v by A1, A7, A12;
        v2 <> v by A1, GLIB_002:9;
        then A14: P2 is non trivial by A13, GLIB_001:127;
        not e in P2.edges() by A2, A13, GLIB_006:147;
        then reconsider P2 as Walk of G2 by A2, A14, GLIB_006:145;
        P2.first() = v2 & P2.last() = v by A13;
        then P2 is_Walk_from v2, v by GLIB_001:def 23;
        hence contradiction by A1, GLIB_002:def 5;
      end;
    end;
    the_Vertices_of G1 = the_Vertices_of G2 \/ {w} by A2, GLIB_006:def 12;
    then x in the_Vertices_of G2 or x in {w} by A7, XBOOLE_0:def 3;
    then A15: not e in P1.edges()
      by A1, A2, A7, A8, TARSKI:def 1, GLIB_006:147;
    P1 is Walk of G2
    proof
      per cases;
      suppose P1 is trivial;
        hence thesis by A1, A3, A7, GLIB_001:168;
      end;
      suppose P1 is non trivial;
        hence thesis by A2, A15, GLIB_006:145;
      end;
    end;
    then reconsider P2 = P1 as Walk of G2;
    P2 is_Walk_from v2,x by A1, A6, GLIB_001:19;
    hence x in G2.reachableFrom(v2) by GLIB_002:def 5;
  end;
  then G1.reachableFrom(v1) c= G2.reachableFrom(v2) by TARSKI:def 3;
  hence thesis by A4, XBOOLE_0:def 10;
end;
