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

theorem Th198:
  G is GraphUnion of G.allComponents()
proof
  set G9 = the GraphUnion of G.allComponents();
  G is GraphUnion of G.allSG() by Th35;
  then A1: G9 is Subgraph of G by GLIBPRE1:119;
  A2: now
    let v be Vertex of G;
    set H9 = the plain inducedSubgraph of G,G.reachableFrom(v);
    reconsider H9 as Element of G.allComponents() by Th189;
    take H9;
    the_Vertices_of H9 = G.reachableFrom(v) by GLIB_000:def 37;
    hence v in the_Vertices_of H9 by GLIB_002:9;
  end;
  now
    per cases;
    suppose G is edgeless;
      hence G is Subgraph of G9 by A2, Th22;
    end;
    suppose G is non edgeless;
      then reconsider G0 = G as non edgeless _Graph;
      now
        let e be Edge of G0;
        set v = (the_Source_of G).e, w = (the_Target_of G).e;
        e DJoins v,w,createGraph(e) by Th14;
        then e Joins v,w,createGraph(e) by GLIB_000:16;
        then A3: e Joins v,w,G by GLIB_000:72;
        then reconsider v,w as Vertex of G by GLIB_000:13;
        set H9 = the plain inducedSubgraph of G,G.reachableFrom(v);
        reconsider H9 as Element of G.allComponents() by Th189;
        take H9;
        A4: the_Vertices_of H9 = G.reachableFrom(v) by GLIB_000:def 37;
        then A5: v in the_Vertices_of H9 by GLIB_002:9;
        then A6: w in the_Vertices_of H9 by A3, A4, GLIB_002:10;
        then e in G.edgesBetween(the_Vertices_of H9) by A3, A5, GLIB_000:32;
        then e in the_Edges_of H9 by A4, GLIB_000:def 37;
        then {e} c= the_Edges_of H9 by ZFMISC_1:31;
        then A7: the_Edges_of createGraph(e) c= the_Edges_of H9 by Th13;
        {v,w} c= the_Vertices_of H9 by A5, A6, ZFMISC_1:32;
        then the_Vertices_of createGraph(e) c= the_Vertices_of H9 by Th13;
        hence createGraph(e) is Subgraph of H9 by A7, GLIB_000:44;
      end;
      hence G is Subgraph of G9 by A2, Th23;
    end;
  end;
  hence thesis by A1, GLIB_000:87, GLIB_014:22;
end;
