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

theorem Th110:
  for H being removeLoops of G
  holds G.allSpanningForests() = H.allSpanningForests()
proof
  let H be removeLoops of G;
  A1: H.allSpanningForests() c= G.allSpanningForests() by Th108;
  now
    let z be object;
    assume z in G.allSpanningForests();
    then reconsider H9 = z as plain acyclic spanning Subgraph of G by Th102;
    A2: the_Vertices_of H9 = the_Vertices_of G by GLIB_000:def 33
      .= the_Vertices_of H by GLIB_000:def 33;
    now
      let x be object;
      assume A3: x in the_Edges_of H9;
      then A4: x in the_Edges_of G;
      not x in G.loops()
      proof
        assume x in G.loops();
        then consider v being object such that
          A5: x Joins v,v,G by GLIB_009:def 2;
        x is set & v is set by TARSKI:1;
        then x Joins v,v,H9 by A3, A5, GLIB_000:73;
        then x in H9.loops() by GLIB_009:def 2;
        hence contradiction;
      end;
      then x in the_Edges_of G \ G.loops() by A4, XBOOLE_0:def 5;
      hence x in the_Edges_of H by GLIB_000:53;
    end;
    then the_Edges_of H9 c= the_Edges_of H by TARSKI:def 3;
    then H9 is spanning Subgraph of H by A2, GLIB_000:44, GLIB_000:def 33;
    hence z in H.allSpanningForests() by Th102;
  end;
  then G.allSpanningForests() c= H.allSpanningForests() by TARSKI:def 3;
  hence thesis by A1, XBOOLE_0:def 10;
end;
