let G1 be _Graph; for G2 being loopless _Graph st G2 .allSpanningForests() c= G1 .allSpanningForests() holds
G2 is spanning Subgraph of G1
let G2 be loopless _Graph; ( G2 .allSpanningForests() c= G1 .allSpanningForests() implies G2 is spanning Subgraph of G1 )
assume A1:
G2 .allSpanningForests() c= G1 .allSpanningForests()
; G2 is spanning Subgraph of G1
set H0 = the spanning acyclic plain Subgraph of G2;
the spanning acyclic plain Subgraph of G2 in G2 .allSpanningForests()
by Th102;
then
the spanning acyclic plain Subgraph of G2 is spanning Subgraph of G1
by A1, Th102;
then A2: the_Vertices_of G1 =
the_Vertices_of the spanning acyclic plain Subgraph of G2
by GLIB_000:def 33
.=
the_Vertices_of G2
by GLIB_000:def 33
;
then A4:
the_Edges_of G2 c= the_Edges_of G1
by TARSKI:def 3;
now for x being set st x in the_Edges_of G2 holds
( (the_Source_of G2) . x = (the_Source_of G1) . x & (the_Target_of G2) . x = (the_Target_of G1) . x )let x be
set ;
( x in the_Edges_of G2 implies ( (the_Source_of G2) . x = (the_Source_of G1) . x & (the_Target_of G2) . x = (the_Target_of G1) . x ) )assume A5:
x in the_Edges_of G2
;
( (the_Source_of G2) . x = (the_Source_of G1) . x & (the_Target_of G2) . x = (the_Target_of G1) . x )then reconsider G9 =
G2 as non
edgeless _Graph ;
reconsider e =
x as
Edge of
G9 by A5;
set H = the
plain addVertices of
createGraph e,
the_Vertices_of G2;
not
e in G9 .loops()
;
then
the
plain addVertices of
createGraph e,
the_Vertices_of G2 in G2 .allSpanningForests()
by Th107;
then A6:
( the
plain addVertices of
createGraph e,
the_Vertices_of G2 is
Subgraph of
G1 & the
plain addVertices of
createGraph e,
the_Vertices_of G2 is
Subgraph of
G2 )
by A1, Th102;
the_Edges_of the
plain addVertices of
createGraph e,
the_Vertices_of G2 =
the_Edges_of (createGraph e)
by GLIB_006:def 10
.=
{e}
by Th13
;
then A7:
x in the_Edges_of the
plain addVertices of
createGraph e,
the_Vertices_of G2
by TARSKI:def 1;
thus (the_Source_of G2) . x =
(the_Source_of the plain addVertices of createGraph e, the_Vertices_of G2) . x
by A6, A7, GLIB_000:def 32
.=
(the_Source_of G1) . x
by A6, A7, GLIB_000:def 32
;
(the_Target_of G2) . x = (the_Target_of G1) . xthus (the_Target_of G2) . x =
(the_Target_of the plain addVertices of createGraph e, the_Vertices_of G2) . x
by A6, A7, GLIB_000:def 32
.=
(the_Target_of G1) . x
by A6, A7, GLIB_000:def 32
;
verum end;
hence
G2 is spanning Subgraph of G1
by A2, A4, GLIB_000:def 32, GLIB_000:def 33; verum