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))};
for x being set st x in {(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))} holds
x is finite by ENUMSET1:def 3;
then reconsider 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))} as finite set by FINSET_1:25;
set X = Funcs WGraphSelectors ,Y;
now
let x be set ; :: thesis: ( x in G .allWSubgraphs() implies x in Funcs WGraphSelectors ,Y )
assume x in G .allWSubgraphs() ; :: thesis: x in Funcs WGraphSelectors ,Y
then consider G2 being WSubgraph of G such that
A2: ( x = G2 & dom G2 = WGraphSelectors ) by Def10;
now
let y be set ; :: thesis: ( y in rng G2 implies y in Y )
assume y in rng G2 ; :: thesis: y in Y
then consider x being set such that
A3: ( x in WGraphSelectors & G2 . x = y ) by A2, FUNCT_1:def 5;
now
per cases ( x = VertexSelector or x = EdgeSelector or x = SourceSelector or x = TargetSelector or x = WeightSelector ) by A3, ENUMSET1:def 3;
end;
end;
hence y in Y ; :: thesis: verum
end;
then rng G2 c= Y by TARSKI:def 3;
hence x in Funcs WGraphSelectors ,Y by A2, FUNCT_2:def 2; :: thesis: verum
end;
then G .allWSubgraphs() c= Funcs WGraphSelectors ,Y by TARSKI:def 3;
hence G .allWSubgraphs() is finite ; :: thesis: verum