let G be finite nonnegative-weighted WGraph; :: thesis: for s being Vertex of G
for G2 being inducedWSubgraph of G, dom ((DIJK:SSSP G,s) `1 ),(DIJK:SSSP G,s) `2 holds
( G2 is_mincost_DTree_rooted_at s & ( for v being Vertex of G st v in G .reachableDFrom s holds
( v in the_Vertices_of G2 & G .min_DPath_cost s,v = ((DIJK:SSSP G,s) `1 ) . v ) ) )

let src be Vertex of G; :: thesis: for G2 being inducedWSubgraph of G, dom ((DIJK:SSSP G,src) `1 ),(DIJK:SSSP G,src) `2 holds
( G2 is_mincost_DTree_rooted_at src & ( for v being Vertex of G st v in G .reachableDFrom src holds
( v in the_Vertices_of G2 & G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v ) ) )

let G2 be inducedWSubgraph of G, dom ((DIJK:SSSP G,src) `1 ),(DIJK:SSSP G,src) `2 ; :: thesis: ( G2 is_mincost_DTree_rooted_at src & ( for v being Vertex of G st v in G .reachableDFrom src holds
( v in the_Vertices_of G2 & G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v ) ) )

set Res = DIJK:SSSP G,src;
set dR = dom ((DIJK:SSSP G,src) `1 );
thus G2 is_mincost_DTree_rooted_at src by Th22; :: thesis: for v being Vertex of G st v in G .reachableDFrom src holds
( v in the_Vertices_of G2 & G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v )

let v be Vertex of G; :: thesis: ( v in G .reachableDFrom src implies ( v in the_Vertices_of G2 & G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v ) )
assume v in G .reachableDFrom src ; :: thesis: ( v in the_Vertices_of G2 & G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v )
then A2: v in dom ((DIJK:SSSP G,src) `1 ) by Th25;
(DIJK:SSSP G,src) `2 c= G .edgesBetween (dom ((DIJK:SSSP G,src) `1 )) by Th21;
hence v in the_Vertices_of G2 by A2, GLIB_000:def 39; :: thesis: G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v
thus G .min_DPath_cost src,v = ((DIJK:SSSP G,src) `1 ) . v by A2, Th22; :: thesis: verum