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

theorem Th155:
  for H being removeLoops of G holds H is GraphUnion of G.allTrees()
proof
  let H be removeLoops of G;
  set G9 = the GraphUnion of G.allTrees();
  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 reconsider v = x as Vertex of G;
      set H8 = createGraph(v);
      H8 in G.allTrees() by Th142;
      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 ZFMISC_1:31;
    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 A1: 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 A1;
      set H8 = createGraph(e);
      H8 in G.allTrees() by A1, Th143;
      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 {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 A2: H is Subgraph of G9 by GLIB_000:44;
  now
    let H2 be Element of G.allTrees();
    reconsider H1 = H as Element of {H} by TARSKI:def 1;
    take H1;
    H.allTrees() = G.allTrees() by Th146;
    hence H2 is Subgraph of H1 by Th138;
  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 A2, GLIB_000:87, GLIB_014:22;
end;
