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 Th55:
  for m being Element of NAT st W.m = W.last() holds W.remove(m,
  len W) = W.cut(1,m)
proof
  let m be Element of NAT;
  assume
A1: W.m = W.last();
  now
    per cases;
    suppose
A2:   m is odd & m <= len W;
      then
A3:   len W.remove(m,len W) + len W = len W + m by A1,Lm24;
      then
A4:   len W.remove(m,len W) = len W.cut(1,m) by A2,Lm22;
      now
        let k be Nat;
        assume that
A5:     1 <= k and
A6:     k <= len W.remove(m, len W);
A7:     k in dom W.cut(1,m) by A4,A5,A6,FINSEQ_3:25;
        k in Seg m by A3,A5,A6,FINSEQ_1:1;
        hence W.remove(m,len W).k = W.k by A1,A2,Lm29
          .= W.cut(1,m).k by A2,A7,Lm23;
      end;
      hence thesis by A4,FINSEQ_1:14;
    end;
    suppose
A8:   not (m is odd & m <= len W);
      then W.cut(1,m) = W by Def11;
      hence thesis by A8,Def12;
    end;
  end;
  hence thesis;
end;
