reserve G,G1,G2 for _Graph;
reserve W,W1,W2 for Walk of G;
reserve e,x,y,z for set;
reserve v for Vertex of G;
reserve n,m for Element of NAT;

theorem Th93:
 for e,x being object holds
  e Joins W.last(),x,G implies W.addEdge(e).vertices() = W .vertices() \/ {x}
proof let e,x be object;
  set W2 = G.walkOf(W.last(), e, W.last().adj(e));
  set W3 = W.addEdge(e), WV = W.vertices();
  assume
A1: e Joins W.last(), x, G;
  then reconsider x9=x as Vertex of G by GLIB_000:13;
A2: W.last().adj(e) = x9 by A1,GLIB_000:66;
  then W2.first() = W.last() by A1,Th14;
  then
A3: W3.vertices() = WV \/ W2.vertices() by Th91;
A4: now
    let y be object;
    hereby
      assume
A5:   y in WV \/ {W.last(), x};
      now
        per cases by A5,XBOOLE_0:def 3;
        suppose
          y in WV;
          hence y in WV \/ {x} by XBOOLE_0:def 3;
        end;
        suppose
A6:       y in {W.last(), x};
          now
            per cases by A6,TARSKI:def 2;
            suppose
              y = W.last();
              then y in WV by Th86;
              hence y in WV \/ {x} by XBOOLE_0:def 3;
            end;
            suppose
              y = x;
              then y in {x} by TARSKI:def 1;
              hence y in WV \/ {x} by XBOOLE_0:def 3;
            end;
          end;
          hence y in WV \/ {x};
        end;
      end;
      hence y in WV \/ {x};
    end;
    assume
A7: y in WV \/ {x};
    now
      per cases by A7,XBOOLE_0:def 3;
      suppose
        y in WV;
        hence y in WV \/ {W.last(), x} by XBOOLE_0:def 3;
      end;
      suppose
        y in {x};
        then y = x by TARSKI:def 1;
        then y in {W.last(), x} by TARSKI:def 2;
        hence y in WV \/ {W.last(), x} by XBOOLE_0:def 3;
      end;
    end;
    hence y in WV \/ {W.last(), x};
  end;
  W2.vertices() = {W.last(), x} by A1,A2,Th89;
  hence thesis by A3,A4,TARSKI:2;
end;
