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:7;
set X = Funcs (WGraphSelectors,Y);
now :: thesis: for x being object st x in G .allWSubgraphs() holds
x in Funcs (WGraphSelectors,Y)
let x be object ; :: 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
A1: x = G2 and
A2: dom G2 = WGraphSelectors by Def5;
now :: thesis: for y being object st y in rng G2 holds
y in Y
let y be object ; :: thesis: ( y in rng G2 implies y in Y )
assume y in rng G2 ; :: thesis: y in Y
then consider x being object such that
A3: x in WGraphSelectors and
A4: G2 . x = y by A2, FUNCT_1:def 3;
now :: thesis: y in Y
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 ;
hence x in Funcs (WGraphSelectors,Y) by A1, A2, FUNCT_2:def 2; :: thesis: verum
end;
then G .allWSubgraphs() c= Funcs (WGraphSelectors,Y) ;
hence G .allWSubgraphs() is finite ; :: thesis: verum