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

theorem Th195:
  for F being non empty one-to-one PGraphMapping of G1, G2 st F is isomorphism
  holds G2.allComponents() = rng(SG2SGFunc(F) | G1.allComponents())
proof
  let F be non empty one-to-one PGraphMapping of G1, G2;
  set f = SG2SGFunc(F);
  A1: dom(f | G1.allComponents()) = G1.allComponents() by FUNCT_2:def 1;
  assume A2: F is isomorphism;
  now
    let y be object;
    hereby
      assume y in G2.allComponents();
      then reconsider C2 = y as plain Component of G2 by Th189;
      set v2 = the Vertex of C2;
      the_Vertices_of C2 c= the_Vertices_of G2;
      then reconsider v2 as Vertex of G2 by TARSKI:def 3;
      A3: the_Vertices_of C2 = G2.reachableFrom(v2) by GLIB_002:33;
      the_Edges_of C2 = G2.edgesBetween(the_Vertices_of C2) by GLIB_002:31;
      then A4: C2 is inducedSubgraph of G2, G2.reachableFrom(v2)
        by A3, GLIB_000:170;
      A5: G2 == rng F by A2, GLIB_010:56;
      then G2.edgesBetween(G2.reachableFrom(v2)) =
        (rng F).edgesBetween(G2.reachableFrom(v2)) by GLIB_000:90;
      then reconsider C2 as inducedSubgraph of rng F, G2.reachableFrom(v2)
        by A4, A5, GLIB_000:95;
      set C1 = the plain inducedSubgraph of G1, F_V"the_Vertices_of C2;
      A6: dom F_E = the_Edges_of G1 by A2, GLIB_010:def 11;
      the_Vertices_of G2 = the_Vertices_of rng F by A5, GLIB_000:def 34;
      then A7: C2 = rng(F | C1) by A6, GLIB_009:44, GLIBPRE1:101
        .= f.C1 by Def5;
      rng F_V = the_Vertices_of G2 by A2, GLIB_010:def 12;
      then consider v1 being object such that
        A8: v1 in dom F_V & F_V.v1 = v2 by FUNCT_1:def 3;
      reconsider v1 as Vertex of G1 by A8;
      F_V"the_Vertices_of C2 = G1.reachableFrom(v1) by A2, A3, A8, GLIBPRE1:97;
      then C1 in dom(f | G1.allComponents()) & C2 = (f | G1.allComponents()).C1
        by A1, A7, Th189, FUNCT_1:49;
      hence y in rng(f | G1.allComponents()) by FUNCT_1:def 3;
    end;
    assume y in rng(f | G1.allComponents());
    then consider x being object such that
      A9: x in dom(f | G1.allComponents()) & (f | G1.allComponents()).x = y
      by FUNCT_1:def 3;
    reconsider C1 = x as plain Component-like Subgraph of G1 by A9, Th189;
    set v1 = the Vertex of C1;
    the_Vertices_of C1 c= the_Vertices_of G1;
    then reconsider v1 as Vertex of G1 by TARSKI:def 3;
    A10: y = f.C1 by A9, FUNCT_1:47
      .= rng(F | C1) by Def5;
    dom F_V = the_Vertices_of G1 by A2, GLIB_010:def 11;
    then F_V.v1 in rng F_V by FUNCT_1:3;
    then reconsider v2 = F_V.v1 as Vertex of G2;
    A11: F_V.:the_Vertices_of C1 = F_V.:(G1.reachableFrom(v1)) by GLIB_002:33
      .= G2.reachableFrom(v2) by A2, GLIBPRE1:81;
    A12: rng (F | C1)_V = G2.reachableFrom(v2) by A11, RELAT_1:115;
    rng (F | C1)_E = F_E.:the_Edges_of C1 by RELAT_1:115
      .= F_E.:(G1.edgesBetween(the_Vertices_of C1)) by GLIB_002:31
      .= G2.edgesBetween(G2.reachableFrom(v2)) by A2, A11, GLIBPRE1:93;
    hence y in G2.allComponents() by A10, A12, Th189;
  end;
  hence thesis by TARSKI:2;
end;
