reserve G, G1, G2 for _Graph, H for Subgraph of G;

theorem Th119:
  for H being removeLoops of G holds H is GraphUnion of G.allSpanningForests()
proof
  let H be removeLoops of G;
  set G9 = the GraphUnion of G.allSpanningForests();
  reconsider G8 = G as GraphUnion of G.allSG() by Th35;
  set H9 = the GraphUnion of {H};
  now
    thus G9 is Subgraph of G8 by GLIBPRE1:119;
    now
      let x be object;
      assume x in the_Vertices_of H;
      then A1: x in the_Vertices_of G;
      set H8 = createGraph([#]the_Vertices_of G);
      H8 in G.allSpanningForests() by Th106;
      then H8 is Subgraph of G9 by GLIB_014:21;
      then the_Vertices_of H8 c= the_Vertices_of G9 by GLIB_000:def 32;
      hence x in the_Vertices_of G9 by A1;
    end;
    hence the_Vertices_of H c= the_Vertices_of G9 by TARSKI:def 3;
    now
      let x be object;
      assume x in the_Edges_of H;
      then x in the_Edges_of G \ G.loops() by GLIB_000:53;
      then A2: x in the_Edges_of G & not x in G.loops() by XBOOLE_0:def 5;
      then reconsider G0 = G as non edgeless _Graph;
      reconsider e = x as Edge of G0 by A2;
      set H8 = the plain addVertices of createGraph(e), the_Vertices_of G;
      H8 in G.allSpanningForests() by A2, Th107;
      then H8 is Subgraph of G9 by GLIB_014:21;
      then the_Edges_of H8 c= the_Edges_of G9 by GLIB_000:def 32;
      then the_Edges_of createGraph(e) c= the_Edges_of G9 by GLIB_006:def 10;
      then {e} c= the_Edges_of G9 by Th13;
      hence x in the_Edges_of G9 by ZFMISC_1:31;
    end;
    hence the_Edges_of H c= the_Edges_of G9 by TARSKI:def 3;
  end;
  then A3: H is Subgraph of G9 by GLIB_000:44;
  now
    let H2 be Element of G.allSpanningForests();
    reconsider H1 = H as Element of {H} by TARSKI:def 1;
    take H1;
    H.allSpanningForests() = G.allSpanningForests() by Th110;
    hence H2 is Subgraph of H1 by Th102;
  end;
  then G9 is Subgraph of H9 by GLIBPRE1:118;
  then G9 is Subgraph of H by GLIB_000:91, GLIB_014:24;
  hence thesis by A3, GLIB_000:87, GLIB_014:22;
end;
