let i, n be Nat; :: thesis: for f, g being Element of REAL *
for G being oriented finite Graph
for W being Function of the carrier' of G,Real>=0
for v1, v2 being Vertex of G st f is_Input_of_Dijkstra_Alg G,n,W & v1 = 1 & 1 <> v2 & v2 = i & n >= 1 & g = (DijkstraAlgorithm n) . f holds
( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

let f, g be Element of REAL * ; :: thesis: for G being oriented finite Graph
for W being Function of the carrier' of G,Real>=0
for v1, v2 being Vertex of G st f is_Input_of_Dijkstra_Alg G,n,W & v1 = 1 & 1 <> v2 & v2 = i & n >= 1 & g = (DijkstraAlgorithm n) . f holds
( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

let G be oriented finite Graph; :: thesis: for W being Function of the carrier' of G,Real>=0
for v1, v2 being Vertex of G st f is_Input_of_Dijkstra_Alg G,n,W & v1 = 1 & 1 <> v2 & v2 = i & n >= 1 & g = (DijkstraAlgorithm n) . f holds
( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

let W be Function of the carrier' of G,Real>=0; :: thesis: for v1, v2 being Vertex of G st f is_Input_of_Dijkstra_Alg G,n,W & v1 = 1 & 1 <> v2 & v2 = i & n >= 1 & g = (DijkstraAlgorithm n) . f holds
( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

let v1, v2 be Vertex of G; :: thesis: ( f is_Input_of_Dijkstra_Alg G,n,W & v1 = 1 & 1 <> v2 & v2 = i & n >= 1 & g = (DijkstraAlgorithm n) . f implies ( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) ) )

assume that
A1: f is_Input_of_Dijkstra_Alg G,n,W and
A2: v1 = 1 and
A3: 1 <> v2 and
A4: v2 = i and
A5: n >= 1 and
A6: g = (DijkstraAlgorithm n) . f ; :: thesis: ( the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) & ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

A7: Seg n = the carrier of G by A1;
then reconsider VG = the carrier of G as non empty Subset of NAT by A5;
A8: f . (n + 1) = 0 by A1;
set Ug = UsedVx (g,n);
set Vg = UnusedVx (g,n);
set R = Relax n;
set M = findmin n;
set RM = repeat ((Relax n) * (findmin n));
set cn = LifeSpan (((Relax n) * (findmin n)),f,n);
set mi = ((n * n) + (3 * n)) + 1;
A9: g = ((repeat ((Relax n) * (findmin n))) . (LifeSpan (((Relax n) * (findmin n)),f,n))) . f by A6, Def5;
A10: (UsedVx (g,n)) \/ (UnusedVx (g,n)) c= VG
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in (UsedVx (g,n)) \/ (UnusedVx (g,n)) or x in VG )
assume A11: x in (UsedVx (g,n)) \/ (UnusedVx (g,n)) ; :: thesis: x in VG
per cases ( x in UsedVx (g,n) or x in UnusedVx (g,n) ) by A11, XBOOLE_0:def 3;
suppose x in UsedVx (g,n) ; :: thesis: x in VG
then ex k being Nat st
( x = k & k in dom g & 1 <= k & k <= n & g . k = - 1 ) ;
hence x in VG by A7, FINSEQ_1:1; :: thesis: verum
end;
suppose x in UnusedVx (g,n) ; :: thesis: x in VG
then ex k being Nat st
( x = k & k in dom g & 1 <= k & k <= n & g . k <> - 1 ) ;
hence x in VG by A7, FINSEQ_1:1; :: thesis: verum
end;
end;
end;
A12: len f = ((n * n) + (3 * n)) + 1 by A1;
VG c= (UsedVx (g,n)) \/ (UnusedVx (g,n))
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in VG or x in (UsedVx (g,n)) \/ (UnusedVx (g,n)) )
assume A13: x in VG ; :: thesis: x in (UsedVx (g,n)) \/ (UnusedVx (g,n))
then reconsider j = x as Element of NAT ;
A14: 1 <= j by A7, A13, FINSEQ_1:1;
A15: j <= n by A7, A13, FINSEQ_1:1;
n < ((n * n) + (3 * n)) + 1 by Lm7;
then j < ((n * n) + (3 * n)) + 1 by A15, XXREAL_0:2;
then j in dom f by A12, A14, FINSEQ_3:25;
then A16: j in dom g by A9, Th41;
per cases ( g . j = - 1 or g . j <> - 1 ) ;
suppose g . j = - 1 ; :: thesis: x in (UsedVx (g,n)) \/ (UnusedVx (g,n))
then j in { k where k is Nat : ( k in dom g & 1 <= k & k <= n & g . k = - 1 ) } by A14, A15, A16;
hence x in (UsedVx (g,n)) \/ (UnusedVx (g,n)) by XBOOLE_0:def 3; :: thesis: verum
end;
suppose g . j <> - 1 ; :: thesis: x in (UsedVx (g,n)) \/ (UnusedVx (g,n))
then j in { k where k is Nat : ( k in dom g & 1 <= k & k <= n & g . k <> - 1 ) } by A14, A15, A16;
hence x in (UsedVx (g,n)) \/ (UnusedVx (g,n)) by XBOOLE_0:def 3; :: thesis: verum
end;
end;
end;
hence A17: the carrier of G = (UsedVx (g,n)) \/ (UnusedVx (g,n)) by A10, XBOOLE_0:def 10; :: thesis: ( ( v2 in UsedVx (g,n) implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) ) ) & ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) )

