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

theorem Th150:
  for F being PGraphMapping of G1, G2 st F is weak_SG-embedding onto
  holds G2.allTrees() = rng(SG2SGFunc(F) | G1.allTrees())
proof
  let F be PGraphMapping of G1, G2;
  set f = SG2SGFunc(F);
  assume A1: F is weak_SG-embedding onto;
  then G2.allForests() c= rng(f | G1.allForests()) &
    G2.allConnectedSG() c= rng(f | G1.allConnectedSG()) by Th91, Th133;
  then G2.allForests() /\ G2.allConnectedSG() c=
    rng(f | G1.allForests()) /\ rng(f | G1.allConnectedSG())
    by XBOOLE_1:27;
  then A2: G2.allTrees() c=
    rng(f | G1.allForests()) /\ rng(f | G1.allConnectedSG()) by Th139;
  A3: rng(SG2SGFunc(F) | G1.allTrees()) c= G2.allTrees() by A1, Th149;
  A4: rng(f | G1.allForests()) = f.:G1.allForests() by RELAT_1:115;
  A5: rng(f | G1.allConnectedSG()) = f.:G1.allConnectedSG()
    by RELAT_1:115;
  A6: f is one-to-one by A1, Th31;
  rng(f | G1.allForests()) /\ rng(f | G1.allConnectedSG())
     = f.:(G1.allForests() /\ G1.allConnectedSG()) by A4, A5, A6, FUNCT_1:62
    .= rng(f | (G1.allForests() /\ G1.allConnectedSG())) by RELAT_1:115
    .= rng(f | G1.allTrees()) by Th139;
  hence thesis by A3, A2, XBOOLE_0:def 10;
end;
