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

theorem Th87:
  for H being removeLoops of G holds G.allForests() = H.allForests()
proof
  let H be removeLoops of G;
  A1: H.allForests() c= G.allForests() by Th85;
  now
    let z be object;
    assume z in G.allForests();
    then reconsider H9 = z as plain acyclic Subgraph of G by Th78;
    the_Vertices_of H9 c= the_Vertices_of G;
    then A2: the_Vertices_of H9 c= 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 Subgraph of H by A2, GLIB_000:44;
    hence z in H.allForests() by Th78;
  end;
  then G.allForests() c= H.allForests() by TARSKI:def 3;
  hence thesis by A1, XBOOLE_0:def 10;
end;
