
theorem Th98:
  for G1 being _Graph, G2 being removeParallelEdges of G1, W1 being Walk of G1
  ex W2 being Walk of G2 st W1.vertexSeq() = W2.vertexSeq()
proof
  let G1 be _Graph, G2 be removeParallelEdges of G1;
  defpred P[Walk of G1] means ex W2 being Walk of G2
    st $1.vertexSeq() = W2.vertexSeq();
  A1: for W being trivial Walk of G1 holds P[W]
  proof
    let W be trivial Walk of G1;
    consider v1 being Vertex of G1 such that
      A2: W = G1.walkOf(v1) by GLIB_001:128;
    reconsider v2 = v1 as Vertex of G2 by GLIB_000:def 33;
    set W2 = G2.walkOf(v2);
    take W2;
    thus W.vertexSeq() = <* v1 *> by A2, GLIB_001:69
      .= W2.vertexSeq() by GLIB_001:69;
  end;
  A3: for W being Walk of G1, e being object st e in W.last().edgesInOut() &
    P[W] holds P[W.addEdge(e)]
  proof
    let W1 be Walk of G1, e0 be object;
    assume A4: e0 in W1.last().edgesInOut() & P[W1];
    then consider W2 being Walk of G2 such that
      A5: W1.vertexSeq() = W2.vertexSeq();
    A6: W2.first() = W1.first() & W2.last() = W1.last() by A5, Th30;
    consider E being RepEdgeSelection of G1 such that
      A7: G2 is inducedSubgraph of G1, the_Vertices_of G1, E by Def7;
    the_Vertices_of G1 c= the_Vertices_of G1 &
      the_Edges_of G1 = G1.edgesBetween(the_Vertices_of G1) by GLIB_000:34;
    then A8: the_Edges_of G2 = E by A7, GLIB_000:def 37;
    per cases by A4, GLIB_000:61;
    suppose A9: (the_Source_of G1).e0 = W1.last();
      set v = W1.last(), w = (the_Target_of G1).e0;
      A10: e0 Joins v,w,G1 by A4, A9, GLIB_000:def 13;
      then consider e being object such that
        A11: e Joins v,w,G1 & e in E and
        for e9 being object st e9 Joins v,w,G1 & e9 in E holds e9 = e
          by Def5;
      set W3 = W1.addEdge(e0), W4 = W2.addEdge(e);
      take W4;
      A12: e Joins W2.last(),w,G2 by A8, A6, A11, GLIB_000:73;
      A13: e is set & e0 is set by TARSKI:1;
      thus W3.vertexSeq() = W1.vertexSeq() ^ <* w *> by A10, A13, GLIB_001:75
        .= W4.vertexSeq() by A5, A12, A13, GLIB_001:75;
    end;
    suppose A14: (the_Target_of G1).e0 = W1.last();
      set v = W1.last(), w = (the_Source_of G1).e0;
      A15: e0 Joins v,w,G1 by A4, A14, GLIB_000:def 13;
      then consider e being object such that
        A16: e Joins v,w,G1 & e in E and
        for e9 being object st e9 Joins v,w,G1 & e9 in E holds e9 = e
          by Def5;
      set W3 = W1.addEdge(e0), W4 = W2.addEdge(e);
      take W4;
      A17: e Joins W2.last(),w,G2 by A8, A6, A16, GLIB_000:73;
      A18: e is set & e0 is set by TARSKI:1;
      thus W3.vertexSeq() = W1.vertexSeq() ^ <* w *> by A15, A18, GLIB_001:75
        .= W4.vertexSeq() by A5, A17, A18, GLIB_001:75;
    end;
  end;
  for W1 being Walk of G1 holds P[W1] from IndWalk(A1,A3);
  hence thesis;
end;
