set Z = {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))};
set Y = union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))};
set X = Funcs WGraphSelectors ,(union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))});
defpred S1[ set ] means $1 is WSubgraph of G;
consider IT being Subset of (Funcs WGraphSelectors ,(union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))})) such that
A1:
for x being set holds
( x in IT iff ( x in Funcs WGraphSelectors ,(union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}) & S1[x] ) )
from SUBSET_1:sch 1();
set G' = G .strict WGraphSelectors ;
A2:
( G == G .strict WGraphSelectors & the_Weight_of G = the_Weight_of (G .strict WGraphSelectors ) )
by Lm2;
then reconsider G' = G .strict WGraphSelectors as [Weighted] Subgraph of G by GLIB_000:90;
dom (the_Weight_of G) = the_Edges_of G'
by A2, PARTFUN1:def 4;
then
the_Weight_of G' = (the_Weight_of G) | (the_Edges_of G')
by A2, RELAT_1:98;
then reconsider G' = G' as WSubgraph of G by GLIB_003:def 10;
A3:
dom G' = WGraphSelectors
by Lm3;
A4:
now let G2 be
WSubgraph of
G;
:: thesis: ( dom G2 = WGraphSelectors implies rng G2 c= union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))} )assume A5:
dom G2 = WGraphSelectors
;
:: thesis: rng G2 c= union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}now let y be
set ;
:: thesis: ( y in rng G2 implies y in union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))} )assume
y in rng G2
;
:: thesis: y in union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}then consider x being
set such that A6:
(
x in WGraphSelectors &
G2 . x = y )
by A5, FUNCT_1:def 5;
hence
y in union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}
;
:: thesis: verum end; hence
rng G2 c= union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}
by TARSKI:def 3;
:: thesis: verum end;
then
rng G' c= union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}
by A3;
then
G' in Funcs WGraphSelectors ,(union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))})
by A3, FUNCT_2:def 2;
then reconsider IT = IT as non empty set by A1;
take
IT
; :: thesis: for x being set holds
( x in IT iff ex G2 being WSubgraph of G st
( x = G2 & dom G2 = WGraphSelectors ) )
let x be set ; :: thesis: ( x in IT iff ex G2 being WSubgraph of G st
( x = G2 & dom G2 = WGraphSelectors ) )
given G2 being WSubgraph of G such that A14:
( G2 = x & dom G2 = WGraphSelectors )
; :: thesis: x in IT
rng G2 c= union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))}
by A4, A14;
then
x in Funcs WGraphSelectors ,(union {(bool (the_Vertices_of G)),(bool (the_Edges_of G)),(bool (the_Source_of G)),(bool (the_Target_of G)),(bool (the_Weight_of G))})
by A14, FUNCT_2:def 2;
hence
x in IT
by A1, A14; :: thesis: verum