
theorem Th24:
  for G being _finite real-weighted WGraph, s being Vertex of G
  holds DIJK:CompSeq(s) is halting
proof
  let G be _finite real-weighted WGraph, src be Vertex of G;
  set DCS = DIJK:CompSeq( src);
  now
    set RSize = card G.reachableDFrom(src);
    take n = card G.reachableDFrom(src);
    set Gn = DCS.n, Gn1a = DCS.(n+1);
    set BestEdges = DIJK:NextBestEdges(Gn);
A1: Gn1a = DIJK:Step(Gn) by Def11;
    now
      per cases;
      suppose
        BestEdges = {};
        hence DCS.n = DCS.(n+1) by A1,Def8;
      end;
      suppose
A2:     BestEdges <> {};
        card dom (DCS.n)`1 = min(n+1, RSize) & RSize <= RSize + 1 by Th21,
NAT_1:11;
        then
A3:     card dom Gn`1 = RSize by XXREAL_0:def 9;
        RSize + 1 <= RSize + 1 + 1 & RSize <= (RSize+1) by NAT_1:11;
        then
A4:     RSize <= (n + 1) + 1 by XXREAL_0:2;
A5:     card dom Gn1a`1 = min((n+1)+1, RSize) by Th21
          .= RSize by A4,XXREAL_0:def 9;
        card dom (DIJK:Step(Gn))`1 = card dom Gn`1 + 1 by A2,Th15;
        hence DCS.n = DCS.(n+1) by A3,A5,Def11;
      end;
    end;
    hence DCS.n = DCS.(n+1);
  end;
  hence thesis;
end;
