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

theorem Th185:
  for G being connected _Graph, H being removeLoops of G
  holds H is GraphUnion of G.allSpanningTrees()
proof
  let G be connected _Graph, H be removeLoops of G;
  set G9 = the GraphUnion of G.allSpanningTrees();
  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;
      set H8 = the Element of G.allSpanningTrees();
      assume x in the_Vertices_of H;
      then A1: x in the_Vertices_of G;
      H8 is spanning by Th168;
      then A2: x in the_Vertices_of H8 by A1, GLIB_000:def 33;
      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 A2;
    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 consider T being plain spanning Tree-like Subgraph of G such that
        A3: x in the_Edges_of T by Th167;
      T in G.allSpanningTrees() by Th168;
      then T is Subgraph of G9 by GLIB_014:21;
      then the_Edges_of T c= the_Edges_of G9 by GLIB_000:def 32;
      hence x in the_Edges_of G9 by A3;
    end;
    hence the_Edges_of H c= the_Edges_of G9 by TARSKI:def 3;
  end;
  then A4: H is Subgraph of G9 by GLIB_000:44;
  now
    let H2 be Element of G.allSpanningTrees();
    reconsider H1 = H as Element of {H} by TARSKI:def 1;
    take H1;
    H.allSpanningTrees() = G.allSpanningTrees() by Th176;
    hence H2 is Subgraph of H1 by Th168;
  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 A4, GLIB_000:87, GLIB_014:22;
end;
