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
  for G1 being non _trivial _Graph, W being Walk of G1, v being Vertex of
  G1, G2 being removeVertex of G1,v st not v in W.vertices() holds W is Walk of
  G2
proof
  let G1 be non _trivial _Graph, W be Walk of G1, v be Vertex of G1, G2 be
  removeVertex of G1,v;
  assume
A1: not v in W.vertices();
  set EG2 = (the_Edges_of G1) \ v.edgesInOut();
  set W2 = W, VG2 = (the_Vertices_of G1) \ {v};
  v.edgesInOut() = G1.edgesInOut({v}) by GLIB_000:def 40;
  then
A2: EG2 = G1.edgesBetween( the_Vertices_of G1 \ {v}) by GLIB_000:35;
  now
    let y be object;
    assume y in rng W2;
    then consider x being object such that
A3: x in dom W2 and
A4: y = W2.x by FUNCT_1:def 3;
    reconsider x as Element of NAT by A3;
A5: x <= len W2 by A3,FINSEQ_3:25;
    now
      per cases;
      suppose
A6:     x is odd;
A7:     now
          assume y in {v};
          then not y in W.vertices() by A1,TARSKI:def 1;
          hence contradiction by A4,A5,A6,Lm45;
        end;
        y in the_Vertices_of G1 by A4,A5,A6,Lm1;
        then y in VG2 by A7,XBOOLE_0:def 5;
        hence y in VG2 \/ EG2 by XBOOLE_0:def 3;
      end;
      suppose
        x is even;
        then reconsider x as even Element of NAT;
        consider xaa1 being odd Element of NAT such that
A8:     xaa1 = x-1 and
A9:     x-1 in dom W2 and
A10:    x+1 in dom W2 and
A11:    W2.x Joins W2.(xaa1), W2.(x+1),G1 by A3,Lm2;
A12:    x+1 <= len W2 by A10,FINSEQ_3:25;
A13:    xaa1 <= len W2 by A8,A9,FINSEQ_3:25;
A14:    now
          assume y in v.edgesInOut();
          then
A15:      y in v.edgesIn() \/ v.edgesOut() by GLIB_000:60;
          now
            per cases by A15,XBOOLE_0:def 3;
            suppose
              y in v.edgesIn();
              then (the_Target_of G1).y = v by GLIB_000:56;
              hence v=W2.(xaa1) or v = W2.(x+1) by A4,A11,GLIB_000:def 13;
            end;
            suppose
              y in v.edgesOut();
              then (the_Source_of G1).y = v by GLIB_000:58;
              hence v=W2.(xaa1) or v = W2.(x+1) by A4,A11,GLIB_000:def 13;
            end;
          end;
          then v = W2.vertexAt(xaa1) or v = W2.vertexAt(x+1) by A13,A12,Def8;
          hence contradiction by A1,A13,A12,Th87;
        end;
        y in the_Edges_of G1 by A4,A11,GLIB_000:def 13;
        then y in EG2 by A14,XBOOLE_0:def 5;
        hence y in VG2 \/ EG2 by XBOOLE_0:def 3;
      end;
    end;
    then y in (the_Vertices_of G2) \/ EG2 by GLIB_000:47;
    hence y in (the_Vertices_of G2) \/ (the_Edges_of G2) by A2,GLIB_000:47;
  end;
  then rng W2 c= (the_Vertices_of G2) \/ (the_Edges_of G2) by TARSKI:def 3;
  then reconsider
  W2 as FinSequence of (the_Vertices_of G2)\/(the_Edges_of G2 ) by
FINSEQ_1:def 4;
  now
    reconsider lenW2 = len W2 as odd Element of NAT;
    thus len W2 is odd;
    W.first() in W.vertices() by Th86;
    then
A16: not W2.1 in {v} by A1,TARSKI:def 1;
    W.first() in the_Vertices_of G1;
    then W2.1 in VG2 by A16,XBOOLE_0:def 5;
    hence W2.1 in the_Vertices_of G2 by GLIB_000:47;
    let n be odd Element of NAT;
    assume
A17: n < len W2;
    then
A18: W.(n+1) Joins W.n, W.(n+2), G1 by Def3;
    then
A19: W.(n+1) in the_Edges_of G1 by GLIB_000:def 13;
    n+1 <= len W2 by A17,NAT_1:13;
    then n+1 < lenW2 by XXREAL_0:1;
    then n+1+1 <= len W2 by NAT_1:13;
    then
A20: W.(n+2) <> v by A1,Lm45;
    W.n <> v by A1,A17,Lm45;
    then not W.(n+1) in v.edgesInOut() by A18,A20,GLIB_000:65;
    then W.(n+1) in EG2 by A19,XBOOLE_0:def 5;
    then W.(n+1) in the_Edges_of G2 by A2,GLIB_000:47;
    hence W.(n+1) Joins W.n, W.(n+2), G2 by A18,GLIB_000:73;
  end;
  hence thesis by Def3;
end;
