let G be finite real-weighted WGraph; :: thesis: for s being Vertex of G
for n being Nat holds card (dom (((DIJK:CompSeq s) . n) `1 )) = min (n + 1),(card (G .reachableDFrom s))
let src be Vertex of G; :: thesis: for n being Nat holds card (dom (((DIJK:CompSeq src) . n) `1 )) = min (n + 1),(card (G .reachableDFrom src))
set DCS = DIJK:CompSeq src;
set VL0 = dom (((DIJK:CompSeq src) . 0 ) `1 );
set RFS = G .reachableDFrom src;
defpred S1[ Nat] means card (dom (((DIJK:CompSeq src) . $1) `1 )) = min ($1 + 1),(card (G .reachableDFrom src));
(DIJK:CompSeq src) . 0 = DIJK:Init src
by Def7;
then A1: card (dom (((DIJK:CompSeq src) . 0 ) `1 )) =
card {src}
by Th15
.=
1
by CARD_1:50
;
src in G .reachableDFrom src
by GLIB_002:18;
then
{src} c= G .reachableDFrom src
by ZFMISC_1:37;
then
card {src} <= card (G .reachableDFrom src)
by NAT_1:44;
then
0 + 1 <= card (G .reachableDFrom src)
by CARD_1:50;
then A2:
S1[ 0 ]
by A1, XXREAL_0:def 9;
now let k be
Nat;
:: thesis: ( card (dom (((DIJK:CompSeq src) . k) `1 )) = min (k + 1),(card (G .reachableDFrom src)) implies card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = min ((k + 1) + 1),(card (G .reachableDFrom src)) )assume A3:
card (dom (((DIJK:CompSeq src) . k) `1 )) = min (k + 1),
(card (G .reachableDFrom src))
;
:: thesis: card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = min ((k + 1) + 1),(card (G .reachableDFrom src))A4:
(DIJK:CompSeq src) . (k + 1) = DIJK:Step ((DIJK:CompSeq src) . k)
by Def7;
set Gk =
(DIJK:CompSeq src) . k;
set Gk1b =
(DIJK:CompSeq src) . (k + 1);
set BestEdges =
DIJK:NextBestEdges ((DIJK:CompSeq src) . k);
now per cases
( DIJK:NextBestEdges ((DIJK:CompSeq src) . k) = {} or DIJK:NextBestEdges ((DIJK:CompSeq src) . k) <> {} )
;
suppose A9:
DIJK:NextBestEdges ((DIJK:CompSeq src) . k) <> {}
;
:: thesis: card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = min ((k + 1) + 1),(card (G .reachableDFrom src))then A10:
card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = (card (dom (((DIJK:CompSeq src) . k) `1 ))) + 1
by A4, Th13;
A11:
dom (((DIJK:CompSeq src) . k) `1 ) <> G .reachableDFrom src
by A9, Th19;
then A14:
card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = (k + 1) + 1
by A3, A10, XXREAL_0:15;
(
k + 1
<= card (G .reachableDFrom src) &
k + 1
<> card (G .reachableDFrom src) )
by A3, A12, XXREAL_0:def 9;
then A15:
(k + 1) + 1
<= (card (G .reachableDFrom src)) + 1
by XREAL_1:8;
(k + 1) + 1
<> (card (G .reachableDFrom src)) + 1
by A3, A12;
then
(k + 1) + 1
< (card (G .reachableDFrom src)) + 1
by A15, XXREAL_0:1;
then
(k + 1) + 1
<= card (G .reachableDFrom src)
by NAT_1:13;
hence
card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = min ((k + 1) + 1),
(card (G .reachableDFrom src))
by A14, XXREAL_0:def 9;
:: thesis: verum end; end; end; hence
card (dom (((DIJK:CompSeq src) . (k + 1)) `1 )) = min ((k + 1) + 1),
(card (G .reachableDFrom src))
;
:: thesis: verum end;
then A16:
for k being Nat st S1[k] holds
S1[k + 1]
;
for n being Nat holds S1[n]
from NAT_1:sch 2(A2, A16);
hence
for n being Nat holds card (dom (((DIJK:CompSeq src) . n) `1 )) = min (n + 1),(card (G .reachableDFrom src))
; :: thesis: verum