defpred S1[ Nat] means ( $1 <= LifeSpan (((Relax n) * (findmin n)),f,n) implies ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . $1) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . $1) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . $1) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . $1) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . $1) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . $1) . f) . (n + m) <> - 1 ) ) );
1 <= ((n * n) + (3 * n)) + 1 by NAT_1:12;
then A18: 1 in dom f by A12, FINSEQ_3:25;
A19: ( ( for m being Nat st 1 <= m & m <= n holds
f . m = 1 ) & ( for m being Nat st 2 <= m & m <= n holds
f . (n + m) = - 1 ) ) by A1;
then {1} = UsedVx ((((repeat ((Relax n) * (findmin n))) . 1) . f),n) by A5, A8, A18, Th47;
then A20: 1 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 1) . f),n) by TARSKI:def 1;
A21: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A22: S1[k] ; :: thesis: S1[k + 1]
now :: thesis: ( k + 1 <= LifeSpan (((Relax n) * (findmin n)),f,n) implies ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) ) )
set FK1 = ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f;
set UV1 = UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n);
set FK = ((repeat ((Relax n) * (findmin n))) . k) . f;
assume A23: k + 1 <= LifeSpan (((Relax n) * (findmin n)),f,n) ; :: thesis: ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) )

then A24: k < LifeSpan (((Relax n) * (findmin n)),f,n) by NAT_1:13;
then A25: OuterVx ((((repeat ((Relax n) * (findmin n))) . k) . f),n) <> {} by Def4;
per cases ( k = 0 or k <> 0 ) ;
suppose k = 0 ; :: thesis: ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) )

hence ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) ) by A1, A2, A5, Lm15; :: thesis: verum
end;
suppose k <> 0 ; :: thesis: ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) )

then k >= 1 + 0 by INT_1:7;
then 1 in UsedVx ((((repeat ((Relax n) * (findmin n))) . k) . f),n) by A20, A24, Th48;
hence ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . (k + 1)) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . (k + 1)) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . (k + 1)) . f) . (n + m) <> - 1 ) ) by A1, A2, A5, A22, A23, A25, Lm20, NAT_1:13; :: thesis: verum
end;
end;
end;
hence S1[k + 1] ; :: thesis: verum
end;
A26: ((repeat ((Relax n) * (findmin n))) . 0) . f = f by Th21;
A27: S1[ 0 ]
proof
set UV = UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n);
set h = ((repeat ((Relax n) * (findmin n))) . 0) . f;
assume 0 <= LifeSpan (((Relax n) * (findmin n)),f,n) ; :: thesis: ( ( for v3 being Vertex of G
for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . 0) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . 0) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),v1,W ) ) ) & ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) <> - 1 ) )

hereby :: thesis: ( ( for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 ) & ( for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) <> - 1 ) )
let v3 be Vertex of G; :: thesis: for j being Nat st v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) <> - 1 holds
ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . 0) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . 0) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),v1,W ) )

let j be Nat; :: thesis: ( v3 <> v1 & v3 = j & (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) <> - 1 implies ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . 0) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . 0) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),v1,W ) ) )

assume that
A28: v3 <> v1 and
A29: v3 = j and
A30: (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) <> - 1 ; :: thesis: ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . 0) . f,j,n & ( for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ) & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),W & cost (P,W) = (((repeat ((Relax n) * (findmin n))) . 0) . f) . ((2 * n) + j) & ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) implies P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),v1,W ) )

