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

theorem Th145:
  for G2 being loopless _Graph st G2.allTrees() c= G1.allTrees()
  holds G2 is Subgraph of G1
proof
  let G2 be loopless _Graph;
  assume A1: G2.allTrees() c= G1.allTrees();
  now
    let x be object;
    assume x in the_Vertices_of G2;
    then reconsider v = x as Vertex of G2;
    set H = createGraph(v);
    H in G2.allTrees() by Th142;
    then H is Subgraph of G1 by A1, Th138;
    then the_Vertices_of H c= the_Vertices_of G1 by GLIB_000:def 32;
    hence x in the_Vertices_of G1 by ZFMISC_1:31;
  end;
  then A2: the_Vertices_of G2 c= the_Vertices_of G1 by TARSKI:def 3;
  now
    let x be object;
    assume A3: x in the_Edges_of G2;
    then reconsider G9 = G2 as non edgeless _Graph;
    reconsider e = x as Edge of G9 by A3;
    set H = createGraph(e);
    not e in G9.loops();
    then H in G2.allTrees() by Th143;
    then H is Subgraph of G1 by A1, Th138;
    then the_Edges_of H c= the_Edges_of G1 by GLIB_000:def 32;
    then {e} c= the_Edges_of G1 by Th13;
    hence x in the_Edges_of G1 by ZFMISC_1:31;
  end;
  then A4: the_Edges_of G2 c= the_Edges_of G1 by TARSKI:def 3;
  now
    let x be set;
    assume A5: x in the_Edges_of G2;
    then reconsider G9 = G2 as non edgeless _Graph;
    reconsider e = x as Edge of G9 by A5;
    set H = createGraph(e);
    not e in G9.loops();
    then H in G2.allTrees() by Th143;
    then A6: H is Subgraph of G1 & H is Subgraph of G2 by A1, Th138;
    the_Edges_of H = {e} by Th13;
    then A7: x in the_Edges_of H by TARSKI:def 1;
    thus (the_Source_of G2).x = (the_Source_of H).x by A7, GLIB_000:def 32
      .= (the_Source_of G1).x by A6, A7, GLIB_000:def 32;
    thus (the_Target_of G2).x = (the_Target_of H).x by A7, GLIB_000:def 32
      .= (the_Target_of G1).x by A6, A7, GLIB_000:def 32;
  end;
  hence thesis by A2, A4, GLIB_000:def 32;
end;