A31: v3 in VG ;
then 1 <= j by A7, A29, FINSEQ_1:1;
then 1 < j by A2, A28, A29, XXREAL_0:1;
then A32: 1 + 1 <= j by INT_1:7;
assume for p being FinSequence of NAT
for P being oriented Chain of G holds
( not p is_simple_vertex_seq_at ((repeat ((Relax n) * (findmin n))) . 0) . f,j,n or ex m being Nat st
( 1 <= m & m < len p & not p . m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ) or not P is_oriented_edge_seq_of p or not P is_shortestpath_of v1,v3, UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),W or not cost (P,W) = (((repeat ((Relax n) * (findmin n))) . 0) . f) . ((2 * n) + j) or ( not v3 in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) & not P islongestInShortestpath UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n),v1,W ) ) ; :: thesis: contradiction
j <= n by A7, A29, A31, FINSEQ_1:1;
hence contradiction by A1, A26, A30, A32; :: thesis: verum
end;
thus for m, j being Nat st (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + j) = - 1 & 1 <= j & j <= n & m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
f . (((2 * n) + (n * m)) + j) = - 1 by A5, A26, A8, A19, A18, Th47; :: thesis: for m being Nat st m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) holds
(((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) <> - 1

let m be Nat; :: thesis: ( m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) implies (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) <> - 1 )
assume A33: m in UsedVx ((((repeat ((Relax n) * (findmin n))) . 0) . f),n) ; :: thesis: (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) <> - 1
assume (((repeat ((Relax n) * (findmin n))) . 0) . f) . (n + m) = - 1 ; :: thesis: contradiction
thus contradiction by A5, A26, A8, A19, A18, A33, Th47; :: thesis: verum
end;
A34: for k being Nat holds S1[k] from NAT_1:sch 2(A27, A21);
ex ii being Nat st
( ii <= n & OuterVx ((((repeat ((Relax n) * (findmin n))) . ii) . f),n) = {} ) by Th40;
then A35: OuterVx (g,n) = {} by A9, Def4;
A36: now :: thesis: for v3, v4 being Vertex of G st v3 in UsedVx (g,n) & v4 in UnusedVx (g,n) holds
for e being set holds
( not e in the carrier' of G or not e orientedly_joins v3,v4 )
let v3, v4 be Vertex of G; :: thesis: ( v3 in UsedVx (g,n) & v4 in UnusedVx (g,n) implies for e being set holds
( not e in the carrier' of G or not e orientedly_joins v3,v4 ) )

assume that
A37: v3 in UsedVx (g,n) and
A38: v4 in UnusedVx (g,n) ; :: thesis: for e being set holds
( not e in the carrier' of G or not e orientedly_joins v3,v4 )

v3 in VG ;
then reconsider m = v3 as Element of NAT ;
consider j being Nat such that
A39: v4 = j and
A40: j in dom g and
A41: ( 1 <= j & j <= n ) and
A42: g . j <> - 1 by A38;
now :: thesis: not g . (n + j) <> - 1
assume g . (n + j) <> - 1 ; :: thesis: contradiction
then j in { k where k is Nat : ( k in dom g & 1 <= k & k <= n & g . k <> - 1 & g . (n + k) <> - 1 ) } by A40, A41, A42;
hence contradiction by A35; :: thesis: verum
end;
then - 1 = f . (((2 * n) + (n * m)) + j) by A9, A34, A37, A41
.= Weight (v3,v4,W) by A1, A39 ;
hence for e being set holds
( not e in the carrier' of G or not e orientedly_joins v3,v4 ) by Th23; :: thesis: verum
end;
A43: f . 1 = 1 by A1, A5;
now :: thesis: not LifeSpan (((Relax n) * (findmin n)),f,n) = 0
assume A44: LifeSpan (((Relax n) * (findmin n)),f,n) = 0 ; :: thesis: contradiction
1 in { k where k is Nat : ( k in dom f & 1 <= k & k <= n & f . k <> - 1 & f . (n + k) <> - 1 ) } by A5, A43, A8, A18;
hence contradiction by A9, A26, A35, A44; :: thesis: verum
end;
then LifeSpan (((Relax n) * (findmin n)),f,n) >= 1 + 0 by INT_1:7;
then A45: v1 in UsedVx (g,n) by A2, A9, A20, Th48;
hereby :: thesis: ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 )
assume v2 in UsedVx (g,n) ; :: thesis: ex p being FinSequence of NAT ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) )

then g . (n + i) <> - 1 by A4, A9, A34;
then consider p being FinSequence of NAT , P being oriented Chain of G such that
A46: p is_simple_vertex_seq_at g,i,n and
for m being Nat st 1 <= m & m < len p holds
p . m in UsedVx (g,n) and
A47: P is_oriented_edge_seq_of p and
A48: P is_shortestpath_of v1,v2, UsedVx (g,n),W and
A49: cost (P,W) = g . ((2 * n) + i) and
( not v2 in UsedVx (g,n) implies P islongestInShortestpath UsedVx (g,n),v1,W ) by A2, A3, A4, A9, A34;
take p = p; :: thesis: ex P being oriented Chain of G st
( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) )

take P = P; :: thesis: ( p is_simple_vertex_seq_at g,i,n & P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) )
thus p is_simple_vertex_seq_at g,i,n by A46; :: thesis: ( P is_oriented_edge_seq_of p & P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) )
thus P is_oriented_edge_seq_of p by A47; :: thesis: ( P is_shortestpath_of v1,v2,W & cost (P,W) = g . ((2 * n) + i) )
thus P is_shortestpath_of v1,v2,W by A17, A36, A45, A48, Th16; :: thesis: cost (P,W) = g . ((2 * n) + i)
thus cost (P,W) = g . ((2 * n) + i) by A49; :: thesis: verum
end;
thus ( v2 in UnusedVx (g,n) implies for Q being oriented Chain of G holds not Q is_orientedpath_of v1,v2 ) by A17, A36, A45, Th11; :: thesis: verum